adopt getAdjustedAnalysisPointer in two more passes.
authorChris Lattner <sabre@nondot.org>
Wed, 20 Jan 2010 19:53:32 +0000 (19:53 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 20 Jan 2010 19:53:32 +0000 (19:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94017 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/IPA/Andersens.cpp
lib/Analysis/IPA/GlobalsModRef.cpp

index 28c66affe119f5ad19e3fae1edcbf4c685ffb837..418020600d660776ea434a734300f99ed41e98d5 100644 (file)
@@ -475,6 +475,16 @@ namespace {
       AU.setPreservesAll();                         // Does not transform code
     }
 
+    /// getAdjustedAnalysisPointer - This method is used when a pass implements
+    /// an analysis interface through multiple inheritance.  If needed, it
+    /// should override this to adjust the this pointer as needed for the
+    /// specified pass info.
+    virtual void *getAdjustedAnalysisPointer(const PassInfo *PI) {
+      if (PI->isPassID(&AliasAnalysis::ID))
+        return (AliasAnalysis*)this;
+      return this;
+    }
+                      
     //------------------------------------------------
     // Implement the AliasAnalysis API
     //
index a979a99a4de8dd30fb01141abcc30a592df481e9..e803a488a80e32e437fc33a37be2da70403ad9de 100644 (file)
@@ -145,6 +145,16 @@ namespace {
     virtual void deleteValue(Value *V);
     virtual void copyValue(Value *From, Value *To);
 
+    /// getAdjustedAnalysisPointer - This method is used when a pass implements
+    /// an analysis interface through multiple inheritance.  If needed, it
+    /// should override this to adjust the this pointer as needed for the
+    /// specified pass info.
+    virtual void *getAdjustedAnalysisPointer(const PassInfo *PI) {
+      if (PI->isPassID(&AliasAnalysis::ID))
+        return (AliasAnalysis*)this;
+      return this;
+    }
+    
   private:
     /// getFunctionInfo - Return the function info for the function, or null if
     /// we don't have anything useful to say about it.