[llvm-commits] [llvm] r72276 - in /llvm/trunk: include/llvm/CodeGen/Passes.h include/llvm/CodeGen/RuntimeLibcalls.h lib/CodeGen/CMakeLists.txt lib/CodeGen/DwarfEHPrepare.cpp lib/CodeGen/LLVMTargetMachine.cpp lib/CodeGen/SelectionDAG/FastISel.cpp

Duncan Sands baldrick at free.fr
Sat May 23 02:04:00 PDT 2009


Hi Eli,

>> Note that it is currently rare for this pass to actually do
>> anything.  And in fact it normally shouldn't do anything at
>> all given the code coming out of llvm-gcc!  But it does fire
>> a few times in the testsuite.  As far as I can see this is
>> almost always due to the LoopStrengthReduce codegen pass
>> introducing pointless loop preheader blocks which are landing
>> pads and only contain a branch to another block.  This other
>> block contains an eh.exception call.  So probably by tweaking
>> LoopStrengthReduce a bit this can be avoided.
> 
> AFAIK, LoopStrengthReduce doesn't modify the CFG itself; it's probably
> an effect of LoopSimplify.

actually it does modify the CFG, by splitting edges for example.
However the preheader does seem to have been created by LoopSimplify.

Ciao,

Duncan.



More information about the llvm-commits mailing list