LLVM  6.0.0svn
Classes | Namespaces | Typedefs | Enumerations | Functions
AliasAnalysis.h File Reference
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/IR/CallSite.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.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::AAResults
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...


 Compute iterated dominance frontiers using a linear time algorithm.


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


enum  llvm::AliasResult { llvm::NoAlias = 0, llvm::MayAlias, llvm::PartialAlias, llvm::MustAlias }
 The possible results of an alias query. More...
enum  llvm::ModRefInfo { llvm::MRI_NoModRef = 0, llvm::MRI_Ref = 1, llvm::MRI_Mod = 2, llvm::MRI_ModRef = MRI_Ref | MRI_Mod }
 Flags indicating whether a memory access modifies or references memory. More...
enum  llvm::FunctionModRefLocation { llvm::FMRL_Nowhere = 0, llvm::FMRL_ArgumentPointees = 4, llvm::FMRL_InaccessibleMem = 8, llvm::FMRL_Anywhere = 16 | FMRL_InaccessibleMem | FMRL_ArgumentPointees }
 The locations at which a function might access memory. More...
enum  llvm::FunctionModRefBehavior {
  llvm::FMRB_DoesNotAccessMemory = FMRL_Nowhere | MRI_NoModRef, llvm::FMRB_OnlyReadsArgumentPointees = FMRL_ArgumentPointees | MRI_Ref, llvm::FMRB_OnlyAccessesArgumentPointees = FMRL_ArgumentPointees | MRI_ModRef, llvm::FMRB_OnlyAccessesInaccessibleMem = FMRL_InaccessibleMem | MRI_ModRef,
  llvm::FMRB_OnlyAccessesInaccessibleOrArgMem, llvm::FMRB_OnlyReadsMemory = FMRL_Anywhere | MRI_Ref, llvm::FMRB_DoesNotReadMemory = FMRL_Anywhere | MRI_Mod, llvm::FMRB_UnknownModRefBehavior = FMRL_Anywhere | MRI_ModRef
 Summary of how a function affects memory in the program. More...


bool llvm::isNoAliasCall (const Value *V)
 Return true if this pointer is returned by a noalias function. More...
bool llvm::isNoAliasArgument (const Value *V)
 Return true if this is an argument with the noalias attribute. 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...