llvm/test/Transforms
Dan Gohman afc36a9520 Previously, RecursivelyDeleteDeadInstructions provided an option
of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.

Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.

This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70636 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-02 18:29:22 +00:00
..
ADCE
ArgumentPromotion Fix typo. 2009-04-23 04:24:19 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare reenable test 2008-11-24 21:27:20 +00:00
CondProp Optimize conditional branch on i1 phis with non-constant inputs. 2009-04-14 23:40:03 +00:00
ConstantMerge
ConstProp
DeadArgElim aha, DAE does have to think about PHI nodes. Many thanks to "Dr Evil" (aka Duncan) 2009-03-18 16:48:45 +00:00
DeadStoreElimination Reimplement the inner loop of DSE. It now uniformly uses getDependence(), 2008-12-06 00:53:22 +00:00
FunctionAttrs Remove alloca tracking from nocapture analysis. Not only 2009-01-07 19:39:06 +00:00
GlobalDCE Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
GlobalOpt Ignore debug info while evaluating function. 2009-03-09 23:04:12 +00:00
GVN Reapply r68211, with the miscompilations it caused fixed. 2009-04-01 23:53:49 +00:00
GVNPRE
IndMemRem Actually run the test in this directory. 2009-01-25 08:05:07 +00:00
IndVarSimplify Make this testcase slightly less trivial, so that it doesn't fail 2009-04-28 22:03:26 +00:00
Inline While inlining, clone llvm.dbg.func.start intrinsic and adjust 2009-04-15 00:17:06 +00:00
InstCombine Add several more icmp simplifications. Transform signed comparisons 2009-04-25 17:12:48 +00:00
Internalize Teach the internalize pass to also internalize 2009-01-05 21:24:45 +00:00
IPConstantProp
JumpThreading Fix PR3353, infinitely jump threading an infinite loop make from switches. 2009-01-19 21:20:34 +00:00
LCSSA
LICM Before deleting a basic block, give other loop passes a chance cleanup analysis values, related to the instructions in the basic block. 2009-03-25 23:57:48 +00:00
LoopDeletion don't spew tons of stuff to the output. This testcase is *not* for 2008-12-03 06:41:50 +00:00
LoopIndexSplit Loop Index Split can eliminate a loop if it can determin if loop body is executed only once. There was a bug in determining IV based value of the iteration for which the loop body is executed. Fix it. 2009-03-30 22:24:10 +00:00
LoopRotate Testcase for PR2639. 2009-04-23 04:30:52 +00:00
LoopSimplify As with r70333, give the primary induction variable a use so 2009-04-28 22:05:13 +00:00
LoopStrengthReduce Previously, RecursivelyDeleteDeadInstructions provided an option 2009-05-02 18:29:22 +00:00
LoopUnroll remove a test that depends on -debug. 2009-03-13 20:31:48 +00:00
LoopUnswitch Actually test something. Use PR3170 test case. 2008-12-08 23:44:46 +00:00
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc
PredicateSimplifier
PruneEH Do not inline functions with (dynamic) alloca into 2009-01-08 21:45:23 +00:00
RaiseAllocations
Reassociate
ScalarRepl fix a crash on a pointless but valid zero-length memset, rdar://6808691 2009-04-21 16:52:12 +00:00
SCCP adjust for asmprinter change. 2009-03-01 00:25:46 +00:00
SimplifyCFG While hoisting instruction to speculatively execute simple bb, ignore dbg intrinsics. 2009-03-06 06:00:17 +00:00
SimplifyLibCalls add some optimizations for strncpy/strncat and factor some 2009-04-12 05:06:39 +00:00
SRETPromotion
StripSymbols
TailCallElim
TailDup