class CFLGraphBuilder::GetEdgesVisitor

Declaration

class CFLGraphBuilder::GetEdgesVisitor { /* full declaration omitted */ };

Description

Gets the edges our graph should have, based on an Instruction*

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

Method Overview

Methods

GetEdgesVisitor(CFLGraphBuilder<CFLAA>& Builder,
                const llvm::DataLayout& DL)

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

Parameters

CFLGraphBuilder<CFLAA>& Builder
const llvm::DataLayout& DL

static bool isFunctionExternal(llvm::Function* Fn)

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

Parameters

llvm::Function* Fn

bool tryInterproceduralAnalysis(
    llvm::CallBase& Call,
    const SmallVectorImpl<llvm::Function*>& Fns)

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

Parameters

llvm::CallBase& Call
const SmallVectorImpl<llvm::Function*>& Fns

void visitAllocaInst(llvm::AllocaInst& Inst)

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

Parameters

llvm::AllocaInst& Inst

void visitAtomicCmpXchgInst(
    llvm::AtomicCmpXchgInst& Inst)

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

Parameters

llvm::AtomicCmpXchgInst& Inst

void visitAtomicRMWInst(llvm::AtomicRMWInst& Inst)

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

Parameters

llvm::AtomicRMWInst& Inst

void visitBinaryOperator(
    llvm::BinaryOperator& Inst)

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

Parameters

llvm::BinaryOperator& Inst

void visitCallBase(llvm::CallBase& Call)

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

Parameters

llvm::CallBase& Call

void visitCastInst(llvm::CastInst& Inst)

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

Parameters

llvm::CastInst& Inst

void visitConstantExpr(llvm::ConstantExpr* CE)

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

Parameters

llvm::ConstantExpr* CE

void visitExtractElementInst(
    llvm::ExtractElementInst& Inst)

Description

Because vectors/aggregates are immutable and unaddressable, there's nothing we can do to coax a value out of them, other than calling Extract{Element,Value}. We can effectively treat them as pointers to arbitrary memory locations we can store in and load from.

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

Parameters

llvm::ExtractElementInst& Inst

void visitExtractValueInst(
    llvm::ExtractValueInst& Inst)

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

Parameters

llvm::ExtractValueInst& Inst

void visitGEP(llvm::GEPOperator& GEPOp)

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

Parameters

llvm::GEPOperator& GEPOp

void visitGetElementPtrInst(
    llvm::GetElementPtrInst& Inst)

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

Parameters

llvm::GetElementPtrInst& Inst

void visitInsertElementInst(
    llvm::InsertElementInst& Inst)

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

Parameters

llvm::InsertElementInst& Inst

void visitInsertValueInst(
    llvm::InsertValueInst& Inst)

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

Parameters

llvm::InsertValueInst& Inst

void visitInstruction(llvm::Instruction&)

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

Parameters

llvm::Instruction&

void visitIntToPtrInst(llvm::IntToPtrInst& Inst)

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

Parameters

llvm::IntToPtrInst& Inst

void visitLandingPadInst(
    llvm::LandingPadInst& Inst)

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

Parameters

llvm::LandingPadInst& Inst

void visitLoadInst(llvm::LoadInst& Inst)

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

Parameters

llvm::LoadInst& Inst

void visitPHINode(llvm::PHINode& Inst)

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

Parameters

llvm::PHINode& Inst

void visitPtrToIntInst(llvm::PtrToIntInst& Inst)

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

Parameters

llvm::PtrToIntInst& Inst

void visitReturnInst(llvm::ReturnInst& Inst)

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

Parameters

llvm::ReturnInst& Inst

void visitSelectInst(llvm::SelectInst& Inst)

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

Parameters

llvm::SelectInst& Inst

void visitShuffleVectorInst(
    llvm::ShuffleVectorInst& Inst)

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

Parameters

llvm::ShuffleVectorInst& Inst

void visitStoreInst(llvm::StoreInst& Inst)

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

Parameters

llvm::StoreInst& Inst

void visitUnaryOperator(llvm::UnaryOperator& Inst)

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

Parameters

llvm::UnaryOperator& Inst

void visitVAArgInst(llvm::VAArgInst& Inst)

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

Parameters

llvm::VAArgInst& Inst