LLVM API Documentation
#include <LibCallSemantics.h>
Public Types | |
enum | LocResult { Yes, No, Unknown } |
Public Attributes | |
LocResult(* | isLocation )(ImmutableCallSite CS, const AliasAnalysis::Location &Loc) |
LibCallLocationInfo - This struct describes a set of memory locations that are accessed by libcalls. Identification of a location is doing with a simple callback function.
For example, the LibCallInfo may be set up to model the behavior of standard libm functions. The location that they may be interested in is an abstract location that represents errno for the current target. In this case, a location for errno is anything such that the predicate returns true. On Mac OS X, this predicate would return true if the pointer is the result of a call to "__error()".
Locations can also be defined in a constant-sensitive way. For example, it is possible to define a location that returns true iff it is passed into the call as a specific argument. This is useful for modeling things like "printf", which can store to memory, but only through pointers passed with a 'n' constraint.
Definition at line 39 of file LibCallSemantics.h.
isLocation - Return a LocResult if the specified pointer refers to this location for the specified call site. This returns "Yes" if we can tell that the pointer *does definitely* refer to the location, "No" if we can tell that the location *definitely does not* refer to the location, and returns "Unknown" if we cannot tell for certain.
Definition at line 47 of file LibCallSemantics.h.
LocResult(* llvm::LibCallLocationInfo::isLocation)(ImmutableCallSite CS, const AliasAnalysis::Location &Loc) |
Definition at line 50 of file LibCallSemantics.h.