LLVM API Documentation

Public Types | Public Attributes
llvm::LibCallLocationInfo Struct Reference

#include <LibCallSemantics.h>

Collaboration diagram for llvm::LibCallLocationInfo:
Collaboration graph
[legend]

List of all members.

Public Types

enum  LocResult { Yes, No, Unknown }

Public Attributes

LocResult(* isLocation )(ImmutableCallSite CS, const AliasAnalysis::Location &Loc)

Detailed Description

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.


Member Enumeration Documentation

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.

Enumerator:
Yes 
No 
Unknown 

Definition at line 47 of file LibCallSemantics.h.


Member Data Documentation

Definition at line 50 of file LibCallSemantics.h.


The documentation for this struct was generated from the following file: