struct AAFunctionReachability

Declaration

struct AAFunctionReachability : public StateWrapper { /* full declaration omitted */ };

Description

An abstract Attribute for computing reachability between functions.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4864

Inherits from: StateWrapper

Member Variables

public static const char ID
Unique ID (due to the unique address)

Method Overview

  • public AAFunctionReachability(const llvm::IRPosition & IRP, llvm::Attributor & A)
  • public virtual bool canReach(llvm::Attributor & A, const llvm::Function & Fn) const
  • public virtual bool canReach(llvm::Attributor & A, llvm::CallBase & CB, const llvm::Function & Fn) const
  • private virtual bool canReachUnknownCallee() const
  • public static bool classof(const llvm::AbstractAttribute * AA)
  • public static llvm::AAFunctionReachability & createForPosition(const llvm::IRPosition & IRP, llvm::Attributor & A)
  • public const char * getIdAddr() const
  • public const std::string getName() const
  • public virtual bool instructionCanReach(llvm::Attributor & A, const llvm::Instruction & Inst, const llvm::Function & Fn) const
  • public bool isQueryAA() const

Methods

AAFunctionReachability(
    const llvm::IRPosition& IRP,
    llvm::Attributor& A)

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4868

Parameters

const llvm::IRPosition& IRP
llvm::Attributor& A

virtual bool canReach(
    llvm::Attributor& A,
    const llvm::Function& Fn) const

Description

If the function represented by this possition can reach \p Fn.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4874

Parameters

llvm::Attributor& A
const llvm::Function& Fn

virtual bool canReach(
    llvm::Attributor& A,
    llvm::CallBase& CB,
    const llvm::Function& Fn) const

Description

Can \p CB reach \p Fn.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4877

Parameters

llvm::Attributor& A
llvm::CallBase& CB
const llvm::Function& Fn

virtual bool canReachUnknownCallee() const

Description

Can this function reach a call with unknown calee.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4907

static bool classof(
    const llvm::AbstractAttribute* AA)

Description

This function should return true if the type of the \p AA is AACallEdges.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4898

Parameters

const llvm::AbstractAttribute* AA

static llvm::AAFunctionReachability&
createForPosition(const llvm::IRPosition& IRP,
                  llvm::Attributor& A)

Description

Create an abstract attribute view for the position \p IRP.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4886

Parameters

const llvm::IRPosition& IRP
llvm::Attributor& A

const char* getIdAddr() const

Description

See AbstractAttribute::getIdAddr()

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4895

const std::string getName() const

Description

See AbstractAttribute::getName()

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4890

virtual bool instructionCanReach(
    llvm::Attributor& A,
    const llvm::Instruction& Inst,
    const llvm::Function& Fn) const

Description

Can \p Inst reach \p Fn. See also AA::isPotentiallyReachable.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4882

Parameters

llvm::Attributor& A
const llvm::Instruction& Inst
const llvm::Function& Fn

bool isQueryAA() const

Description

See AbstractAttribute::isQueryAA.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:4871