During the CodeGenPrepare we often lower intrinsics (such as objsize)
authorNadav Rotem <nrotem@apple.com>
Tue, 14 Aug 2012 05:19:07 +0000 (05:19 +0000)
committerNadav Rotem <nrotem@apple.com>
Tue, 14 Aug 2012 05:19:07 +0000 (05:19 +0000)
commit3e883734fab4da8413f16957dd116d4ffd9d3223
tree3165c1b0a62a477da5ca386e10ee5dc97d752da3
parent443c9ed7688e66c55c43819a75be681574b291de
During the CodeGenPrepare we often lower intrinsics (such as objsize)
and allow some optimizations to turn conditional branches into unconditional.
This commit adds a simple control-flow optimization which merges two consecutive
basic blocks which are connected by a single edge. This allows the codegen to
operate on larger basic blocks.

rdar://11973998

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161852 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/CodeGenPrepare.cpp
test/CodeGen/ARM/debug-info-branch-folding.ll
test/CodeGen/PowerPC/lbzux.ll
test/CodeGen/X86/2006-11-12-CSRetCC.ll
test/CodeGen/X86/2006-11-17-IllegalMove.ll
test/CodeGen/X86/2008-01-08-SchedulerCrash.ll
test/Transforms/CodeGenPrepare/basic.ll
test/Transforms/LoopStrengthReduce/ARM/2012-06-15-lsr-noaddrmode.ll