search for: renumberblocks

Displaying 5 results from an estimated 5 matches for "renumberblocks".

2008 Oct 14
3
[LLVMdev] CFG modifcations and code gen
As stated in an earlier email, I am working on getting break/continue to work correctly for my backend, but I ran into another issue with codegen and the CFG. It seems that code gen is not done based on the CFG, but rather on the block numbers, and the function call MachineFunction::RenumberBlocks doesn't renumber the blocks based on the CFG. So how can I modify the CFG so that when codegen occurs, it follows the graph and not just does a linear scan over the MachineBasicBlock vector? In the attached dot file, block 2 gets printed before block 3 and 5 and block 4 gets printed between...
2008 Oct 14
0
[LLVMdev] CFG modifcations and code gen
...an earlier email, I am working on getting break/ > continue to work correctly for my backend, but I ran into another > issue with codegen and the CFG. It seems that code gen is not done > based on the CFG, but rather on the block numbers, and the function > call MachineFunction::RenumberBlocks doesn’t renumber the blocks > based on the CFG. So how can I modify the CFG so that when codegen > occurs, it follows the graph and not just does a linear scan over > the MachineBasicBlock vector? It's not intended to work that way. The BranchFolding pass, which runs later, i...
2008 Oct 14
2
[LLVMdev] CFG modifcations and code gen
...cah wrote: As stated in an earlier email, I am working on getting break/continue to work correctly for my backend, but I ran into another issue with codegen and the CFG. It seems that code gen is not done based on the CFG, but rather on the block numbers, and the function call MachineFunction::RenumberBlocks doesn't renumber the blocks based on the CFG. So how can I modify the CFG so that when codegen occurs, it follows the graph and not just does a linear scan over the MachineBasicBlock vector? It's not intended to work that way. The BranchFolding pass, which runs later, is responsible fo...
2010 Apr 14
3
[LLVMdev] indirect jumps
Hi, What kind of C/C++ high level code can generate a computed jump, such as: jmpq *%r14 or jmpq *(%r14,%rbx,8) ? I imagine that any calls (including virtual) would use something like 'call *%r14', and the above jumps are mostly from 'switch' statements. Is this correct? Anything else? Thank you, Dan
2010 Apr 15
1
[LLVMdev] Question About Cloning Machine Basic Block
...predecessors, then update the succ list of the second pred to point to ‘copy’ and insert ‘copy’ after the second pred (‘I’ physically resides after the first pred):   MachineFunction::iterator It = (predMBB+1); MF.insert(It,copy); predMBB->addSuccessor(copy); predMBB->removeSuccessor(I)   MF.RenumberBlocks();   Am I missing anything here?   Please note: I am doing this step as a pass just before the asm printer pass in the target machine layer after all the instructions has been generated, registers has been allocated.   Appreciate your help a lot,   Thanks, Hisham     -------------- next...