[llvm-commits] [llvm] r86871 - in /llvm/trunk: lib/CodeGen/BranchFolding.cpp lib/CodeGen/MachineBasicBlock.cpp test/CodeGen/Thumb2/thumb2-cbnz.ll test/CodeGen/Thumb2/thumb2-ifcvt3.ll test/CodeGen/X86/loop-blocks.ll test/CodeGen/X86/tail-opts.ll

Duncan Sands baldrick at free.fr
Wed Nov 11 23:42:35 PST 2009


Hi Dan,

> Add support for tail duplication to BranchFolding, and extend
> tail merging support to handle more cases.
>  - Recognize several cases where tail merging is beneficial even when
>    the tail size is smaller than the generic threshold.
>  - Make use of MachineInstrDesc::isBarrier to help detect
>    non-fallthrough blocks.
>  - Check for and avoid disrupting fall-through edges in more cases.

can this result in a label being sucked off the end of a block, and
moved into another?  Exception handling labels come in pairs, and it
would be wrong to move one of them without the other (even all the
instructions in between).

Ciao,

Duncan.



More information about the llvm-commits mailing list