LLVM 20.0.0git
Classes | Namespaces | Typedefs | Functions
AliasAnalysis.h File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Pass.h"
#include "llvm/Support/ModRef.h"
#include <cstdint>
#include <functional>
#include <memory>
#include <optional>
#include <vector>

Go to the source code of this file.

Classes

class  llvm::AliasResult
 The possible results of an alias query. More...
 
struct  llvm::CaptureAnalysis
 Virtual base class for providers of capture analysis. More...
 
class  llvm::SimpleCaptureAnalysis
 Context-free CaptureAnalysis 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::EarliestEscapeAnalysis
 Context-sensitive CaptureAnalysis provider, which computes and caches the earliest common dominator closure of all captures. More...
 
struct  llvm::AACacheLoc
 Cache key for BasicAA results. 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 SimpleCaptureAnalysis. 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
 A base class to help implement the function alias analysis results concept. 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

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Typedefs

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

Functions

raw_ostreamllvm::operator<< (raw_ostream &OS, AliasResult AR)
 << operator for AliasResult.
 
bool llvm::isNoAliasCall (const Value *V)
 Return true if this pointer is returned by a noalias function.
 
bool llvm::isIdentifiedObject (const Value *V)
 Return true if this pointer refers to a distinct and identifiable object.
 
bool llvm::isIdentifiedFunctionLocal (const Value *V)
 Return true if V is umabigously identified at the function-level.
 
bool llvm::isBaseOfObject (const Value *V)
 Return true if we know V to the base address of the corresponding memory object.
 
bool llvm::isEscapeSource (const Value *V)
 Returns true if the pointer is one which would have been considered an escape by isNonEscapingLocalObject.
 
bool llvm::isNotVisibleOnUnwind (const Value *Object, bool &RequiresNoCaptureBeforeUnwind)
 Return true if Object memory is not visible after an unwind, in the sense that program semantics cannot depend on Object containing any particular value on unwind.
 
bool llvm::isWritableObject (const Value *Object, bool &ExplicitlyDereferenceableOnly)
 Return true if the Object is writable, in the sense that any location based on this pointer that can be loaded can also be stored to without trapping.
 
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.