mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
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:
parent
cf93cdde56
commit
762e8e846f
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user