Add a new pointsToConstantMemory method to the AliasAnalysis interface

which can be implemented to improve the quality of mod-ref information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11020 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-01-30 22:15:41 +00:00
parent cf93cdde56
commit 762e8e846f

View File

@ -95,6 +95,11 @@ public:
/// ///
virtual void getMustAliases(Value *P, std::vector<Value*> &RetVals) {} virtual void getMustAliases(Value *P, std::vector<Value*> &RetVals) {}
/// pointsToConstantMemory - If the specified pointer is known to point into
/// constant global memory, return true. This allows disambiguation of store
/// instructions from constant pointers.
///
virtual bool pointsToConstantMemory(const Value *P) { return false; }
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// Simple mod/ref information... /// Simple mod/ref information...
@ -114,7 +119,9 @@ public:
/// pointer. /// pointer.
/// ///
virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size) { virtual ModRefResult getModRefInfo(CallSite CS, Value *P, unsigned Size) {
return ModRef; // If P points to a constant memory location, the call definitely could not
// modify the memory location.
return pointsToConstantMemory(P) ? Ref : ModRef;
} }
/// getModRefInfo - Return information about whether two call sites may refer /// getModRefInfo - Return information about whether two call sites may refer