llvm-6502/test/Transforms
Philip Reames 8a5ad05c13 Pass QueryInst down through non-local dependency calculation
This change is mostly motivated by exposing information about the original query instruction to the actual scanning work in getPointerDependencyFrom when used by GVN PRE. In a follow up change, I will use this to be more precise with regards to the semantics of volatile instructions encountered in the scan of a basic block.

Worth noting, is that this change (despite appearing quite simple) is not semantically preserving. By providing more information to the helper routine, we allow some optimizations to kick in that weren't previously able to (when called from this code path.) In particular, we see that treatment of !invariant.load becomes more precise. In theory, we might see a difference with an ordered/atomic instruction as well, but I'm having a hard time actually finding a test case which shows that.

Test wise, I've included new tests for !invariant.load which illustrate this difference. I've also included some updated TBAA tests which highlight that this change isn't needed for that optimization to kick in - it's handled inside alias analysis itself. 

Eventually, it would be nice to factor the !invariant.load handling inside alias analysis as well.

Differential Revision: http://reviews.llvm.org/D6895



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227110 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-26 18:39:52 +00:00
..
ADCE
AddDiscriminators IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
AlignmentFromAssumptions
ArgumentPromotion IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
AtomicExpand/ARM
BBVectorize This patch teaches IndVarSimplify to add nuw and nsw to certain kinds 2015-01-06 19:02:56 +00:00
BranchFolding
CodeExtractor
CodeGenPrepare [GC] CodeGenPrep transform: simplify offsetable relocate 2015-01-14 23:27:07 +00:00
ConstantHoisting
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
DeadStoreElimination
EarlyCSE
FunctionAttrs
GCOVProfiling IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
GlobalDCE Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
GlobalOpt IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
GVN Pass QueryInst down through non-local dependency calculation 2015-01-26 18:39:52 +00:00
IndVarSimplify Fix PR22222 2015-01-15 01:46:09 +00:00
Inline DebugInfo: Use distinct inlinedAt MDLocations to avoid separate inlined calls being coalesced 2015-01-21 22:57:29 +00:00
InstCombine [PM] Port instcombine to the new pass manager! 2015-01-24 04:19:17 +00:00
InstMerge
InstSimplify
Internalize
IPConstantProp
IRCE Fix crashes in IRCE caused by mismatched types 2015-01-22 08:29:18 +00:00
JumpThreading
LCSSA
LICM IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
LoadCombine
LoopDeletion
LoopIdiom IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
LoopReroll
LoopRotate IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
LoopSimplify
LoopStrengthReduce
LoopUnroll Use a smaller pragma unroll threshold to reduce test execution time. 2015-01-21 13:52:02 +00:00
LoopUnswitch
LoopVectorize Fixed a bug in masked load/store in reversed loop. 2015-01-22 08:20:06 +00:00
LowerAtomic
LowerExpectIntrinsic [PM] Port LowerExpectIntrinsic to the new pass manager. 2015-01-24 11:13:02 +00:00
LowerInvoke
LowerSwitch LowerSwitch: replace unreachable default with popular case destination 2015-01-23 20:43:51 +00:00
Mem2Reg IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
MemCpyOpt
MergeFunc
MetaRenamer
ObjCARC IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PruneEH
Reassociate Fix Reassociate handling of constant in presence of undef float 2015-01-16 03:00:58 +00:00
Reg2Mem
SampleProfile IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
Scalarizer IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
ScalarRepl IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
SCCP
SeparateConstOffsetFromGEP/NVPTX
SimplifyCFG Revert "Don't remove a landing pad if the invoke requires a table entry." 2015-01-22 19:29:46 +00:00
Sink
SLPVectorizer SLPVectorizer: fix wrong scheduling of atomic load/stores. 2015-01-26 09:07:04 +00:00
SROA
StripSymbols IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
StructurizeCFG
TailCallElim
TailDup
Util