15 #ifndef LLVM_ANALYSIS_LIBCALLSEMANTICS_H
16 #define LLVM_ANALYSIS_LIBCALLSEMANTICS_H
131 mutable unsigned NumLocations;
133 LibCallInfo() : Impl(nullptr), Locations(nullptr), NumLocations(0) {}
190 default:
return false;
204 default:
return false;
216 default:
return true;
const LibCallFunctionInfo * getFunctionInfo(const Function *F) const
getFunctionInfo - Return the LibCallFunctionInfo object corresponding to the specified function if we...
const LocationMRInfo * LocationDetails
LocationDetails - This is a pointer to an array of LocationMRInfo structs which indicates the behavio...
DoesNot - If DetailsType is set to DoesNot, then the sense of the LocationDetails array is completely...
DoesOnly - If DetailsType is set to DoesOnly, then we know that the only mod/ref behavior of this fun...
LibCallInfo - Abstract interface to query about library call information.
unsigned LocationID
LocationID - ID # of the accessed location or ~0U for array end.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
const char * Name
Name - This is the name of the libcall this describes.
bool canSimplifyInvokeNoUnwind(const Function *F)
LibCallFunctionInfo - Each record in the array of FunctionInfo structs records the behavior of one li...
LocResult
isLocation - Return a LocResult if the specified pointer refers to this location for the specified ca...
enum llvm::LibCallFunctionInfo::@26 DetailsType
DetailsType - Indicate the sense of the LocationDetails array.
EHPersonality classifyEHPersonality(const Value *Pers)
See if the given exception handling personality function is one that we understand.
AliasAnalysis::ModRefResult UniversalBehavior
TODO: Constant folding function: Constant* vector -> Constant*.
virtual const LibCallFunctionInfo * getFunctionInfoArray() const =0
getFunctionInfoArray - Return an array of descriptors that describe the set of libcalls represented b...
AliasAnalysis::ModRefResult MRInfo
MRInfo - Mod/Ref info for this location.
Representation for a specific memory location.
virtual unsigned getLocationInfo(const LibCallLocationInfo *&Array) const
getLocationInfo - Return descriptors for the locations referenced by this set of libcalls.
LocResult(* isLocation)(ImmutableCallSite CS, const MemoryLocation &Loc)
ImmutableCallSite - establish a view to a call site for examination.
bool isAsynchronousEHPersonality(EHPersonality Pers)
Returns true if this personality function catches asynchronous exceptions.
ModRefResult
Simple mod/ref information...
const LibCallLocationInfo & getLocationInfo(unsigned LocID) const
getLocationInfo - Return information about the specified LocationID.
LocationMRInfo - This pair captures info about whether a specific location is modified or referenced ...
bool isNoOpWithoutInvoke(EHPersonality Pers)
Return true if this personality may be safely removed if there are no invoke instructions remaining i...
bool isMSVCEHPersonality(EHPersonality Pers)
Returns true if this is an MSVC personality function.
LibCallLocationInfo - This struct describes a set of memory locations that are accessed by libcalls...