llvm-6502/lib/Transforms/Scalar
Chad Rosier 1523db7c64 Reapply r221924: "[GVN] Perform Scalar PRE on gep indices that feed loads before
doing Load PRE"

This commit updates the failing test in
Analysis/TypeBasedAliasAnalysis/gvn-nonlocal-type-mismatch.ll

The failing test is sensitive to the order in which we process loads.  This
version turns on the RPO traversal instead of the while DT traversal in GVN.
The new test code is functionally same just the order of loads that are
eliminated is swapped.

This new version also fixes an issue where GVN splits a critical edge and
potentially invalidate the RPO/DT iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222039 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-14 21:09:13 +00:00
..
ADCE.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
AlignmentFromAssumptions.cpp [AlignmentFromAssumptions] Don't crash just because the target is 32-bit 2014-09-11 08:40:17 +00:00
CMakeLists.txt Add an AlignmentFromAssumptions Pass 2014-09-07 20:05:11 +00:00
ConstantHoisting.cpp Remove unnecessary copying or replace it with moves in a bunch of places. 2014-10-04 16:55:56 +00:00
ConstantProp.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
CorrelatedValuePropagation.cpp Make use of @llvm.assume from LazyValueInfo 2014-09-07 20:29:59 +00:00
DCE.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
DeadStoreElimination.cpp [DSE] Remove no-data-layout-only type-based overlap checking 2014-10-17 11:56:00 +00:00
EarlyCSE.cpp EarlyCSE should ignore calls to @llvm.assume 2014-11-03 20:21:32 +00:00
FlattenCFGPass.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
GVN.cpp Reapply r221924: "[GVN] Perform Scalar PRE on gep indices that feed loads before 2014-11-14 21:09:13 +00:00
IndVarSimplify.cpp Disable indvar widening if arithmetics on the wider type are more expensive 2014-11-12 18:09:15 +00:00
JumpThreading.cpp Revert "Teach the load analysis to allow finding available values which require" (r220277) 2014-10-21 23:49:52 +00:00
LICM.cpp Introduce enum values for previously defined metadata types. (NFC) 2014-10-21 00:13:20 +00:00
LLVMBuild.txt ScalarOpts/LLVMBuild.txt: Prune unused dependency to IPA. 2014-09-09 15:00:38 +00:00
LoadCombine.cpp Use AA in LoadCombine 2014-11-03 23:19:16 +00:00
LoopDeletion.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
LoopIdiomRecognize.cpp Remove extra whitespace in function declaration. No functionality change. 2014-06-14 03:48:29 +00:00
LoopInstSimplify.cpp Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.) 2014-09-07 18:57:58 +00:00
LoopRerollPass.cpp Reformat partially, where I touched for whitespace changes. 2014-10-28 11:54:52 +00:00
LoopRotation.cpp Do not simplifyLatch for loops where hoisting increments couldresult in extra live range interferance 2014-10-29 20:19:47 +00:00
LoopStrengthReduce.cpp LSR: Minor cleanup after Daniel's patch. 2014-10-25 19:59:30 +00:00
LoopUnrollPass.cpp [SCEV] Add some asserts to the recently improved trip count computation 2014-10-11 00:12:11 +00:00
LoopUnswitch.cpp Add functions for finding ephemeral values 2014-09-07 13:49:57 +00:00
LowerAtomic.cpp IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
Makefile
MemCpyOptimizer.cpp Allow call-slop optzn for destinations with a suitable dereferenceable attribute 2014-10-16 19:43:08 +00:00
MergedLoadStoreMotion.cpp Use Alias Analysis to hoist 2 loads from diamond to the common predecessor basic block. 2014-11-02 08:03:05 +00:00
PartiallyInlineLibCalls.cpp PartiallyInlineLibCalls: Check sqrt result type before transforming it. 2014-08-01 23:21:21 +00:00
Reassociate.cpp [Reassociate] Canonicalize the operands of all binary operators. 2014-11-14 17:09:19 +00:00
Reg2Mem.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
SampleProfile.cpp Use ErrorOr for the ::create factory on instrumented and sample profilers. 2014-11-03 00:51:45 +00:00
Scalar.cpp [C API] Make the 'lower switch' pass available via the C API. 2014-09-11 21:32:32 +00:00
Scalarizer.cpp Revert "IR: MDNode => Value" 2014-11-11 21:30:22 +00:00
ScalarReplAggregates.cpp Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
SCCP.cpp SCCP: overdefined calls cannot become constant 2014-11-07 08:54:19 +00:00
SeparateConstOffsetFromGEP.cpp [SeparateConstOffsetFromGEP] Fixed a bug related to unsigned modulo 2014-10-25 18:34:03 +00:00
SimplifyCFGPass.cpp [SimplifyCFG] threshold for folding branches with common destination 2014-09-30 22:23:38 +00:00
Sink.cpp Use range based for loops to avoid needing to re-mention SmallPtrSet size. 2014-08-24 23:23:06 +00:00
SROA.cpp [SROA] Change how SROA does vector-based promotion of allocas to handle 2014-10-18 00:44:02 +00:00
StructurizeCFG.cpp Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
TailRecursionElimination.cpp Revert "Transforms: reapply SVN r219899" 2014-11-04 02:02:14 +00:00