35 #ifndef LLVM_ANALYSIS_ALIASANALYSISSUMMARY_H
36 #define LLVM_ANALYSIS_ALIASANALYSISSUMMARY_H
121 return !(LHS == RHS);
160 return !(LHS == RHS);
210 return !(LHS == RHS);
213 return std::less<Value *>()(LHS.
Val, RHS.
Val) ||
Optional< InstantiatedValue > instantiateInterfaceValue(InterfaceValue IValue, CallSite CS)
static const unsigned NumAliasAttrs
The number of attributes that AliasAttr should contain.
We use ExternalRelation to describe an externally visible aliasing relations between parameters/retur...
bool operator<=(InterfaceValue LHS, InterfaceValue RHS)
static cflaa::InstantiatedValue getEmptyKey()
This is the result of instantiating InterfaceValue at a particular callsite.
We use ExternalAttribute to describe an externally visible AliasAttrs for parameters/return value...
We use InterfaceValue to describe parameters/return value, as well as potential memory locations that...
static cflaa::InstantiatedValue getTombstoneKey()
SmallVector< ExternalAttribute, 8 > RetParamAttributes
bool operator<(InterfaceValue LHS, InterfaceValue RHS)
AliasSummary is just a collection of ExternalRelation and ExternalAttribute.
static bool isEqual(const cflaa::InstantiatedValue &LHS, const cflaa::InstantiatedValue &RHS)
AliasAttrs getAttrEscaped()
AttrEscaped represent whether the said pointer comes from a known source but escapes to the unknown w...
SmallVector< ExternalRelation, 8 > RetParamRelations
Optional< InstantiatedAttr > instantiateExternalAttribute(ExternalAttribute EAttr, CallSite CS)
bool hasUnknownAttr(AliasAttrs Attr)
int64_t addOffset(int64_t LHS, int64_t RHS)
bool isGlobalOrArgAttr(AliasAttrs Attr)
bool operator>=(InterfaceValue LHS, InterfaceValue RHS)
AliasAttrs getAttrUnknown()
AttrUnknown represent whether the said pointer comes from a source not known to alias analyses (such ...
static unsigned getHashValue(const cflaa::InstantiatedValue &IV)
bool operator>(InterfaceValue LHS, InterfaceValue RHS)
AliasAttrs getExternallyVisibleAttrs(AliasAttrs Attr)
Given an AliasAttrs, return a new AliasAttrs that only contains attributes meaningful to the caller...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
bool operator!=(InterfaceValue LHS, InterfaceValue RHS)
static const int64_t UnknownOffset
AliasAttrs getGlobalOrArgAttrFromValue(const Value &Val)
AttrGlobal represent whether the said pointer is a global value.
bool hasUnknownOrCallerAttr(AliasAttrs Attr)
std::bitset< NumAliasAttrs > AliasAttrs
These are attributes that an alias analysis can use to mark certain special properties of a given poi...
bool hasCallerAttr(AliasAttrs Attr)
AliasAttrs getAttrCaller()
AttrCaller represent whether the said pointer comes from a source not known to the current function b...
This is the result of instantiating ExternalRelation at a particular callsite.
bool hasEscapedAttr(AliasAttrs Attr)
LLVM Value Representation.
AliasAttrs getAttrNone()
Attr represent whether the said pointer comes from an unknown source (such as opaque memory or an int...
Optional< InstantiatedRelation > instantiateExternalRelation(ExternalRelation ERelation, CallSite CS)
static const unsigned MaxSupportedArgsInSummary
The maximum number of arguments we can put into a summary.
This is the result of instantiating ExternalAttribute at a particular callsite.
bool operator==(InterfaceValue LHS, InterfaceValue RHS)