llvm-6502/test/Transforms
Benjamin Kramer 56442dfdcf SimplifyCFG: Turn switches into sub+icmp+branch if possible.
This makes the job of the later optzn passes easier, allowing the vast amount of
icmp transforms to chew on it.

We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting
binary on i386-linux.

The testcase from README.txt now compiles into
  decl  %edi
  cmpl  $3, %edi
  sbbl  %eax, %eax
  andl  $1, %eax
  ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124724 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02 15:56:22 +00:00
..
ADCE
ArgumentPromotion fix PR8932, a case where arg promotion could infinitely promote. 2011-01-16 08:09:24 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare temporarily revert r123526. While working on a follow-on patch I 2011-01-15 07:51:19 +00:00
ConstantMerge Don't merge two constants if we care about the address of both. 2011-01-16 17:05:09 +00:00
ConstProp Add the select optimization recently added to instcombine to constant folding. 2011-01-29 20:35:06 +00:00
CorrelatedValuePropagation Test for lazy value info's ability to prove the absense of NULLs in pointers. 2011-01-16 21:57:20 +00:00
DeadArgElim Teach DAE to look for functions whose arguments are unused, and change all callers to pass in an undefvalue instead. 2011-01-16 21:25:33 +00:00
DeadStoreElimination
EarlyCSE Duncan deftly points out that readnone functions aren't 2011-01-03 23:38:13 +00:00
FunctionAttrs
GlobalDCE
GlobalOpt Add unnamed_addr when we can show that address of a global is not used. 2011-01-19 16:32:21 +00:00
GVN Give GVN back the ability to perform simple conditional propagation on conditional branch values. 2010-12-21 23:54:34 +00:00
IndVarSimplify
Inline relax testcase a bit. 2011-01-14 07:46:33 +00:00
InstCombine Recognize and simplify 2011-01-30 22:01:13 +00:00
InstSimplify Have m_One also match constant vectors for which every element is 1. 2011-02-01 08:39:12 +00:00
Internalize
IPConstantProp
JumpThreading Re-apply r124518 with fix. Watch out for invalidated iterator. 2011-01-29 04:46:23 +00:00
LCSSA
LICM
LoopDeletion
LoopIdiom Teach loop-idiom to turn a loop containing a memset into a larger memset 2011-01-04 07:46:33 +00:00
LoopRotate merge tests into one crash.ll test. 2011-01-11 07:50:07 +00:00
LoopSimplify Fix PR8702 by not having LoopSimplify claim to preserve LCSSA form. As described 2011-01-02 13:38:21 +00:00
LoopStrengthReduce
LoopUnroll
LoopUnswitch
LowerAtomic
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg
MemCpyOpt Actually check memcpy lengths, instead of just commenting about 2011-01-21 22:07:57 +00:00
MergeFunc Fix surprising missed optimization in mergefunc where we forgot to consider 2011-01-27 08:38:19 +00:00
PruneEH
Reassociate Fix reassociate to clear optional flags, such as nsw. 2011-02-02 02:02:34 +00:00
ScalarRepl merge all the "crash tests" into crash.ll 2011-01-24 03:37:34 +00:00
SCCP
SimplifyCFG SimplifyCFG: Turn switches into sub+icmp+branch if possible. 2011-02-02 15:56:22 +00:00
SimplifyLibCalls
Sink
SRETPromotion
StripSymbols
TailCallElim Add a test for TCE return duplication. 2011-01-29 04:53:35 +00:00
TailDup