diff options
Diffstat (limited to 'llvm/lib/Analysis')
| -rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index b2983c722e2..36b831c0ef2 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -153,6 +153,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; +    }    };  }  // End of anonymous namespace @@ -192,6 +202,16 @@ namespace {      /// global) or not.      bool pointsToConstantMemory(const Value *P); +    /// 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:      // VisitedPHIs - Track PHI nodes visited by a aliasCheck() call.      SmallPtrSet<const Value*, 16> VisitedPHIs; | 

