summaryrefslogtreecommitdiffstats
path: root/lib/Analysis/BasicAliasAnalysis.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-09-09 18:37:31 +0000
committerDan Gohman <gohman@apple.com>2010-09-09 18:37:31 +0000
commitc8ddbdabb697b20b948c1a56af6062f26691532a (patch)
tree5d824f38bab1ab4ea837b4fbac39c8023cffc53e /lib/Analysis/BasicAliasAnalysis.cpp
parente744541788298d0ef129aa2d38e9aef865218311 (diff)
downloadexternal_llvm-c8ddbdabb697b20b948c1a56af6062f26691532a.zip
external_llvm-c8ddbdabb697b20b948c1a56af6062f26691532a.tar.gz
external_llvm-c8ddbdabb697b20b948c1a56af6062f26691532a.tar.bz2
Extend the getDependence query with support for PHI translation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113521 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r--lib/Analysis/BasicAliasAnalysis.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index 597e34b..354e66d 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -172,8 +172,10 @@ namespace {
}
virtual DependenceResult getDependence(const Instruction *First,
+ const Value *FirstPHITranslatedAddr,
DependenceQueryFlags FirstFlags,
const Instruction *Second,
+ const Value *SecondPHITranslatedAddr,
DependenceQueryFlags SecondFlags) {
return Unknown;
}
@@ -531,8 +533,10 @@ namespace {
virtual ModRefBehavior getModRefBehavior(const Function *F);
virtual DependenceResult getDependence(const Instruction *First,
+ const Value *FirstPHITranslatedAddr,
DependenceQueryFlags FirstFlags,
const Instruction *Second,
+ const Value *SecondPHITranslatedAddr,
DependenceQueryFlags SecondFlags);
/// getAdjustedAnalysisPointer - This method is used when a pass implements
@@ -748,11 +752,14 @@ BasicAliasAnalysis::getModRefInfo(ImmutableCallSite CS,
AliasAnalysis::DependenceResult
BasicAliasAnalysis::getDependence(const Instruction *First,
+ const Value *FirstPHITranslatedAddr,
DependenceQueryFlags FirstFlags,
const Instruction *Second,
+ const Value *SecondPHITranslatedAddr,
DependenceQueryFlags SecondFlags) {
// We don't have anything special to say yet.
- return getDependenceViaModRefInfo(First, FirstFlags, Second, SecondFlags);
+ return getDependenceViaModRefInfo(First, FirstPHITranslatedAddr, FirstFlags,
+ Second, SecondPHITranslatedAddr, SecondFlags);
}
/// aliasGEP - Provide a bunch of ad-hoc rules to disambiguate a GEP instruction