[LLVMdev] CFG modifcations and code gen
Daniel M Gessel
gessel at apple.com
Mon Oct 13 18:43:42 PDT 2008
You don't have to run the branch folding pass, do you?
On Oct 13, 2008, at 8:27 PM, Dale Johannesen wrote:
> On Oct 13, 2008, at 5:14 PMPDT, Villmow, Micah 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 for rearranging things into a more
> reasonable order.
>> In the attached dot file, block 2 gets printed before block 3 and 5
>> and block 4 gets printed between blocks 3 and 5. This obviously is
>> not what the CFG is saying it should be done. The code I’m using to
>> do this transformation, which takes 2 & 4 and places them after
>> block 5 is:
>> MachineBasicBlock* newExitPath = findLowestNumSuccBB(root);
>> NULL, false);
>> newExitPath, false);
>> So what am I doing wrong?
>> Micah Villmow
>> Systems Engineer
>> Advanced Technology & Performance
>> Advanced Micro Devices Inc.
>> 4555 Great America Pkwy,
>> Santa Clara, CA. 95054
>> P: 408-572-6219
>> F: 408-572-6596
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev