class CFLSteensAAResult

Declaration

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

Description

A CRTP-driven "mixin" base class to help implement the function alias analysis results concept. Because of the nature of many alias analysis implementations, they often only implement a subset of the interface. This base class will attempt to implement the remaining portions of the interface in terms of simpler forms of the interface where possible, and otherwise provide conservatively correct fallback implementations. Implementors of an alias analysis should derive from this CRTP, and then override specific methods that they wish to customize. There is no need to use virtual anywhere, the CRTP base class does static dispatch to the derived type passed into it.

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:39

Inherits from: AAResultBase

Method Overview

  • public CFLSteensAAResult(std::function<const TargetLibraryInfo &(Function &)> GetTLI)
  • public CFLSteensAAResult(llvm::CFLSteensAAResult && Arg)
  • public llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB, llvm::AAQueryInfo & AAQI)
  • public const Optional<llvm::CFLSteensAAResult::FunctionInfo> & ensureCached(llvm::Function * Fn)
  • public void evict(llvm::Function * Fn)
  • public const cflaa::AliasSummary * getAliasSummary(llvm::Function & Fn)
  • public bool invalidate(llvm::Function &, const llvm::PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
  • public llvm::AliasResult query(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
  • public void scan(llvm::Function * Fn)
  • public ~CFLSteensAAResult()

Methods

CFLSteensAAResult(
    std::function<const TargetLibraryInfo&(
        Function&)> GetTLI)

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:45

Parameters

std::function<const TargetLibraryInfo&(Function&)> GetTLI

CFLSteensAAResult(llvm::CFLSteensAAResult&& Arg)

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:47

Parameters

llvm::CFLSteensAAResult&& Arg

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

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

Parameters

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

const Optional<
    llvm::CFLSteensAAResult::FunctionInfo>&
ensureCached(llvm::Function* Fn)

Description

Ensures that the given function is available in the cache. Returns the appropriate entry from the cache.

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:65

Parameters

llvm::Function* Fn

void evict(llvm::Function* Fn)

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:61

Parameters

llvm::Function* Fn

const cflaa::AliasSummary* getAliasSummary(
    llvm::Function& Fn)

Description

Get the alias summary for the given function Return nullptr if the summary is not found or not available

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:69

Parameters

llvm::Function& Fn

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

Description

Handle invalidation events from the new pass manager. By definition, this result is stateless and so remains valid.

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:53

Parameters

llvm::Function&
const llvm::PreservedAnalyses&
FunctionAnalysisManager::Invalidator&

llvm::AliasResult query(
    const llvm::MemoryLocation& LocA,
    const llvm::MemoryLocation& LocB)

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:71

Parameters

const llvm::MemoryLocation& LocA
const llvm::MemoryLocation& LocB

void scan(llvm::Function* Fn)

Description

Inserts the given Function into the cache.

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:59

Parameters

llvm::Function* Fn

~CFLSteensAAResult()

Declared at: llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h:48