class CFLGraphBuilder

Declaration

template <typename CFLAA>
class CFLGraphBuilder { /* full declaration omitted */ };

Description

A builder class used to create CFLGraph instance from a given function The CFL-AA that uses this builder must provide its own type as a template argument. This is necessary for interprocedural processing: CFLGraphBuilder needs a way of obtaining the summary of other functions when callinsts are encountered. As a result, we expect the said CFL-AA to expose a getAliasSummary() public member function that takes a Function & and returns the corresponding summary as a const AliasSummary*.

Declared at: llvm/lib/Analysis/CFLGraph.h:163

Templates

CFLAA

Member Variables

private CFLAA& Analysis
private const llvm::TargetLibraryInfo& TLI
private llvm::cflaa::CFLGraph Graph
private SmallVector<llvm::Value*, 4> ReturnedValues

Method Overview

Methods

CFLGraphBuilder<CFLAA>(
    CFLAA& Analysis,
    const llvm::TargetLibraryInfo& TLI,
    llvm::Function& Fn)

Declared at: llvm/lib/Analysis/CFLGraph.h:654

Parameters

CFLAA& Analysis
const llvm::TargetLibraryInfo& TLI
llvm::Function& Fn

void addArgumentToGraph(llvm::Argument& Arg)

Declared at: llvm/lib/Analysis/CFLGraph.h:618

Parameters

llvm::Argument& Arg

void addInstructionToGraph(
    llvm::cflaa::CFLGraphBuilder::GetEdgesVisitor&
        Visitor,
    llvm::Instruction& Inst)

Declared at: llvm/lib/Analysis/CFLGraph.h:633

Parameters

llvm::cflaa::CFLGraphBuilder::GetEdgesVisitor& Visitor
llvm::Instruction& Inst

void buildGraphFrom(llvm::Function& Fn)

Declared at: llvm/lib/Analysis/CFLGraph.h:642

Parameters

llvm::Function& Fn

const llvm::cflaa::CFLGraph& getCFLGraph() const

Declared at: llvm/lib/Analysis/CFLGraph.h:659

const SmallVector<llvm::Value*, 4>&
getReturnValues() const

Declared at: llvm/lib/Analysis/CFLGraph.h:660

static bool hasUsefulEdges(
    llvm::Instruction* Inst)

Declared at: llvm/lib/Analysis/CFLGraph.h:610

Parameters

llvm::Instruction* Inst