LLVM 22.0.0git
|
#include "llvm/Analysis/AliasSetTracker.h"
Public Types | |
using | iterator = ilist<AliasSet>::iterator |
using | const_iterator = ilist<AliasSet>::const_iterator |
Public Member Functions | |
AliasSetTracker (BatchAAResults &AA) | |
Create an empty collection of AliasSets, and use the specified alias analysis object to disambiguate load and store addresses. | |
~AliasSetTracker () | |
LLVM_ABI void | add (const MemoryLocation &Loc) |
These methods are used to add different types of instructions to the alias sets. | |
LLVM_ABI void | add (LoadInst *LI) |
LLVM_ABI void | add (StoreInst *SI) |
LLVM_ABI void | add (VAArgInst *VAAI) |
LLVM_ABI void | add (AnyMemSetInst *MSI) |
LLVM_ABI void | add (AnyMemTransferInst *MTI) |
LLVM_ABI void | add (Instruction *I) |
LLVM_ABI void | add (BasicBlock &BB) |
LLVM_ABI void | add (const AliasSetTracker &AST) |
LLVM_ABI void | addUnknown (Instruction *I) |
LLVM_ABI void | clear () |
const ilist< AliasSet > & | getAliasSets () const |
Return the alias sets that are active. | |
LLVM_ABI AliasSet & | getAliasSetFor (const MemoryLocation &MemLoc) |
Return the alias set which contains the specified memory location. | |
BatchAAResults & | getAliasAnalysis () const |
Return the underlying alias analysis object used by this tracker. | |
const_iterator | begin () const |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
LLVM_ABI void | print (raw_ostream &OS) const |
LLVM_ABI void | dump () const |
Friends | |
class | AliasSet |
Definition at line 163 of file AliasSetTracker.h.
Definition at line 216 of file AliasSetTracker.h.
using llvm::AliasSetTracker::iterator = ilist<AliasSet>::iterator |
Definition at line 215 of file AliasSetTracker.h.
|
inlineexplicit |
Create an empty collection of AliasSets, and use the specified alias analysis object to disambiguate load and store addresses.
Definition at line 176 of file AliasSetTracker.h.
Referenced by add().
|
inline |
Definition at line 177 of file AliasSetTracker.h.
References clear().
void AliasSetTracker::add | ( | AnyMemSetInst * | MSI | ) |
Definition at line 336 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::getForDest().
void AliasSetTracker::add | ( | AnyMemTransferInst * | MTI | ) |
Definition at line 340 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::getForDest(), and llvm::MemoryLocation::getForSource().
void AliasSetTracker::add | ( | BasicBlock & | BB | ) |
Definition at line 428 of file AliasSetTracker.cpp.
void AliasSetTracker::add | ( | const AliasSetTracker & | AST | ) |
Definition at line 433 of file AliasSetTracker.cpp.
References add(), AliasSet, AliasSetTracker(), and assert().
void AliasSetTracker::add | ( | const MemoryLocation & | Loc | ) |
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:
Definition at line 316 of file AliasSetTracker.cpp.
Referenced by add(), add(), add(), collectPromotionCandidates(), and llvm::AliasSetsPrinterPass::run().
void AliasSetTracker::add | ( | Instruction * | I | ) |
Definition at line 373 of file AliasSetTracker.cpp.
References add(), addUnknown(), Call, llvm::dyn_cast(), llvm::enumerate(), llvm::MemoryLocation::getForArgument(), llvm::Value::getType(), I, llvm::isModSet(), llvm::isNoModRef(), llvm::Type::isPointerTy(), llvm::isRefSet(), llvm::PatternMatch::m_Intrinsic(), llvm::PatternMatch::match(), MRI, and llvm::Ref.
void AliasSetTracker::add | ( | LoadInst * | LI | ) |
Definition at line 320 of file AliasSetTracker.cpp.
References addUnknown(), llvm::MemoryLocation::get(), llvm::LoadInst::getOrdering(), and llvm::isStrongerThanMonotonic().
void AliasSetTracker::add | ( | StoreInst * | SI | ) |
Definition at line 326 of file AliasSetTracker.cpp.
References addUnknown(), llvm::MemoryLocation::get(), and llvm::isStrongerThanMonotonic().
void AliasSetTracker::add | ( | VAArgInst * | VAAI | ) |
Definition at line 332 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::get().
void AliasSetTracker::addUnknown | ( | Instruction * | I | ) |
Definition at line 345 of file AliasSetTracker.cpp.
References AliasSet, llvm::dyn_cast(), II, and llvm::Instruction::mayReadOrWriteMemory().
|
inline |
Definition at line 221 of file AliasSetTracker.h.
|
inline |
Definition at line 218 of file AliasSetTracker.h.
void AliasSetTracker::clear | ( | ) |
Definition at line 209 of file AliasSetTracker.cpp.
References llvm::SmallVectorImpl< T >::clear().
Referenced by ~AliasSetTracker().
LLVM_DUMP_METHOD void AliasSetTracker::dump | ( | ) | const |
Definition at line 562 of file AliasSetTracker.cpp.
References llvm::dbgs(), LLVM_DUMP_METHOD, and print().
|
inline |
Definition at line 222 of file AliasSetTracker.h.
|
inline |
Definition at line 219 of file AliasSetTracker.h.
|
inline |
Return the underlying alias analysis object used by this tracker.
Definition at line 213 of file AliasSetTracker.h.
AliasSet & AliasSetTracker::getAliasSetFor | ( | const MemoryLocation & | MemLoc | ) |
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.
Definition at line 271 of file AliasSetTracker.cpp.
References AliasSet, assert(), llvm::is_contained(), and llvm::MemoryLocation::Ptr.
Return the alias sets that are active.
Definition at line 204 of file AliasSetTracker.h.
void AliasSetTracker::print | ( | raw_ostream & | OS | ) | const |
Definition at line 550 of file AliasSetTracker.cpp.
References AliasSet, and llvm::AliasSet::print().
Referenced by dump(), llvm::operator<<(), and llvm::AliasSetsPrinterPass::run().
|
friend |
Definition at line 228 of file AliasSetTracker.h.
References AliasSet.
Referenced by add(), addUnknown(), AliasSet, getAliasSetFor(), and print().