llvm-6502/lib/Transforms/Scalar
Duncan Sands 841f426175 Reapply commit 158073 with a fix (the testcase was already committed). The
problem was that by moving instructions around inside the function, the pass
could accidentally move the iterator being used to advance over the function
too.  Fix this by only processing the instruction equal to the iterator, and
leaving processing of instructions that might not be equal to the iterator
to later (later = after traversing the basic block; it could also wait until
after traversing the entire function, but this might make the sets quite big).
Original commit message:

Grab-bag of reassociate tweaks.  Unify handling of dead instructions and
instructions to reoptimize.  Exploit this to more systematically eliminate
dead instructions (this isn't very useful in practice but is convenient for
analysing some testcase I am working on).  No need for WeakVH any more: use
an AssertingVH instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158226 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-08 20:15:33 +00:00
..
ADCE.cpp The landingpad instruction isn't dead simply because it's value isn't used. 2011-08-19 21:52:06 +00:00
BasicBlockPlacement.cpp
BoundsChecking.cpp BoundsChecking: add support for ConstantPointerNull. fixes a bunch of instrumentation failures in loops with reallocs 2012-06-08 16:31:42 +00:00
CMakeLists.txt hopefully fix the CMake build. sorry for breakage 2012-05-22 17:40:46 +00:00
CodeGenPrepare.cpp Switch the select to branch transformation on by default. 2012-05-06 14:25:16 +00:00
ConstantProp.cpp Last bit of TargetLibraryInfo propagation. Also fixed a case for TargetData 2011-12-01 21:29:16 +00:00
CorrelatedValuePropagation.cpp llvm::SwitchInst 2012-03-11 06:09:17 +00:00
DCE.cpp
DeadStoreElimination.cpp Teach DeadStoreElimination to eliminate exit-block stores with phi addresses. 2012-05-10 18:57:38 +00:00
EarlyCSE.cpp bz11794 : EarlyCSE stack overflow on long functions. 2012-01-31 23:14:41 +00:00
GlobalMerge.cpp Fix various issues (or do cleanups) found by enabling certain MSVC warnings. 2012-02-13 06:30:56 +00:00
GVN.cpp When gvn decides to replace an instruction with another, we have to patch the 2012-06-04 22:44:21 +00:00
IndVarSimplify.cpp More IndVarSimplify cleanup. 2012-03-24 00:51:17 +00:00
JumpThreading.cpp enhance jump threading to preserve TBAA information when PRE'ing loads, 2012-03-13 18:07:41 +00:00
LICM.cpp An instruction in a loop is not guaranteed to be executed just because the loop 2012-05-01 04:03:01 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
LoopDeletion.cpp
LoopIdiomRecognize.cpp Correct grammar. 2011-09-13 00:44:16 +00:00
LoopInstSimplify.cpp Propagate TargetLibraryInfo throughout ConstantFolding.cpp and 2011-12-01 03:08:23 +00:00
LoopRotation.cpp loop-rotate shouldn't hoist alloca instructions out of a loop. Patch by Patrik Hägglund, with slightly modified test. Issue reported by Patrik Hägglund on llvmdev. 2012-02-16 00:41:10 +00:00
LoopStrengthReduce.cpp Fix typos found by http://github.com/lyda/misspell-check 2012-06-02 10:20:22 +00:00
LoopUnrollPass.cpp LoopUnrollPass: Use variable "Threshold" instead of "CurrentThreshold" when 2012-04-04 11:44:08 +00:00
LoopUnswitch.cpp Do not pass an invalid domtree to SimplifyInstruction from 2012-05-20 01:32:09 +00:00
LowerAtomic.cpp Remove the old atomic instrinsics. autoupgrade functionality is included with this patch. 2011-10-06 23:20:49 +00:00
Makefile
MemCpyOptimizer.cpp Move the capture analysis from MemoryDependencyAnalysis to a more general place 2012-05-14 20:35:04 +00:00
ObjCARC.cpp Fix typos found by http://github.com/lyda/misspell-check 2012-06-02 10:20:22 +00:00
Reassociate.cpp Reapply commit 158073 with a fix (the testcase was already committed). The 2012-06-08 20:15:33 +00:00
Reg2Mem.cpp Fix typos found by http://github.com/lyda/misspell-check 2012-06-02 10:20:22 +00:00
Scalar.cpp add a new pass to instrument loads and stores for run-time bounds checking 2012-05-22 17:19:09 +00:00
ScalarReplAggregates.cpp Do not eliminate allocas whose alignment exceeds that of the 2012-05-19 22:52:10 +00:00
SCCP.cpp Fix 80-column violation. 2012-03-28 00:35:33 +00:00
SimplifyCFGPass.cpp
SimplifyLibCalls.cpp Teach SimplifyLibCalls about stpcpy. 2012-05-15 11:46:21 +00:00
Sink.cpp Enhance the sinking code to handle diamond patterns. Patch by 2012-05-31 08:09:49 +00:00
TailRecursionElimination.cpp A pile of long over-due refactorings here. There are some very, *very* 2012-05-04 00:58:03 +00:00