Factor out the code for testing whether a function accesses

arbitrary memory into a helper function, and adjust some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118687 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman
2010-11-10 17:34:04 +00:00
parent 50bcaece67
commit 432d08cbdb
2 changed files with 12 additions and 6 deletions

View File

@@ -268,14 +268,21 @@ public:
return onlyReadsMemory(getModRefBehavior(F));
}
/// onlyReadsMemory - If the functions with the specified behavior are known
/// to only read from non-volatile memory (or not access memory at all), return
/// true. For use when the call site is not known.
/// onlyReadsMemory - Return true if functions with the specified behavior are
/// known to only read from non-volatile memory (or not access memory at all).
///
static bool onlyReadsMemory(ModRefBehavior MRB) {
return !(MRB & Mod);
}
/// onlyAccessesArgPointees - Return true if functions with the specified
/// behavior are known to read at most from objects pointed to by their
/// pointer-typed arguments (with arbitrary offsets).
///
static bool onlyAccessesArgPointees(ModRefBehavior MRB) {
return !(MRB & Anywhere & ~ArgumentPointees);
}
/// getModRefInfo - Return information about whether or not an instruction may
/// read or write the specified memory location. An instruction
/// that doesn't read or write memory may be trivially LICM'd for example.