35 #ifndef LLVM_ANALYSIS_ALIASANALYSISSUMMARY_H 36 #define LLVM_ANALYSIS_ALIASANALYSISSUMMARY_H 121 return !(LHS == RHS);
143 if (LHS == UnknownOffset || RHS == UnknownOffset)
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.
This class represents lattice values for constants.
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)
BlockVerifier::State From
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)