LLVM  3.7.0
Public Types | Public Attributes | List of all members
llvm::LibCallLocationInfo Struct Reference

LibCallLocationInfo - This struct describes a set of memory locations that are accessed by libcalls. More...

#include <LibCallSemantics.h>

Collaboration diagram for llvm::LibCallLocationInfo:
[legend]

Public Types

enum  LocResult { Yes, No, Unknown }
 isLocation - Return a LocResult if the specified pointer refers to this location for the specified call site. More...
 

Public Attributes

LocResult(* isLocation )(ImmutableCallSite CS, const MemoryLocation &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 40 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 48 of file LibCallSemantics.h.

Member Data Documentation

LocResult(* llvm::LibCallLocationInfo::isLocation)(ImmutableCallSite CS, const MemoryLocation &Loc)

Definition at line 51 of file LibCallSemantics.h.


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