llvm/test
Dan Gohman 4b35f83b91 Teach LoopSimplify how to merge multiple loop exits into a single exit,
when one of them can be converted to a trivial icmp and conditional
branch.

This addresses what is essentially a phase ordering problem.
SimplifyCFG knows how to do this transformation, but it doesn't do so
if the primary block has any instructions in it other than an icmp and
a branch. In the given testcase, the block contains other instructions,
however they are loop-invariant and can be hoisted. SimplifyCFG doesn't
have LoopInfo though, so it can't hoist them. And, it's important that
the blocks be merged before LoopRotation, as it doesn't support
multiple-exit loops.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74396 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-27 21:30:38 +00:00
..
Analysis Add a testcase demoing some of ScalarEvolution's new trip count logic. 2009-06-24 01:22:30 +00:00
Archive
Assembler
Bindings/Ocaml
Bitcode
BugPoint
CodeGen factor some logic out into a helper function, allow remat of loads from constant 2009-06-27 04:38:55 +00:00
DebugInfo upgrade 2009-06-23 22:11:37 +00:00
ExecutionEngine
Feature Let's ignore MDStrings also! 2009-06-26 02:26:12 +00:00
FrontendAda
FrontendC
FrontendC++
FrontendFortran
FrontendObjC
FrontendObjC++
Integer
lib
Linker
LLVMC
MC/AsmParser MC: Parse .org directives. 2009-06-25 22:44:51 +00:00
Other
Scripts
TableGen
Transforms Teach LoopSimplify how to merge multiple loop exits into a single exit, 2009-06-27 21:30:38 +00:00
Verifier
Makefile Clarify how to configure llvm-gcc-4.2 for use with 2009-06-26 05:44:53 +00:00
Makefile.tests
TestRunner.sh