class AliasSetTracker
Declaration
class AliasSetTracker { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:328
Method Overview
- public AliasSetTracker(llvm::AliasAnalysis & aa, llvm::MemorySSA * mssa, llvm::Loop * l)
- public AliasSetTracker(llvm::AliasAnalysis & aa)
- public void add(llvm::Value * Ptr, llvm::LocationSize Size, const llvm::AAMDNodes & AAInfo)
- public void add(llvm::LoadInst * LI)
- public void add(llvm::StoreInst * SI)
- public void add(llvm::VAArgInst * VAAI)
- public void add(llvm::AnyMemSetInst * MSI)
- public void add(llvm::AnyMemTransferInst * MTI)
- public void add(llvm::Instruction * I)
- public void add(llvm::BasicBlock & BB)
- public void add(const llvm::AliasSetTracker & AST)
- public void addAllInstructionsInLoopUsingMSSA()
- public void addUnknown(llvm::Instruction * I)
- public llvm::AliasSetTracker::const_iterator begin() const
- public llvm::AliasSetTracker::iterator begin()
- public void clear()
- public void copyValue(llvm::Value * From, llvm::Value * To)
- public void deleteValue(llvm::Value * PtrVal)
- public void dump() const
- public llvm::AliasSetTracker::const_iterator end() const
- public llvm::AliasSetTracker::iterator end()
- public llvm::AliasAnalysis & getAliasAnalysis() const
- public llvm::AliasSet & getAliasSetFor(const llvm::MemoryLocation & MemLoc)
- public const ilist<llvm::AliasSet> & getAliasSets() const
- public void print(llvm::raw_ostream & OS) const
- public ~AliasSetTracker()
Methods
¶AliasSetTracker(llvm::AliasAnalysis& aa,
llvm::MemorySSA* mssa,
llvm::Loop* l)
AliasSetTracker(llvm::AliasAnalysis& aa,
llvm::MemorySSA* mssa,
llvm::Loop* l)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:361
Parameters
- llvm::AliasAnalysis& aa
- llvm::MemorySSA* mssa
- llvm::Loop* l
¶AliasSetTracker(llvm::AliasAnalysis& aa)
AliasSetTracker(llvm::AliasAnalysis& aa)
Description
Create an empty collection of AliasSets, and use the specified alias analysis object to disambiguate load and store addresses.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:360
Parameters
¶void add(llvm::Value* Ptr,
llvm::LocationSize Size,
const llvm::AAMDNodes& AAInfo)
void add(llvm::Value* Ptr,
llvm::LocationSize Size,
const llvm::AAMDNodes& AAInfo)
Description
These methods are used to add different types of instructions to the alias sets. Adding a new instruction can result in one of three actions happening: 1. If the instruction doesn't alias any other sets, create a new set. 2. If the instruction aliases exactly one set, add it to the set 3. If the instruction aliases multiple sets, merge the sets, and add the instruction to the result. These methods return true if inserting the instruction resulted in the addition of a new alias set (i.e., the pointer did not alias anything).
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:377
Parameters
- llvm::Value* Ptr
- llvm::LocationSize Size
- const llvm::AAMDNodes& AAInfo
¶void add(llvm::LoadInst* LI)
void add(llvm::LoadInst* LI)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:378
Parameters
- llvm::LoadInst* LI
¶void add(llvm::StoreInst* SI)
void add(llvm::StoreInst* SI)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:379
Parameters
- llvm::StoreInst* SI
¶void add(llvm::VAArgInst* VAAI)
void add(llvm::VAArgInst* VAAI)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:380
Parameters
- llvm::VAArgInst* VAAI
¶void add(llvm::AnyMemSetInst* MSI)
void add(llvm::AnyMemSetInst* MSI)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:381
Parameters
- llvm::AnyMemSetInst* MSI
¶void add(llvm::AnyMemTransferInst* MTI)
void add(llvm::AnyMemTransferInst* MTI)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:382
Parameters
¶void add(llvm::Instruction* I)
void add(llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:383
Parameters
¶void add(llvm::BasicBlock& BB)
void add(llvm::BasicBlock& BB)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:384
Parameters
- llvm::BasicBlock& BB
¶void add(const llvm::AliasSetTracker& AST)
void add(const llvm::AliasSetTracker& AST)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:385
Parameters
- const llvm::AliasSetTracker& AST
¶void addAllInstructionsInLoopUsingMSSA()
void addAllInstructionsInLoopUsingMSSA()
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:387
¶void addUnknown(llvm::Instruction* I)
void addUnknown(llvm::Instruction* I)
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:386
Parameters
¶llvm::AliasSetTracker::const_iterator begin()
const
llvm::AliasSetTracker::const_iterator begin()
const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:418
¶llvm::AliasSetTracker::iterator begin()
llvm::AliasSetTracker::iterator begin()
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:421
¶void clear()
void clear()
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:389
¶void copyValue(llvm::Value* From, llvm::Value* To)
void copyValue(llvm::Value* From, llvm::Value* To)
Description
This method should be used whenever a preexisting value in the program is copied or cloned, introducing a new value. Note that it is ok for clients that use this method to introduce the same value multiple times: if the tracker already knows about a value, it will ignore the request.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:413
Parameters
- llvm::Value* From
- llvm::Value* To
¶void deleteValue(llvm::Value* PtrVal)
void deleteValue(llvm::Value* PtrVal)
Description
This method is used to remove a pointer value from the AliasSetTracker entirely. It should be used when an instruction is deleted from the program to update the AST. If you don't use this, you would have dangling pointers to deleted instructions.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:407
Parameters
- llvm::Value* PtrVal
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:425
¶llvm::AliasSetTracker::const_iterator end() const
llvm::AliasSetTracker::const_iterator end() const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:419
¶llvm::AliasSetTracker::iterator end()
llvm::AliasSetTracker::iterator end()
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:422
¶llvm::AliasAnalysis& getAliasAnalysis() const
llvm::AliasAnalysis& getAliasAnalysis() const
Description
Return the underlying alias analysis object used by this tracker.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:401
¶llvm::AliasSet& getAliasSetFor(
const llvm::MemoryLocation& MemLoc)
llvm::AliasSet& getAliasSetFor(
const llvm::MemoryLocation& MemLoc)
Description
Return the alias set which contains the specified memory location. If the memory location aliases two or more existing alias sets, will have the effect of merging those alias sets before the single resulting alias set is returned.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:398
Parameters
- const llvm::MemoryLocation& MemLoc
¶const ilist<llvm::AliasSet>& getAliasSets() const
const ilist<llvm::AliasSet>& getAliasSets() const
Description
Return the alias sets that are active.
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:392
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:424
Parameters
¶~AliasSetTracker()
~AliasSetTracker()
Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:363