llvm/lib
Chris Lattner d9c3a0d7cc Various passes before isel split edges and do other CFG-restructuring changes.
isel has its own particular features that it wants in the CFG, in order to
reduce the number of times a constant is computed, etc.  Make sure that we
clean up the CFG before doing any other things for isel.  Doing so can
dramatically reduce the number of split edges and reduce the number of
places that constants get computed.  For example, this shrinks
CodeGen/Generic/phi-immediate-factoring.ll from 44 to 37 instructions on X86,
and from 21 to 17 MBB's in the output.  This is primarily a code size win,
not a performance win.

This implements CodeGen/Generic/phi-immediate-factoring.ll and PR1296.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35575 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:35:34 +00:00
..
Analysis The bit counting intrinsics return i32 not the operand type. This fixes 2007-04-01 18:42:20 +00:00
Archive For PR789: 2007-03-29 19:05:44 +00:00
AsmParser For PR1289: Regenerate 2007-03-30 01:37:39 +00:00
Bytecode For PR789: 2007-03-29 19:05:44 +00:00
CodeGen For PR1297: 2007-04-02 01:01:49 +00:00
Debugger For PR789: 2007-03-29 19:05:44 +00:00
ExecutionEngine For PR1293: 2007-03-30 16:41:50 +00:00
Linker
Support Implement union of wrapped sets. 2007-04-01 03:47:44 +00:00
System Use the stat information in the Path object, if it is already obtained. This 2007-03-29 19:11:22 +00:00
Target - Divides the comparisons in two types: comparisons that only use N and Z 2007-04-02 01:30:03 +00:00
Transforms Various passes before isel split edges and do other CFG-restructuring changes. 2007-04-02 01:35:34 +00:00
VMCore For PR1297: 2007-04-01 07:25:33 +00:00
Makefile