class AliasSet
Declaration
class AliasSet : public ilist_node { /* full declaration omitted */ };
Description
An intrusive list node. A base class to enable membership in intrusive lists, including \a simple_ilist, \a iplist, and \a ilist. The first template parameter is the\a value_type for the list. An ilist node can be configured with compile-time options to change behaviour and/or add API. By default, an \a ilist_node knows whether it is the list sentinel (an instance of \a ilist_sentinel) if and only if LLVM_ENABLE_ABI_BREAKING_CHECKS. The function \a isKnownSentinel() always returns \c false tracking is off. Sentinel tracking steals a bit from the "prev" link, which adds a mask operation when decrementing an iterator, but enables bug-finding assertions in \a ilist_iterator. To turn sentinel tracking on all the time, pass in the ilist_sentinel_tracking <true > template parameter. This also enables the \a isSentinel() function. The same option must be passed to the intrusive list. (ilist_sentinel_tracking <false > turns sentinel tracking off all the time.) A type can inherit from ilist_node multiple times by passing in different\a ilist_tag options. This allows a single instance to be inserted into multiple lists simultaneously, where each list is given the same tag. struct A {}; struct B {}; struct N : ilist_node <N , ilist_tag <A >>, ilist_node <N , ilist_tag <B >> {}; void foo() { simple_ilist <N , ilist_tag <A >> ListA; simple_ilist <N , ilist_tag <B >> ListB; N N1; ListA.push_back(N1); ListB.push_back(N1); }\endexample See \a is_valid_option for steps on adding a new option.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:48
Inherits from: ilist_node
Method Overview
- public AliasSet(const llvm::AliasSet &)
- public llvm::AliasResult aliasesPointer(const llvm::Value * Ptr, llvm::LocationSize Size, const llvm::AAMDNodes & AAInfo, llvm::AliasAnalysis & AA) const
- public bool aliasesUnknownInst(const llvm::Instruction * Inst, llvm::AliasAnalysis & AA) const
- public llvm::AliasSet::iterator begin() const
- public void dump() const
- public bool empty() const
- public llvm::AliasSet::iterator end() const
- public llvm::Instruction * getUniqueInstruction()
- public bool isForwardingAliasSet() const
- public bool isMayAlias() const
- public bool isMod() const
- public bool isMustAlias() const
- public bool isRef() const
- public void mergeSetIn(llvm::AliasSet & AS, llvm::AliasSetTracker & AST)
- public void print(llvm::raw_ostream & OS) const
- public unsigned int size()
Methods
¶AliasSet(const llvm::AliasSet&)
AliasSet(const llvm::AliasSet&)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:204
Parameters
- const llvm::AliasSet&
¶llvm::AliasResult aliasesPointer(
const llvm::Value* Ptr,
llvm::LocationSize Size,
const llvm::AAMDNodes& AAInfo,
llvm::AliasAnalysis& AA) const
llvm::AliasResult aliasesPointer(
const llvm::Value* Ptr,
llvm::LocationSize Size,
const llvm::AAMDNodes& AAInfo,
llvm::AliasAnalysis& AA) const
Description
If the specified pointer "may" (or must) alias one of the members in the set return the appropriate AliasResult. Otherwise return NoAlias.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:318
Parameters
- const llvm::Value* Ptr
- llvm::LocationSize Size
- const llvm::AAMDNodes& AAInfo
- llvm::AliasAnalysis& AA
¶bool aliasesUnknownInst(
const llvm::Instruction* Inst,
llvm::AliasAnalysis& AA) const
bool aliasesUnknownInst(
const llvm::Instruction* Inst,
llvm::AliasAnalysis& AA) const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:320
Parameters
- const llvm::Instruction* Inst
- llvm::AliasAnalysis& AA
¶llvm::AliasSet::iterator begin() const
llvm::AliasSet::iterator begin() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:223
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:236
¶bool empty() const
bool empty() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:225
¶llvm::AliasSet::iterator end() const
llvm::AliasSet::iterator end() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:224
¶llvm::Instruction* getUniqueInstruction()
llvm::Instruction* getUniqueInstruction()
Description
If this alias set is known to contain a single instruction and *only* a single unique instruction, return it. Otherwise, return nullptr.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:233
¶bool isForwardingAliasSet() const
bool isForwardingAliasSet() const
Description
Return true if this alias set should be ignored as part of the AliasSetTracker object.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:215
¶bool isMayAlias() const
bool isMayAlias() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:211
¶bool isMod() const
bool isMod() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:209
¶bool isMustAlias() const
bool isMustAlias() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:210
¶bool isRef() const
bool isRef() const
Description
Accessors...
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:208
¶void mergeSetIn(llvm::AliasSet& AS,
llvm::AliasSetTracker& AST)
void mergeSetIn(llvm::AliasSet& AS,
llvm::AliasSetTracker& AST)
Description
Merge the specified alias set into this alias set.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:218
Parameters
- llvm::AliasSet& AS
- llvm::AliasSetTracker& AST
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:235
Parameters
¶unsigned int size()
unsigned int size()
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:229