LLVM  14.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
AliasAnalysis.h File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Pass.h"
#include <cstdint>
#include <functional>
#include <memory>
#include <vector>
Include dependency graph for AliasAnalysis.h:

Go to the source code of this file.


class  llvm::AliasResult
 The possible results of an alias query. More...
struct  llvm::AACacheLoc
 Reduced version of MemoryLocation that only stores a pointer and size. More...
struct  llvm::DenseMapInfo< AACacheLoc >
class  llvm::AAQueryInfo
 This class stores info we want to provide to or retain within an alias query. More...
struct  llvm::AAQueryInfo::CacheEntry
class  llvm::AAResults
class  llvm::BatchAAResults
 This class is a wrapper over an AAResults, and it is intended to be used only when there are no IR changes inbetween queries. More...
class  llvm::AAResults::Concept
 A private abstract base class describing the concept of an individual alias analysis implementation. More...
class  llvm::AAResultBase< DerivedT >
 A CRTP-driven "mixin" base class to help implement the function alias analysis results concept. More...
class  llvm::AAResultBase< DerivedT >::AAResultsProxy
 This proxy class models a common pattern where we delegate to either the top-level AAResults aggregation if one is registered, or to the current result if none are registered. More...
class  llvm::AAManager
 A manager for alias analyses. More...
class  llvm::AAResultsWrapperPass
 A wrapper pass to provide the legacy pass manager access to a suitably prepared AAResults object. More...
struct  llvm::ExternalAAWrapperPass
 A wrapper pass for external alias analyses. More...


 ---------------------— PointerInfo ------------------------------------—


using llvm::AliasAnalysis = AAResults
 Temporary typedef for legacy code that uses a generic AliasAnalysis pointer or reference. More...


enum  llvm::ModRefInfo : uint8_t {
  llvm::ModRefInfo::Must = 0, llvm::ModRefInfo::MustRef = 1, llvm::ModRefInfo::MustMod = 2, llvm::ModRefInfo::MustModRef = MustRef | MustMod,
  llvm::ModRefInfo::NoModRef = 4, llvm::ModRefInfo::Ref = NoModRef | MustRef, llvm::ModRefInfo::Mod = NoModRef | MustMod, llvm::ModRefInfo::ModRef = Ref | Mod
 Flags indicating whether a memory access modifies or references memory. More...
enum  llvm::FunctionModRefLocation { llvm::FMRL_Nowhere = 0, llvm::FMRL_ArgumentPointees = 8, llvm::FMRL_InaccessibleMem = 16, llvm::FMRL_Anywhere = 32 | FMRL_InaccessibleMem | FMRL_ArgumentPointees }
 The locations at which a function might access memory. More...
enum  llvm::FunctionModRefBehavior {
  llvm::FMRB_DoesNotAccessMemory, llvm::FMRB_OnlyReadsArgumentPointees, llvm::FMRB_OnlyWritesArgumentPointees, llvm::FMRB_OnlyAccessesArgumentPointees,
  llvm::FMRB_OnlyReadsInaccessibleMem, llvm::FMRB_OnlyWritesInaccessibleMem, llvm::FMRB_OnlyAccessesInaccessibleMem, llvm::FMRB_OnlyReadsInaccessibleOrArgMem,
  llvm::FMRB_OnlyWritesInaccessibleOrArgMem, llvm::FMRB_OnlyAccessesInaccessibleOrArgMem, llvm::FMRB_OnlyReadsMemory = FMRL_Anywhere | static_cast<int>(ModRefInfo::Ref), llvm::FMRB_OnlyWritesMemory = FMRL_Anywhere | static_cast<int>(ModRefInfo::Mod),
 Summary of how a function affects memory in the program. More...


raw_ostreamllvm::operator<< (raw_ostream &OS, AliasResult AR)
 << operator for AliasResult. More...
LLVM_NODISCARD bool llvm::isNoModRef (const ModRefInfo MRI)
LLVM_NODISCARD bool llvm::isModOrRefSet (const ModRefInfo MRI)
LLVM_NODISCARD bool llvm::isModAndRefSet (const ModRefInfo MRI)
LLVM_NODISCARD bool llvm::isModSet (const ModRefInfo MRI)
LLVM_NODISCARD bool llvm::isRefSet (const ModRefInfo MRI)
LLVM_NODISCARD bool llvm::isMustSet (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::setMod (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::setRef (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::setMust (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::setModAndRef (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::clearMod (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::clearRef (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::clearMust (const ModRefInfo MRI)
LLVM_NODISCARD ModRefInfo llvm::unionModRef (const ModRefInfo MRI1, const ModRefInfo MRI2)
LLVM_NODISCARD ModRefInfo llvm::intersectModRef (const ModRefInfo MRI1, const ModRefInfo MRI2)
LLVM_NODISCARD ModRefInfo llvm::createModRefInfo (const FunctionModRefBehavior FMRB)
bool llvm::isNoAliasCall (const Value *V)
 Return true if this pointer is returned by a noalias function. More...
bool llvm::isIdentifiedObject (const Value *V)
 Return true if this pointer refers to a distinct and identifiable object. More...
bool llvm::isIdentifiedFunctionLocal (const Value *V)
 Return true if V is umabigously identified at the function-level. More...
FunctionPassllvm::createAAResultsWrapperPass ()
ImmutablePass * llvm::createExternalAAWrapperPass (std::function< void(Pass &, Function &, AAResults &)> Callback)
 A wrapper pass around a callback which can be used to populate the AAResults in the AAResultsWrapperPass from an external AA. More...
AAResults llvm::createLegacyPMAAResults (Pass &P, Function &F, BasicAAResult &BAR)
 A helper for the legacy pass manager to create a AAResults object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass. More...
void llvm::getAAResultsAnalysisUsage (AnalysisUsage &AU)
 A helper for the legacy pass manager to populate AU to add uses to make sure the analyses required by createLegacyPMAAResults are available. More...