LLVM 20.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 () | |
void | add (const MemoryLocation &Loc) |
These methods are used to add different types of instructions to the alias sets. | |
void | add (LoadInst *LI) |
void | add (StoreInst *SI) |
void | add (VAArgInst *VAAI) |
void | add (AnyMemSetInst *MSI) |
void | add (AnyMemTransferInst *MTI) |
void | add (Instruction *I) |
void | add (BasicBlock &BB) |
void | add (const AliasSetTracker &AST) |
void | addUnknown (Instruction *I) |
void | clear () |
const ilist< AliasSet > & | getAliasSets () const |
Return the alias sets that are active. | |
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 () |
void | print (raw_ostream &OS) const |
void | dump () const |
Friends | |
class | AliasSet |
Definition at line 161 of file AliasSetTracker.h.
Definition at line 212 of file AliasSetTracker.h.
using llvm::AliasSetTracker::iterator = ilist<AliasSet>::iterator |
Definition at line 211 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 174 of file AliasSetTracker.h.
|
inline |
Definition at line 175 of file AliasSetTracker.h.
References clear().
void AliasSetTracker::add | ( | AnyMemSetInst * | MSI | ) |
Definition at line 337 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::getForDest().
void AliasSetTracker::add | ( | AnyMemTransferInst * | MTI | ) |
Definition at line 341 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::getForDest(), and llvm::MemoryLocation::getForSource().
void AliasSetTracker::add | ( | BasicBlock & | BB | ) |
Definition at line 432 of file AliasSetTracker.cpp.
void AliasSetTracker::add | ( | const AliasSetTracker & | AST | ) |
Definition at line 437 of file AliasSetTracker.cpp.
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 317 of file AliasSetTracker.cpp.
Referenced by add(), collectPromotionCandidates(), and llvm::AliasSetsPrinterPass::run().
void AliasSetTracker::add | ( | Instruction * | I | ) |
Definition at line 377 of file AliasSetTracker.cpp.
References add(), addUnknown(), llvm::enumerate(), llvm::BatchAAResults::getArgModRefInfo(), llvm::MemoryLocation::getForArgument(), llvm::BatchAAResults::getMemoryEffects(), llvm::MemoryEffectsBase< LocationEnum >::getModRef(), llvm::Value::getType(), I, llvm::isModSet(), llvm::isNoModRef(), llvm::Type::isPointerTy(), llvm::isRefSet(), llvm::PatternMatch::match(), MRI, and llvm::Ref.
void AliasSetTracker::add | ( | LoadInst * | LI | ) |
Definition at line 321 of file AliasSetTracker.cpp.
References addUnknown(), llvm::MemoryLocation::get(), llvm::LoadInst::getOrdering(), and llvm::isStrongerThanMonotonic().
void AliasSetTracker::add | ( | StoreInst * | SI | ) |
Definition at line 327 of file AliasSetTracker.cpp.
References addUnknown(), llvm::MemoryLocation::get(), and llvm::isStrongerThanMonotonic().
void AliasSetTracker::add | ( | VAArgInst * | VAAI | ) |
Definition at line 333 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::get().
void AliasSetTracker::addUnknown | ( | Instruction * | I | ) |
Definition at line 346 of file AliasSetTracker.cpp.
References AliasSet, II, and llvm::Instruction::mayReadOrWriteMemory().
Referenced by add().
|
inline |
Definition at line 217 of file AliasSetTracker.h.
|
inline |
Definition at line 214 of file AliasSetTracker.h.
void AliasSetTracker::clear | ( | ) |
Definition at line 210 of file AliasSetTracker.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear().
Referenced by ~AliasSetTracker().
LLVM_DUMP_METHOD void AliasSetTracker::dump | ( | ) | const |
Definition at line 566 of file AliasSetTracker.cpp.
References llvm::dbgs(), and print().
|
inline |
Definition at line 218 of file AliasSetTracker.h.
|
inline |
Definition at line 215 of file AliasSetTracker.h.
|
inline |
Return the underlying alias analysis object used by this tracker.
Definition at line 209 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 272 of file AliasSetTracker.cpp.
References AliasSet, assert(), llvm::is_contained(), and llvm::MemoryLocation::Ptr.
Return the alias sets that are active.
Definition at line 200 of file AliasSetTracker.h.
void AliasSetTracker::print | ( | raw_ostream & | OS | ) | const |
Definition at line 554 of file AliasSetTracker.cpp.
References OS, llvm::AliasSet::print(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size().
Referenced by dump(), llvm::operator<<(), and llvm::AliasSetsPrinterPass::run().
|
friend |
Definition at line 224 of file AliasSetTracker.h.
Referenced by addUnknown(), and getAliasSetFor().