llvm/test/Transforms
Duncan Sands 6dc9e2bf74 Reapply commit 143214 with a fix: m_ICmp doesn't match conditions
with the given predicate, it matches any condition and returns the
predicate - d'oh!  Original commit message:
The expression icmp eq (select (icmp eq x, 0), 1, x), 0 folds to false.
Spotted by my super-optimizer in 186.crafty and 450.soplex.  We really
need a proper infrastructure for handling generalizations of this kind
of thing (which occur a lot), however this case is so simple that I decided
to go ahead and implement it directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143318 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-30 19:56:36 +00:00
..
ADCE Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
ArgumentPromotion
BlockPlacement
BranchFolding
CodeExtractor Update this test to the new EH model. 2011-09-20 22:29:43 +00:00
CodeGenPrepare
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim Update some tests to the new EH scheme. 2011-09-01 00:58:03 +00:00
DeadStoreElimination A dead malloc, a free(NULL) and a free(undef) are all trivially dead 2011-10-24 04:35:36 +00:00
EarlyCSE
FunctionAttrs Update some tests to the new EH scheme. 2011-09-01 00:58:03 +00:00
GlobalDCE
GlobalOpt Refactor code from inlining and globalopt that checks whether a function definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180. 2011-10-20 05:23:42 +00:00
GVN Teach GVN to also propagate switch cases. For example, in this code 2011-10-07 08:29:06 +00:00
IndVarSimplify LFTR should avoid a type mismatch with null pointer IVs. 2011-10-28 03:45:11 +00:00
Inline Remap blockaddress correctly when inlining a function. Fixes PR10162. 2011-10-21 20:45:19 +00:00
InstCombine Extend instcombine's shufflevector simplification to handle more cases where the input and output vectors have different sizes. Patch by Xiaoyi Guo. 2011-10-21 19:06:29 +00:00
InstSimplify Reapply commit 143214 with a fix: m_ICmp doesn't match conditions 2011-10-30 19:56:36 +00:00
Internalize
IPConstantProp Update some tests to the new EH scheme. 2011-09-01 00:58:03 +00:00
JumpThreading
LCSSA Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
LICM
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
LoopSimplify Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
LoopStrengthReduce Fix SCEVExpander assert during LSR: "argument of incompatible type". 2011-10-15 06:19:55 +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
LowerInvoke
LowerSwitch
Mem2Reg Add the returns_twice attribute to LLVM. 2011-10-03 14:45:37 +00:00
MemCpyOpt Oops! Fix test I forgot to submit as part of r142735. 2011-10-22 22:07:31 +00:00
MergeFunc
ObjCARC Teach the ARC optimizer about the !clang.arc.copy_on_escape metadata 2011-10-17 22:53:25 +00:00
PhaseOrdering
PruneEH Update more tests to the new EH scheme. 2011-08-31 21:04:11 +00:00
Reassociate
ScalarRepl The element insertion code in scalar replacement doesn't handle incorrect 2011-10-23 07:02:10 +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 SimplifyLibCalls: Use IRBuilder.CreateGlobalString when creating a string for printf->puts, which correctly sets the unnamed_addr bit on the resulting GlobalVariable. 2011-10-29 19:43:31 +00:00
Sink Fix test; sorry for any inconvenience. 2011-09-01 21:25:42 +00:00
StripSymbols
TailCallElim Correct over-zealous removal of hack. 2011-10-17 18:43:40 +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