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.

Classes

class  llvm::AliasResult
 The possible results of an alias query. More...
 
struct  llvm::CaptureInfo
 Virtual base class for providers of capture information. More...
 
class  llvm::SimpleCaptureInfo
 Context-free CaptureInfo provider, which computes and caches whether an object is captured in the function at all, but does not distinguish whether it was captured before or after the context instruction. More...
 
class  llvm::EarliestEscapeInfo
 Context-sensitive CaptureInfo provider, which computes and caches the earliest common dominator closure of all captures. 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::SimpleAAQueryInfo
 AAQueryInfo that uses SimpleCaptureInfo. More...
 
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...
 

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 

Typedefs

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

Enumerations

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),
  llvm::FMRB_UnknownModRefBehavior
}
 Summary of how a function affects memory in the program. More...
 

Functions

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...