search for: newmbb

Displaying 11 results from an estimated 11 matches for "newmbb".

Did you mean: newbb
2014 Jan 03
2
[LLVMdev] How to update LiveInterval information of newly inserted machine basic block
...w Trick" <atrick at apple.com> wrote: >> >> On Dec 31, 2013, at 3:52 AM, Haishan <hndxvon at 163.com> wrote: >> My update steps are shown following: >> LiveIntervals *LIS = &getAnalysis<LiveIntervals>(); >> 1. LIS->insertMBBInMaps(NewMBB) >> 2. LIS->InsertMachineInstrRangeInMaps(NewMBB->begin(), NewMBB->end()) >> 3. Due to some machine instructions of NewMBB copy from OldMBB, I have to removeInterval firstly. Then I use LIS->createAndComputeVirtRegInterval() to update LiveInterval info of NewMBB. &gt...
2014 Jan 03
2
[LLVMdev] How to update LiveInterval information of newly inserted machine basic block
...It is only added as a requirement to make sure it runs before the 2-address pass. -Andy Thank you for your reply. I do it as you tell me, and you are right. My update steps are shown following: LiveIntervals *LIS = &getAnalysis<LiveIntervals>(); 1. LIS->insertMBBInMaps(NewMBB) 2. LIS->InsertMachineInstrRangeInMaps(NewMBB->begin(), NewMBB->end()) 3. Due to some machine instructions of NewMBB copy from OldMBB, I have to removeInterval firstly. Then I use LIS->createAndComputeVirtRegInterval() to update LiveInterval info of NewMBB. 4. Then I want to...
2014 Jan 03
2
[LLVMdev] How to update LiveInterval information of newly inserted machine basic block
...; wrote: >>>> >>>> On Dec 31, 2013, at 3:52 AM, Haishan <hndxvon at 163.com> wrote: >>>> My update steps are shown following: >>>> LiveIntervals *LIS = &getAnalysis<LiveIntervals>(); >>>> 1. LIS->insertMBBInMaps(NewMBB) >>>> 2. LIS->InsertMachineInstrRangeInMaps(NewMBB->begin(), NewMBB->end()) >>>> 3. Due to some machine instructions of NewMBB copy from OldMBB, I have to removeInterval firstly. Then I use LIS->createAndComputeVirtRegInterval() to update LiveInterval inf...
2010 Nov 12
1
[LLVMdev] ScheduleDAG Question
...ap); [...] } TheInstrEmitter::EmitMachineNode does this: if (II.usesCustomInsertionHook()) { // Insert this instruction into the basic block using a target // specific inserter which may returns a new basic block. bool AtEnd = InsertPos == MBB->end(); MachineBasicBlock *NewMBB = TLI->EmitInstrWithCustomInserter(MI, MBB); if (NewMBB != MBB) { if (AtEnd) InsertPos = NewMBB->end(); MBB = NewMBB; } return; } So now the InstrEmitter's insert point has been updated to point to the BOTTOM MachineBasicBlock of the diamond, but Schedul...
2013 Dec 31
2
[LLVMdev] How to update LiveInterval information of newly inserted machine basic block
Hi, I insert a new machine basic block(MBB) before Greedy Register Allocation, after Simple Register Coalescing. But I encounter a fatal error "regalloc = ... not currently supported with -O0". I use command line with opt level O2, not O0. The probable reason of this error is that no LiveInterval information for newly MBB which is used by Register Allocation. And, LiveIntervals depend
2009 Aug 06
0
[LLVMdev] code-altering Passes for llc
On Aug 6, 2009, at 5:45 AM, Artjom Kochtchi wrote: > So I was searching for a possibility to include an additional > (Machine)BasicBlock (or rather a MachineFunction?) somewhere in the > program > that contains the program termination and that I can jump to on check > failure. Can't I do that during a Pass in llc? If you just have a magic block of instructions you want to
2008 Jul 16
1
[LLVMdev] atomic memoperand patch
...7 +6010,9 @@ for (int i=0; i <= lastAddrIndx; ++i) (*MIB).addOperand(*argOpers[i]); MIB.addReg(t2); - + assert(bInstr->hasOneMemOperand() && "Unexpected number of memoperand"); + (*MIB).addMemOperand(*F, *bInstr->memoperands_begin()); + MIB = BuildMI(newMBB, TII->get(X86::MOV32rr), destOper.getReg()); MIB.addReg(X86::EAX); @@ -6107,6 +6109,8 @@ for (int i=0; i <= lastAddrIndx; ++i) (*MIB).addOperand(*argOpers[i]); MIB.addReg(t3); + assert(mInstr->hasOneMemOperand() && "Unexpected number of memoperand");...
2009 Aug 06
2
[LLVMdev] code-altering Passes for llc
Kenneth Uildriks wrote: > > Does the error function *have* to be auto-generated in your pass? > Perhaps the original code should use invokes, and your pass insert the > error check with a jne to the "unwind" block. > If I understand correctly, unwind is some kind of exception handling in LLVM IR? I'm not sure if this is the right thing. First, I include runtime
2014 Jan 04
2
[LLVMdev] How to update LiveInterval information of newly inserted machine basic block
...; This MBB is the first block of MachineFunction. That's to say, This MBB doesn't have predecessor. It is reasonable? > From debug information, this unreachable error is generated from recompute a virtual register which isn't used or defined in this MBB. But this virtual register, in NewMBB, is defined in a machine instruction which is copied from OldMBB. > So I am puzzled. > Then, I do as Andy's suggestion, but it doesn't work, and it has same error. > Could you have any suggestion? > Thank you very much again. Incrementally updating the live intervals will be...
2014 Jan 03
2
[LLVMdev] How to update LiveInterval information of newly inserted machine basic block
On Jan 3, 2014, at 1:52 PM, Andrew Trick <atrick at apple.com> wrote: > He really just wants to rerun LiveIntervals analysis, but LiveVariables is no longer available. Would it work just to clear all the intervals rerun LiveIntervals::computeVirtRegs after all the CFG transforms are complete? Yes, I should think so. /jakob -------------- next part -------------- An HTML attachment was
2013 Jun 04
0
[LLVMdev] MachineBasicBlock::addLiveIn errors
...> LiveIns.push_back(Reg); > } > > ==== //dwarc/Tools/MetaWare/Toolset/main/dev/llvm/lib/CodeGen/BranchFolding.cpp#8 - /remote/arctools/marksl/marksl_1/llvm/lib/CodeGen/BranchFolding.cpp ==== 386c386 < if (RegsLiveAtExit[i]) --- > if (RegsLiveAtExit[i] && !NewMBB->isLiveIn(i)) 1718,1719c1718,1721 < TBB->addLiveIn(Def); < FBB->addLiveIn(Def); --- > if (!TBB->isLiveIn(Def)) //SYNOPSYS > TBB->addLiveIn(Def); > if (!FBB->isLiveIn(Def)) //SYNOPSYS > FBB->addLiveIn(Def); ==== /...