llvm-6502/test/Transforms
Duncan Sands 91fa1da2f7 Replacing zero-sized alloca's with a null pointer is too aggressive, instead
merge all zero-sized alloca's into one, fixing c43204g from the Ada ACATS
conformance testsuite.  What happened there was that a variable sized object
was being allocated on the stack, "alloca i8, i32 %size".  It was then being
passed to another function, which tested that the address was not null (raising
an exception if it was) then manipulated %size bytes in it (load and/or store).
The optimizers cleverly managed to deduce that %size was zero (congratulations
to them, as it isn't at all obvious), which made the alloca zero size, causing
the optimizers to replace it with null, which then caused the check mentioned
above to fail, and the exception to be raised, wrongly.  Note that no loads
and stores were actually being done to the alloca (the loop that does them is
executed %size times, i.e. is not executed), only the not-null address check.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159202 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-26 13:39:21 +00:00
..
ADCE Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
ArgumentPromotion Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
BBVectorize Allow controlling vectorization of boolean values separately from other integer types. 2012-06-24 13:28:01 +00:00
BlockPlacement Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
BoundsChecking port the BoundsChecking patch to the new MemoryBuiltin API (i.e., remove most of the code from here). 2012-06-21 15:59:53 +00:00
BranchFolding
CodeExtractor Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
CodeGenPrepare Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
ConstantMerge Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
ConstProp Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
CorrelatedValuePropagation allow LazyValueInfo::getEdgeValue() to reason about multiple edges from the same switch instruction by doing union of ranges (which may still be conservative, but it's more aggressive than before) 2012-05-18 21:02:10 +00:00
DeadArgElim Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
DeadStoreElimination Teach DeadStoreElimination to eliminate exit-block stores with phi addresses. 2012-05-10 18:57:38 +00:00
EarlyCSE Fix regression from r151466: an we can't replace uses of an instruction reachable from the entry block with uses of an instruction not reachable from the entry block. PR12231. 2012-03-13 01:06:07 +00:00
FunctionAttrs Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
GlobalDCE Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
GlobalOpt If a constant or a function has linkonce_odr linkage and unnamed_addr, mark it 2012-06-25 14:30:31 +00:00
GVN When gvn decides to replace an instruction with another, we have to patch the 2012-06-04 22:44:21 +00:00
IndVarSimplify Teach SCEV's icmp simplification logic that a-b == 0 is equivalent to a == b. 2012-05-30 18:32:23 +00:00
Inline Fix the inliner so that the optsize function attribute don't alter the 2012-05-23 13:42:57 +00:00
InstCombine Replacing zero-sized alloca's with a null pointer is too aggressive, instead 2012-06-26 13:39:21 +00:00
InstSimplify Revert r153521 as it's causing large regressions on the nightly testers. 2012-03-28 18:42:50 +00:00
Internalize Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
IPConstantProp Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
JumpThreading formatting change: strip debug info from test 2012-05-10 16:55:31 +00:00
LCSSA Enable the new LoopInfo algorithm by default. 2012-06-26 04:11:38 +00:00
LICM An instruction in a loop is not guaranteed to be executed just because the loop 2012-05-01 04:03:01 +00:00
LoopDeletion Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LoopIdiom Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LoopRotate Fix ValueTracking to conclude that debug intrinsics are safe to 2012-04-07 19:22:18 +00:00
LoopSimplify LoopSimplify bug fix. Handle indirect loop back edges. 2012-03-20 21:24:52 +00:00
LoopStrengthReduce Unit test for LSR kind=Special fix: r158536. 2012-06-15 22:46:31 +00:00
LoopUnroll Fix 12513: Loop unrolling breaks with indirect branches. 2012-04-10 05:14:42 +00:00
LoopUnswitch Enable the new LoopInfo algorithm by default. 2012-06-26 04:11:38 +00:00
LowerAtomic Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LowerExpectIntrinsic Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LowerInvoke Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
LowerSwitch PR1255 related changes (case ranges): 2012-05-24 09:33:20 +00:00
Mem2Reg Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
MemCpyOpt Move the capture analysis from MemoryDependencyAnalysis to a more general place 2012-05-14 20:35:04 +00:00
MergeFunc Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
ObjCARC Fix the objc_autoreleasedReturnValue optimization code to locate 2012-06-25 19:47:37 +00:00
PhaseOrdering Reapply r155136 after fixing PR12599. 2012-04-23 17:39:52 +00:00
PruneEH Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
Reassociate Remove a dangling reference to a deleted instruction. Fixes PR13185! 2012-06-24 01:44:08 +00:00
ScalarRepl Now that SROA can form alloca's for dynamic vector accesses, further improve it to be able to replace operations on these vector alloca's with insert/extract element insts 2012-06-17 03:58:26 +00:00
SCCP Reapply r155682, making constant folding more consistent, with a fix to work 2012-04-27 17:50:22 +00:00
SimplifyCFG improve optimization of invoke instructions: 2012-06-25 17:11:47 +00:00
SimplifyLibCalls revert my previous commit (r159173), since as Eli pointed out, it's perfectly ok to mark realloc as noalias 2012-06-25 23:26:10 +00:00
Sink Enhance the sinking code to handle diamond patterns. Patch by 2012-05-31 08:09:49 +00:00
StripSymbols Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
TailCallElim Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
TailDup Continue cleanup of LIT, getting rid of the remaining artifacts from dejagnu 2012-03-25 09:02:19 +00:00