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)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:361

Parameters

llvm::AliasAnalysis& aa
llvm::MemorySSA* mssa
llvm::Loop* l

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

llvm::AliasAnalysis& aa

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)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:378

Parameters

llvm::LoadInst* LI

void add(llvm::StoreInst* SI)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:379

Parameters

llvm::StoreInst* SI

void add(llvm::VAArgInst* VAAI)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:380

Parameters

llvm::VAArgInst* VAAI

void add(llvm::AnyMemSetInst* MSI)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:381

Parameters

llvm::AnyMemSetInst* MSI

void add(llvm::AnyMemTransferInst* MTI)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:382

Parameters

llvm::AnyMemTransferInst* MTI

void add(llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:383

Parameters

llvm::Instruction* I

void add(llvm::BasicBlock& BB)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:384

Parameters

llvm::BasicBlock& BB

void add(const llvm::AliasSetTracker& AST)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:385

Parameters

const llvm::AliasSetTracker& AST

void addAllInstructionsInLoopUsingMSSA()

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:387

void addUnknown(llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:386

Parameters

llvm::Instruction* I

llvm::AliasSetTracker::const_iterator begin()
    const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:418

llvm::AliasSetTracker::iterator begin()

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:421

void clear()

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:389

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)

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

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:425

llvm::AliasSetTracker::const_iterator end() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:419

llvm::AliasSetTracker::iterator end()

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:422

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)

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

Description

Return the alias sets that are active.

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:392

void print(llvm::raw_ostream& OS) const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:424

Parameters

llvm::raw_ostream& OS

~AliasSetTracker()

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:363