aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Analysis/MemoryDependenceAnalysis.h
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2011-11-14 22:49:42 +0000
committerNick Lewycky <nicholas@mxc.ca>2011-11-14 22:49:42 +0000
commit88990248d3bfb2f265fcf27f8a032ac0eb14d09f (patch)
treed6733913e0b830749407746b87bf62df6601c79c /include/llvm/Analysis/MemoryDependenceAnalysis.h
parente91da1baa137e3e20a7878030a3b8d5dc5b296f3 (diff)
downloadexternal_llvm-88990248d3bfb2f265fcf27f8a032ac0eb14d09f.tar.gz
external_llvm-88990248d3bfb2f265fcf27f8a032ac0eb14d09f.tar.bz2
external_llvm-88990248d3bfb2f265fcf27f8a032ac0eb14d09f.zip
Refactor capture tracking (which already had a couple flags for whether returns
and stores capture) to permit the caller to see each capture point and decide whether to continue looking. Use this inside memdep to do an analysis that basicaa won't do. This lets us solve another devirtualization case, fixing PR8908! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144580 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis/MemoryDependenceAnalysis.h')
-rw-r--r--include/llvm/Analysis/MemoryDependenceAnalysis.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/Analysis/MemoryDependenceAnalysis.h b/include/llvm/Analysis/MemoryDependenceAnalysis.h
index e18d937f69..68ce364f44 100644
--- a/include/llvm/Analysis/MemoryDependenceAnalysis.h
+++ b/include/llvm/Analysis/MemoryDependenceAnalysis.h
@@ -324,6 +324,7 @@ namespace llvm {
/// Current AA implementation, just a cache.
AliasAnalysis *AA;
TargetData *TD;
+ DominatorTree *DT;
OwningPtr<PredIteratorCache> PredCache;
public:
MemoryDependenceAnalysis();
@@ -430,6 +431,9 @@ namespace llvm {
void RemoveCachedNonLocalPointerDependencies(ValueIsLoadPair P);
+ AliasAnalysis::ModRefResult
+ getModRefInfo(const Instruction *Inst, const AliasAnalysis::Location &Loc);
+
/// verifyRemoved - Verify that the specified instruction does not occur
/// in our internal data structures.
void verifyRemoved(Instruction *Inst) const;