llvm-6502/test/Transforms
Duncan Sands 3f329cb781 Teach GVN to also propagate switch cases. For example, in this code
switch (n) {
    case 27:
      do_something(x);
    ...
  }
the call do_something(x) will be replaced with do_something(27).  In
gcc-as-one-big-file this results in the removal of about 500 lines of
bitcode (about 0.02%), so has about 1/10 of the effect of propagating
branch conditions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141360 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-07 08:29:06 +00:00
..
ADCE Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
ArgumentPromotion fix PR8932, a case where arg promotion could infinitely promote. 2011-01-16 08:09:24 +00:00
BlockPlacement
BranchFolding
CodeExtractor Update this test to the new EH model. 2011-09-20 22:29:43 +00:00
CodeGenPrepare Roll r127459 back in: 2011-03-11 21:52:04 +00:00
ConstantMerge Teach the ConstantMerge pass about alignment. Fixes PR10514! 2011-07-27 19:47:34 +00:00
ConstProp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +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 Update some tests to the new EH scheme. 2011-09-01 00:58:03 +00:00
DeadStoreElimination Try again at r138809 (make DSE more aggressive in removing dead stores at the end of a function), now with less deleting stores before memcpy's. 2011-09-06 18:14:09 +00:00
EarlyCSE Move "atomic" and "volatile" designations on instructions after the opcode 2011-08-12 22:50:01 +00:00
FunctionAttrs Update some tests to the new EH scheme. 2011-09-01 00:58:03 +00:00
GlobalDCE
GlobalOpt Move "atomic" and "volatile" designations on instructions after the opcode 2011-08-12 22:50:01 +00:00
GVN Teach GVN to also propagate switch cases. For example, in this code 2011-10-07 08:29:06 +00:00
IndVarSimplify Test case for r140670: indvars should hoist sext. 2011-09-28 02:13:32 +00:00
Inline Replace more uses of 'unwind' in the tests with calls to landingpad and 2011-09-19 22:11:35 +00:00
InstCombine Revert 141203. InstCombine is looping on unit tests. 2011-10-05 20:44:29 +00:00
InstSimplify InstSimplify: Don't try to replace an extractvalue/insertvalue pair with the original value if types don't match. 2011-09-05 18:16:19 +00:00
Internalize Add test for r127138. 2011-03-07 21:28:14 +00:00
IPConstantProp Update some tests to the new EH scheme. 2011-09-01 00:58:03 +00:00
JumpThreading Move "atomic" and "volatile" designations on instructions after the opcode 2011-08-12 22:50:01 +00:00
LCSSA Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
LICM Atomic load/store support in LICM. 2011-08-15 20:52:09 +00:00
LoopDeletion Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00
LoopIdiom Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit. 2011-09-27 20:39:19 +00:00
LoopRotate remove asmparser support for the old getresult instruction, which has been subsumed by extractvalue. 2011-06-17 06:57:15 +00:00
LoopSimplify Update to the new EH syntax. 2011-09-19 23:50:34 +00:00
LoopStrengthReduce LSR should avoid redundant edge splitting. 2011-10-04 03:50:44 +00:00
LoopUnroll Unit test for r140919, loop unroll heuristics. 2011-10-04 00:07:02 +00:00
LoopUnswitch Split the landing pad basic block with the correct function. Also merge the 2011-09-27 00:59:31 +00:00
LowerAtomic Convert more tests over to the new atomic instructions. 2011-09-26 20:27:49 +00:00
LowerExpectIntrinsic Introduce "expect" intrinsic instructions. 2011-07-06 18:22:43 +00:00
LowerInvoke
LowerSwitch
Mem2Reg Add the returns_twice attribute to LLVM. 2011-10-03 14:45:37 +00:00
MemCpyOpt Atomic load/store handling for the passes using memdep (GVN, DSE, memcpyopt). 2011-08-17 22:22:24 +00:00
MergeFunc When removing a function from the function set and adding it to deferred, we 2011-02-09 06:32:02 +00:00
ObjCARC When eliminating unnecessary retain+autorelease on return values, 2011-09-29 22:27:34 +00:00
PhaseOrdering Add file. 2011-08-19 21:21:20 +00:00
PruneEH Update more tests to the new EH scheme. 2011-08-31 21:04:11 +00:00
Reassociate Remove empty test. 2011-08-02 02:47:45 +00:00
ScalarRepl Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit. 2011-09-27 20:39:19 +00:00
SCCP Make sure IPSCCP never marks a tracked call as overdefined in SCCPSolver::ResolvedUndefsIn. If we do, we can end up in a situation where a function is resolved to return a constant, but the caller is marked overdefined, which confuses the code later. 2011-09-20 23:28:51 +00:00
SimplifyCFG Replace more uses of 'unwind' in the tests with calls to landingpad and 2011-09-19 22:11:35 +00:00
SimplifyLibCalls PR11061: Make simplifylibcalls fold strcmp("", x) correctly. 2011-10-05 22:27:16 +00:00
Sink Fix test; sorry for any inconvenience. 2011-09-01 21:25:42 +00:00
StripSymbols fix PR10286, a problem with the .ll printer handling block addresses that are out-of-scope. 2011-08-03 06:15:41 +00:00
TailCallElim Check for the returns_twice attribute in callsFunctionThatReturnsTwice. This 2011-10-05 20:05:13 +00:00
TailDup Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00