llvm/lib/Transforms/Scalar
Shuxin Yang 4fd00c55d0 Redo the fix Benjamin Kramer committed in r178793 about iterator invalidation in Reassociate.
I brazenly think this change is slightly simpler than r178793 because: 
  - no "state" in functor
  - "OpndPtrs[i]" looks simpler than "&Opnds[OpndIndices[i]]" 

  While I can reproduce the probelm in Valgrind, it is rather difficult to come up
a standalone testing case. The reason is that when an iterator is invalidated,
the stale invalidated elements are not yet clobbered by nonsense data, so the
optimizer can still proceed successfully. 

  Thank Benjamin for fixing this bug and generously providing the test case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179062 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-08 22:00:43 +00:00
..
ADCE.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
BasicBlockPlacement.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CMakeLists.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
CodeGenPrepare.cpp Bypass Slow Divides 2013-03-04 18:13:57 +00:00
ConstantProp.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CorrelatedValuePropagation.cpp CVP: If we have a PHI with an incoming select, try to skip the select. 2013-02-24 15:34:43 +00:00
DCE.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DeadStoreElimination.cpp Change GetPointerBaseWithConstantOffset's DataLayout argument from a 2013-01-31 02:00:45 +00:00
EarlyCSE.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
GlobalMerge.cpp Update global merge pass according to Duncan's advices: 2013-03-19 21:46:49 +00:00
GVN.cpp Change the order of the operands in patchAndReplaceAllUsesWith so 2013-03-12 16:22:56 +00:00
IndVarSimplify.cpp IndVarSimplify: do not recompute an IV value outside of the loop if : 2013-03-19 20:00:22 +00:00
JumpThreading.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LICM.cpp LICM: Hoist insertvalue/extractvalue out of loops. 2013-01-09 18:12:03 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
LoopDeletion.cpp Make method private. Keep coding standard. 2013-03-18 23:31:30 +00:00
LoopIdiomRecognize.cpp PR14904: Segmentation fault running pass 'Recognize loop idioms' 2013-01-10 23:32:01 +00:00
LoopInstSimplify.cpp Remove #includes from the commonly used LoopInfo.h. 2013-02-09 01:04:28 +00:00
LoopRotation.cpp Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
LoopStrengthReduce.cpp Use dyn_cast instead of isa && cast. 2013-03-24 09:25:47 +00:00
LoopUnrollPass.cpp Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
LoopUnswitch.cpp Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
LowerAtomic.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
MemCpyOptimizer.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Reassociate.cpp Redo the fix Benjamin Kramer committed in r178793 about iterator invalidation in Reassociate. 2013-04-08 22:00:43 +00:00
Reg2Mem.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Scalar.cpp Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
ScalarReplAggregates.cpp Disable the optimization about promoting vector-element-access with symbolic index. 2013-04-05 21:07:08 +00:00
SCCP.cpp Remove dead code and whitespace. 2013-02-21 21:40:51 +00:00
SimplifyCFGPass.cpp Make SimplifyCFG simply depend upon TargetTransformInfo and pass it 2013-01-07 03:53:25 +00:00
SimplifyLibCalls.cpp simplify-libcalls: Removed unused variable 2013-03-21 02:44:07 +00:00
Sink.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SROA.cpp Fix PR15674 (and PR15603): a SROA think-o. 2013-04-07 11:47:54 +00:00
TailRecursionElimination.cpp Begin fleshing out an interface in TTI for modelling the costs of 2013-01-22 11:26:02 +00:00