|
LLVM 24.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 | addWithoutAATags (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 | 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 153 of file AliasSetTracker.h.
Definition at line 205 of file AliasSetTracker.h.
| using llvm::AliasSetTracker::iterator = ilist<AliasSet>::iterator |
Definition at line 204 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 166 of file AliasSetTracker.h.
|
inline |
Definition at line 167 of file AliasSetTracker.h.
References clear().
| void AliasSetTracker::add | ( | AnyMemSetInst * | MSI | ) |
Definition at line 343 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::getForDest(), and llvm::Mod.
| void AliasSetTracker::add | ( | AnyMemTransferInst * | MTI | ) |
Definition at line 347 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::getForDest(), llvm::MemoryLocation::getForSource(), llvm::Mod, and llvm::Ref.
| void AliasSetTracker::add | ( | BasicBlock & | BB | ) |
Definition at line 424 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 316 of file AliasSetTracker.cpp.
References llvm::NoModRef.
Referenced by add(), add(), collectPromotionCandidates(), and llvm::AliasSetsPrinterPass::run().
| void AliasSetTracker::add | ( | Instruction * | I | ) |
Definition at line 380 of file AliasSetTracker.cpp.
References add(), addUnknown(), Call, llvm::dyn_cast(), llvm::enumerate(), llvm::MemoryLocation::getForArgument(), llvm::Value::getType(), I, llvm::isNoModRef(), llvm::Type::isPointerTy(), llvm::PatternMatch::m_Intrinsic(), llvm::PatternMatch::match(), and llvm::Ref.
| void AliasSetTracker::add | ( | LoadInst * | LI | ) |
Definition at line 320 of file AliasSetTracker.cpp.
References addUnknown(), llvm::MemoryLocation::get(), llvm::LoadInst::getOrdering(), llvm::isStrongerThanMonotonic(), and llvm::Ref.
| void AliasSetTracker::add | ( | StoreInst * | SI | ) |
Definition at line 326 of file AliasSetTracker.cpp.
References addUnknown(), llvm::MemoryLocation::get(), llvm::isStrongerThanMonotonic(), and llvm::Mod.
| void AliasSetTracker::add | ( | VAArgInst * | VAAI | ) |
Definition at line 339 of file AliasSetTracker.cpp.
References llvm::MemoryLocation::get(), and llvm::ModRef.
| void AliasSetTracker::addUnknown | ( | Instruction * | I | ) |
Definition at line 352 of file AliasSetTracker.cpp.
References AliasSet, llvm::dyn_cast(), II, and llvm::Instruction::mayReadOrWriteMemory().
| void AliasSetTracker::addWithoutAATags | ( | StoreInst * | SI | ) |
Definition at line 332 of file AliasSetTracker.cpp.
References assert(), llvm::MemoryLocation::get(), llvm::isStrongerThanMonotonic(), and llvm::Mod.
Referenced by collectPromotionCandidates().
|
inline |
Definition at line 210 of file AliasSetTracker.h.
|
inline |
Definition at line 207 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 544 of file AliasSetTracker.cpp.
References llvm::dbgs(), LLVM_DUMP_METHOD, and print().
|
inline |
Definition at line 211 of file AliasSetTracker.h.
|
inline |
Definition at line 208 of file AliasSetTracker.h.
|
inline |
Return the underlying alias analysis object used by this tracker.
Definition at line 202 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 193 of file AliasSetTracker.h.
| void AliasSetTracker::print | ( | raw_ostream & | OS | ) | const |
Definition at line 532 of file AliasSetTracker.cpp.
References AliasSet, and llvm::AliasSet::print().
Referenced by dump(), llvm::operator<<(), and llvm::AliasSetsPrinterPass::run().
|
friend |
Definition at line 217 of file AliasSetTracker.h.
References AliasSet.
Referenced by addUnknown(), AliasSet, getAliasSetFor(), and print().