Add support for tail duplication to BranchFolding, and extend
authorDan Gohman <gohman@apple.com>
Wed, 11 Nov 2009 19:48:59 +0000 (19:48 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 11 Nov 2009 19:48:59 +0000 (19:48 +0000)
commit2210c0bea83aa8a8585d793a1f63e8c01b65be38
treeb424f49eec4e671264bc206aef236dbb369e08aa
parent3e20475feebca3bfb29375ac7f3e5acbeb2a95c8
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86871 91177308-0d34-0410-b5e6-96231b3b80d8
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 [new file with mode: 0644]