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
- public GetEdgesVisitor(CFLGraphBuilder<CFLAA> & Builder, const llvm::DataLayout & DL)
- public static bool isFunctionExternal(llvm::Function * Fn)
- public bool tryInterproceduralAnalysis(llvm::CallBase & Call, const SmallVectorImpl<llvm::Function *> & Fns)
- public void visitAllocaInst(llvm::AllocaInst & Inst)
- public void visitAtomicCmpXchgInst(llvm::AtomicCmpXchgInst & Inst)
- public void visitAtomicRMWInst(llvm::AtomicRMWInst & Inst)
- public void visitBinaryOperator(llvm::BinaryOperator & Inst)
- public void visitCallBase(llvm::CallBase & Call)
- public void visitCastInst(llvm::CastInst & Inst)
- public void visitConstantExpr(llvm::ConstantExpr * CE)
- public void visitExtractElementInst(llvm::ExtractElementInst & Inst)
- public void visitExtractValueInst(llvm::ExtractValueInst & Inst)
- public void visitGEP(llvm::GEPOperator & GEPOp)
- public void visitGetElementPtrInst(llvm::GetElementPtrInst & Inst)
- public void visitInsertElementInst(llvm::InsertElementInst & Inst)
- public void visitInsertValueInst(llvm::InsertValueInst & Inst)
- public void visitInstruction(llvm::Instruction &)
- public void visitIntToPtrInst(llvm::IntToPtrInst & Inst)
- public void visitLandingPadInst(llvm::LandingPadInst & Inst)
- public void visitLoadInst(llvm::LoadInst & Inst)
- public void visitPHINode(llvm::PHINode & Inst)
- public void visitPtrToIntInst(llvm::PtrToIntInst & Inst)
- public void visitReturnInst(llvm::ReturnInst & Inst)
- public void visitSelectInst(llvm::SelectInst & Inst)
- public void visitShuffleVectorInst(llvm::ShuffleVectorInst & Inst)
- public void visitStoreInst(llvm::StoreInst & Inst)
- public void visitUnaryOperator(llvm::UnaryOperator & Inst)
- public void visitVAArgInst(llvm::VAArgInst & Inst)
Methods
¶GetEdgesVisitor(CFLGraphBuilder<CFLAA>& Builder,
const llvm::DataLayout& DL)
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)
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)
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)
void visitAllocaInst(llvm::AllocaInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:344
Parameters
- llvm::AllocaInst& Inst
¶void visitAtomicCmpXchgInst(
llvm::AtomicCmpXchgInst& Inst)
void visitAtomicCmpXchgInst(
llvm::AtomicCmpXchgInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:299
Parameters
- llvm::AtomicCmpXchgInst& Inst
¶void visitAtomicRMWInst(llvm::AtomicRMWInst& Inst)
void visitAtomicRMWInst(llvm::AtomicRMWInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:305
Parameters
- llvm::AtomicRMWInst& Inst
¶void visitBinaryOperator(
llvm::BinaryOperator& Inst)
void visitBinaryOperator(
llvm::BinaryOperator& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:287
Parameters
- llvm::BinaryOperator& Inst
¶void visitCallBase(llvm::CallBase& Call)
void visitCallBase(llvm::CallBase& Call)
Declared at: llvm/lib/Analysis/CFLGraph.h:417
Parameters
- llvm::CallBase& Call
¶void visitCastInst(llvm::CastInst& Inst)
void visitCastInst(llvm::CastInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:282
Parameters
- llvm::CastInst& Inst
¶void visitConstantExpr(llvm::ConstantExpr* CE)
void visitConstantExpr(llvm::ConstantExpr* CE)
Declared at: llvm/lib/Analysis/CFLGraph.h:509
Parameters
¶void visitExtractElementInst(
llvm::ExtractElementInst& Inst)
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)
void visitExtractValueInst(
llvm::ExtractValueInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:497
Parameters
- llvm::ExtractValueInst& Inst
¶void visitGEP(llvm::GEPOperator& GEPOp)
void visitGEP(llvm::GEPOperator& GEPOp)
Declared at: llvm/lib/Analysis/CFLGraph.h:316
Parameters
- llvm::GEPOperator& GEPOp
¶void visitGetElementPtrInst(
llvm::GetElementPtrInst& Inst)
void visitGetElementPtrInst(
llvm::GetElementPtrInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:327
Parameters
- llvm::GetElementPtrInst& Inst
¶void visitInsertElementInst(
llvm::InsertElementInst& Inst)
void visitInsertElementInst(
llvm::InsertElementInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:475
Parameters
- llvm::InsertElementInst& Inst
¶void visitInsertValueInst(
llvm::InsertValueInst& Inst)
void visitInsertValueInst(
llvm::InsertValueInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:490
Parameters
- llvm::InsertValueInst& Inst
¶void visitInstruction(llvm::Instruction&)
void visitInstruction(llvm::Instruction&)
Declared at: llvm/lib/Analysis/CFLGraph.h:259
Parameters
¶void visitIntToPtrInst(llvm::IntToPtrInst& Inst)
void visitIntToPtrInst(llvm::IntToPtrInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:277
Parameters
- llvm::IntToPtrInst& Inst
¶void visitLandingPadInst(
llvm::LandingPadInst& Inst)
void visitLandingPadInst(
llvm::LandingPadInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:482
Parameters
- llvm::LandingPadInst& Inst
¶void visitLoadInst(llvm::LoadInst& Inst)
void visitLoadInst(llvm::LoadInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:346
Parameters
- llvm::LoadInst& Inst
¶void visitPHINode(llvm::PHINode& Inst)
void visitPHINode(llvm::PHINode& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:311
Parameters
- llvm::PHINode& Inst
¶void visitPtrToIntInst(llvm::PtrToIntInst& Inst)
void visitPtrToIntInst(llvm::PtrToIntInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:272
Parameters
- llvm::PtrToIntInst& Inst
¶void visitReturnInst(llvm::ReturnInst& Inst)
void visitReturnInst(llvm::ReturnInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:263
Parameters
- llvm::ReturnInst& Inst
¶void visitSelectInst(llvm::SelectInst& Inst)
void visitSelectInst(llvm::SelectInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:332
Parameters
- llvm::SelectInst& Inst
¶void visitShuffleVectorInst(
llvm::ShuffleVectorInst& Inst)
void visitShuffleVectorInst(
llvm::ShuffleVectorInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:502
Parameters
- llvm::ShuffleVectorInst& Inst
¶void visitStoreInst(llvm::StoreInst& Inst)
void visitStoreInst(llvm::StoreInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:352
Parameters
- llvm::StoreInst& Inst
¶void visitUnaryOperator(llvm::UnaryOperator& Inst)
void visitUnaryOperator(llvm::UnaryOperator& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:294
Parameters
- llvm::UnaryOperator& Inst
¶void visitVAArgInst(llvm::VAArgInst& Inst)
void visitVAArgInst(llvm::VAArgInst& Inst)
Declared at: llvm/lib/Analysis/CFLGraph.h:358
Parameters
- llvm::VAArgInst& Inst