aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/AliasAnalysis.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-02-26 19:57:10 +0000
committerChris Lattner <sabre@nondot.org>2003-02-26 19:57:10 +0000
commit8dcd17c938a11fe7b16592a70170cc850c45dcc1 (patch)
tree71176610572f8dfb2c1761c165e4784e6bb0e234 /lib/Analysis/AliasAnalysis.cpp
parentd501c13b7d6ce418b0144886dde16525d13f835a (diff)
Add new -no-aa implementation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5641 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/AliasAnalysis.cpp')
-rw-r--r--lib/Analysis/AliasAnalysis.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Analysis/AliasAnalysis.cpp b/lib/Analysis/AliasAnalysis.cpp
index 4816a67d10..a85d28daf2 100644
--- a/lib/Analysis/AliasAnalysis.cpp
+++ b/lib/Analysis/AliasAnalysis.cpp
@@ -97,3 +97,22 @@ bool AliasAnalysis::canInstructionRangeModify(const Instruction &I1,
extern void BasicAAStub();
static IncludeFile INCLUDE_BASICAA_CPP((void*)&BasicAAStub);
+
+namespace {
+ struct NoAA : public ImmutablePass, public AliasAnalysis {
+ virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+ AliasAnalysis::getAnalysisUsage(AU);
+ }
+
+ virtual void initializePass() {
+ InitializeAliasAnalysis(this);
+ }
+ };
+
+ // Register this pass...
+ RegisterOpt<NoAA>
+ X("no-aa", "No Alias Analysis (always returns 'may' alias)");
+
+ // Declare that we implement the AliasAnalysis interface
+ RegisterAnalysisGroup<AliasAnalysis, NoAA> Y;
+} // End of anonymous namespace