class BasicAAResult

Declaration

class BasicAAResult : public AAResultBase { /* full declaration omitted */ };

Description

This is the AA result object for the basic, local, and stateless alias analysis. It implements the AA query interface in an entirely stateless manner. As one consequence, it is never invalidated due to IR changes. While it does retain some storage, that is used as an optimization and not to preserve information from query to query. However it does retain handles to various other analyses and must be recomputed when those analyses are.

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:54

Inherits from: AAResultBase

Method Overview

  • public BasicAAResult(const llvm::DataLayout & DL, const llvm::Function & F, const llvm::TargetLibraryInfo & TLI, llvm::AssumptionCache & AC, llvm::DominatorTree * DT = nullptr, llvm::LoopInfo * LI = nullptr, llvm::PhiValues * PV = nullptr)
  • public BasicAAResult(const llvm::BasicAAResult & Arg)
  • public BasicAAResult(llvm::BasicAAResult && Arg)
  • public llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB, llvm::AAQueryInfo & AAQI)
  • public llvm::ModRefInfo getArgModRefInfo(const llvm::CallBase * Call, unsigned int ArgIdx)
  • public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::CallBase * Call)
  • public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::Function * Fn)
  • public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
  • public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call1, const llvm::CallBase * Call2, llvm::AAQueryInfo & AAQI)
  • public bool invalidate(llvm::Function & Fn, const llvm::PreservedAnalyses & PA, FunctionAnalysisManager::Invalidator & Inv)
  • public bool pointsToConstantMemory(const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI, bool OrLocal)

Methods

BasicAAResult(const llvm::DataLayout& DL,
              const llvm::Function& F,
              const llvm::TargetLibraryInfo& TLI,
              llvm::AssumptionCache& AC,
              llvm::DominatorTree* DT = nullptr,
              llvm::LoopInfo* LI = nullptr,
              llvm::PhiValues* PV = nullptr)

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:66

Parameters

const llvm::DataLayout& DL
const llvm::Function& F
const llvm::TargetLibraryInfo& TLI
llvm::AssumptionCache& AC
llvm::DominatorTree* DT = nullptr
llvm::LoopInfo* LI = nullptr
llvm::PhiValues* PV = nullptr

BasicAAResult(const llvm::BasicAAResult& Arg)

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:73

Parameters

const llvm::BasicAAResult& Arg

BasicAAResult(llvm::BasicAAResult&& Arg)

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:76

Parameters

llvm::BasicAAResult&& Arg

llvm::AliasResult alias(
    const llvm::MemoryLocation& LocA,
    const llvm::MemoryLocation& LocB,
    llvm::AAQueryInfo& AAQI)

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:84

Parameters

const llvm::MemoryLocation& LocA
const llvm::MemoryLocation& LocB
llvm::AAQueryInfo& AAQI

llvm::ModRefInfo getArgModRefInfo(
    const llvm::CallBase* Call,
    unsigned int ArgIdx)

Description

Get the location associated with a pointer argument of a callsite.

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:98

Parameters

const llvm::CallBase* Call
unsigned int ArgIdx

llvm::FunctionModRefBehavior getModRefBehavior(
    const llvm::CallBase* Call)

Description

Returns the behavior when calling the given call site.

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:101

Parameters

const llvm::CallBase* Call

llvm::FunctionModRefBehavior getModRefBehavior(
    const llvm::Function* Fn)

Description

Returns the behavior when calling the given function. For use when the call site is not known.

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:105

Parameters

const llvm::Function* Fn

llvm::ModRefInfo getModRefInfo(
    const llvm::CallBase* Call,
    const llvm::MemoryLocation& Loc,
    llvm::AAQueryInfo& AAQI)

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:87

Parameters

const llvm::CallBase* Call
const llvm::MemoryLocation& Loc
llvm::AAQueryInfo& AAQI

llvm::ModRefInfo getModRefInfo(
    const llvm::CallBase* Call1,
    const llvm::CallBase* Call2,
    llvm::AAQueryInfo& AAQI)

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:90

Parameters

const llvm::CallBase* Call1
const llvm::CallBase* Call2
llvm::AAQueryInfo& AAQI

bool invalidate(
    llvm::Function& Fn,
    const llvm::PreservedAnalyses& PA,
    FunctionAnalysisManager::Invalidator& Inv)

Description

Handle invalidation events in the new pass manager.

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:81

Parameters

llvm::Function& Fn
const llvm::PreservedAnalyses& PA
FunctionAnalysisManager::Invalidator& Inv

bool pointsToConstantMemory(
    const llvm::MemoryLocation& Loc,
    llvm::AAQueryInfo& AAQI,
    bool OrLocal)

Description

Chases pointers until we find a (constant global) or not.

Declared at: llvm/include/llvm/Analysis/BasicAliasAnalysis.h:94

Parameters

const llvm::MemoryLocation& Loc
llvm::AAQueryInfo& AAQI
bool OrLocal