llvm-6502/test/Transforms
Eli Friedman 12bb766ae9 Fix for PR3016: detect the tricky case, where there are
unfoldable references to a PHI node in the block being folded, and disable
the transformation in that case.  The correct transformation of such PHI
nodes depends on whether BB dominates Succ, and dominance is expensive 
to compute here.  (Alternatively, it's possible to check whether any 
uses are live, but that's also essentially a dominance calculation. 
Another alternative is to use reg2mem, but it probably isn't a good idea to
use that in simplifycfg.)

Also, remove some incorrect code from CanPropagatePredecessorsForPHIs 
which is made unnecessary with this patch: it didn't consider the case 
where a PHI node in BB has multiple uses.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79174 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 04:23:49 +00:00
..
ADCE Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
ArgumentPromotion Fix typo. 2009-04-23 04:24:19 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
CondProp Optimize conditional branch on i1 phis with non-constant inputs. 2009-04-14 23:40:03 +00:00
ConstantMerge
ConstProp Remove the vicmp and vfcmp instructions. Because we never had a release with 2009-07-08 03:04:38 +00:00
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 Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
FunctionAttrs Revert r70876 and add a testcase (@c7) showing the problem: 2009-05-07 18:08:34 +00:00
GlobalDCE Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
GlobalOpt Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
GVN Move the re-sort of invalidated NonLocalPointerDeps cache earlier 2009-07-13 17:14:23 +00:00
GVNPRE Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
IndMemRem
IndVarSimplify The upper argument of ConstantRange is exclusive, not inclusive. 2009-07-20 22:34:18 +00:00
Inline PR4123: don't crash when inlining a call which uses its own result. 2009-05-08 00:22:04 +00:00
InstCombine When InstCombine simplifies a load -> extract element to gep -> load, place 2009-08-13 05:12:13 +00:00
Internalize
IPConstantProp
JumpThreading make jump threading handle lexically identical compare instructions 2009-06-19 16:27:56 +00:00
LCSSA Fix LCSSA to avoid emitting a PHI node for the unwind destination of 2009-06-26 00:31:13 +00:00
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
LoopIndexSplit Don't try to split a loop when the controlling icmp instruction 2009-06-27 22:58:27 +00:00
LoopRotate Testcase for PR2639. 2009-04-23 04:30:52 +00:00
LoopSimplify Teach LoopSimplify how to merge multiple loop exits into a single exit, 2009-06-27 21:30:38 +00:00
LoopStrengthReduce Tweak this test to be a little less unusual. 2009-06-20 00:40:56 +00:00
LoopUnroll remove a test that depends on -debug. 2009-03-13 20:31:48 +00:00
LoopUnswitch
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
MemCpyOpt Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
MergeFunc Given two identical weak functions, produce one internal function and two weak 2009-06-12 15:56:56 +00:00
PredicateSimplifier
PruneEH Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
RaiseAllocations
Reassociate Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
ScalarRepl Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
SCCP Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
SimplifyCFG Fix for PR3016: detect the tricky case, where there are 2009-08-16 04:23:49 +00:00
SimplifyLibCalls Fix PR4645 which was fallout from the fix for PR4641. 2009-07-29 22:00:43 +00:00
SRETPromotion
SSI SSI construction should just go ahead and ignore instructions in unreachable 2009-08-15 20:12:18 +00:00
StripSymbols
TailCallElim Improve tail call elim to move loads above readonly calls 2009-06-19 04:22:16 +00:00
TailDup PR4662: Fix a crash introduced by the recent LLVMContext changes. 2009-07-31 19:36:47 +00:00