InstVisitor that collects indirect calls or vtable address instructions.
Synopsis
Declared in <llvm/Analysis/IndirectCallVisitor.h>
struct PGOIndirectCallVisitor
: InstVisitor<PGOIndirectCallVisitor>
Description
Finds indirect calls or instructions that give a vtable value, depending on Type.
Base Classes
Name |
Description |
Base class for instruction visitors |
Enums
Name |
Description |
Kind of instruction this visitor collects while walking a function. |
Member Functions
Name |
Description |
|
Construct a visitor that collects instructions of the given |
|
|
Create or visit an arithmetic right‐shift (ashr) instruction. |
|
Create or visit an integer addition (add) instruction. |
|
Visit an addrspacecast that changes a pointer's address space. |
|
Visit an AddrSpaceCastInst; defaults to |
|
Visit an alloca that allocates stack memory. |
|
Visit an AllocaInst; defaults to |
|
Create or visit a bitwise AND (and) instruction. |
|
Visit an atomic compare‐and‐exchange (cmpxchg) instruction. |
|
Visit an AtomicCmpXchgInst; defaults to |
|
Visit an atomic read‐modify‐write (atomicrmw) instruction. |
|
Visit an AtomicRMWInst; defaults to |
|
Called when beginning visitation of basic block |
|
Visit a BinaryOperator; defaults to |
|
Visit a bitcast that reinterprets bits between types of equal size. |
|
Visit a BitCastInst; defaults to |
|
Visit a call that invokes a function. |
|
Record an indirect call, and optionally its vtable address. |
|
Visit a callbr call‐site terminator with additional transfer labels. |
|
Visit a CallBrInst; defaults to |
|
Visit a CallInst; defaults to |
|
Visit a CastInst; defaults to |
|
Visit a catchpad that begins a catch funclet. |
|
Visit a CatchPadInst; defaults to |
|
Visit a catchret that exits a catch funclet pad. |
|
Visit a CatchReturnInst; defaults to |
|
Visit a catchswitch that dispatches among catch pads. |
|
Visit a CatchSwitchInst; defaults to |
|
Visit a cleanuppad that begins a cleanup funclet. |
|
Visit a CleanupPadInst; defaults to |
|
Visit a cleanupret that exits a cleanup funclet pad. |
|
Visit a CleanupReturnInst; defaults to |
|
Visit a CmpInst; defaults to |
|
Visit a conditional branch that chooses between two successors. |
|
Visit a conditional BranchInst; defaults to |
|
Visit an extractelement that pulls one element from a vector. |
|
Visit an ExtractElementInst; defaults to |
|
Visit an extractvalue that pulls a field from an aggregate. |
|
Visit an ExtractValueInst; defaults to |
|
Create or visit a floating‐point addition (fadd) instruction. |
|
Visit an fcmp floating‐point comparison instruction. |
|
Visit an FCmpInst; defaults to |
|
Create or visit a floating‐point division (fdiv) instruction. |
|
Create or visit a floating‐point multiplication (fmul) instruction. |
|
Create or visit a floating‐point negation (fneg) instruction. |
|
Visit an FPBinaryOperator; defaults to |
|
Visit an fpext that extends a floating‐point value. |
|
Visit an FPExtInst; defaults to |
|
Visit an fptosi that converts floating‐point to signed integer. |
|
Visit an FPToSIInst; defaults to |
|
Visit an fptoui that converts floating‐point to unsigned integer. |
|
Visit an FPToUIInst; defaults to |
|
Visit an fptrunc that narrows a floating‐point value. |
|
Visit an FPTruncInst; defaults to |
|
Visit an FPUnaryOperator; defaults to |
|
Create or visit a floating‐point remainder (frem) instruction. |
|
Create or visit a floating‐point subtraction (fsub) instruction. |
|
Visit a fence that orders memory operations. |
|
Visit a FenceInst; defaults to |
|
Visit a freeze that replaces undef or poison with a fixed value. |
|
Visit a FreezeInst; defaults to |
|
Visit a FuncletPadInst; defaults to |
|
Called when beginning visitation of function |
|
Visit a getelementptr that computes an address within an aggregate. |
|
Visit a GetElementPtrInst; defaults to |
|
Visit an icmp integer comparison instruction. |
|
Visit an ICmpInst; defaults to |
|
Visit an indirect branch through an address operand. |
|
Visit an IndirectBrInst; defaults to |
|
Visit an insertelement that inserts one element into a vector. |
|
Visit an InsertElementInst; defaults to |
|
Visit an insertvalue that inserts a field into an aggregate. |
|
Visit an InsertValueInst; defaults to |
|
Default handler for instructions not handled by a more specific visitor. |
|
Visit an inttoptr that converts an integer to a pointer. |
|
Visit an IntToPtrInst; defaults to |
|
Visit an IntrinsicInst; defaults to |
|
Visit an invoke that calls a function with an exceptional continuation. |
|
Visit an InvokeInst; defaults to |
|
Create or visit a logical right‐shift (lshr) instruction. |
|
Visit a landingpad that receives an exception in an invoke unwind edge. |
|
Visit a LandingPadInst; defaults to |
|
Visit a load that reads from memory. |
|
Visit a LoadInst; defaults to |
|
Visit a MemCpyInst; defaults to |
|
Visit a MemIntrinsic; defaults to |
|
Visit a MemMoveInst; defaults to |
|
Visit a MemSetInst; defaults to |
|
Visit a MemSetPatternInst; defaults to |
|
Visit a MemTransferInst; defaults to |
|
Called when beginning visitation of module |
|
Create or visit an integer multiplication (mul) instruction. |
|
Create or visit a bitwise OR (or) instruction. |
|
Visit a phi node that merges values from predecessor blocks. |
|
Visit a PHINode; defaults to |
|
Visit a ptrtoaddr that converts a pointer to an address integer. |
|
Visit a PtrToAddrInst; defaults to |
|
Visit a ptrtoint that bitcasts a pointer to an integer. |
|
Visit a PtrToIntInst; defaults to |
|
Visit a resume that continues unwinding of an exception. |
|
Visit a ResumeInst; defaults to |
|
Visit a ret terminator that returns from the current function. |
|
Visit a ReturnInst; defaults to |
|
Create or visit a signed integer division (sdiv) instruction. |
|
Visit a sext that sign‐extends an integer value. |
|
Visit an SExtInst; defaults to |
|
Visit a sitofp that converts signed integer to floating‐point. |
|
Visit an SIToFPInst; defaults to |
|
Create or visit a signed integer remainder (srem) instruction. |
|
Visit a select that chooses one of two values by a condition. |
|
Visit a SelectInst; defaults to |
|
Create or visit a logical left‐shift (shl) instruction. |
|
Visit a shufflevector that permutes elements from two vectors. |
|
Visit a ShuffleVectorInst; defaults to |
|
Visit a store that writes a value to memory. |
|
Visit a StoreInst; defaults to |
|
Create or visit an integer subtraction (sub) instruction. |
|
Visit a switch that dispatches on an integer value. |
|
Visit a SwitchInst; defaults to |
|
Visit a terminator instruction; defaults to |
|
Visit a trunc that narrows an integer value. |
|
Visit a TruncInst; defaults to |
|
Create or visit an unsigned integer division (udiv) instruction. |
|
Visit a uitofp that converts unsigned integer to floating‐point. |
|
Visit a UIToFPInst; defaults to |
|
Create or visit an unsigned integer remainder (urem) instruction. |
|
Visit a UnaryInstruction; defaults to |
|
Visit a UnaryOperator; defaults to |
|
Visit an unconditional branch to a single successor. |
|
Visit an unconditional BranchInst; defaults to |
|
Visit an unreachable marker for code that must never execute. |
|
Visit an UnreachableInst; defaults to |
|
Visit a UserOp1 placeholder that may be used internally in a pass. |
|
Visit a UserOp2 placeholder that is internal to passes only. |
|
Visit a vaarg that reads the next variable argument. |
|
Visit a VAArgInst; defaults to |
|
Visit a VACopyInst; defaults to |
|
Visit a VAEndInst; defaults to |
|
Visit a VAStartInst; defaults to |
|
Create or visit a bitwise XOR (xor) instruction. |
|
Visit a zext that zero‐extends an integer value. |
|
Visit a ZExtInst; defaults to |
Static Member Functions
Name |
Description |
Try to recover the vtable load feeding an indirect call. |
Data Members
Name |
Description |
Indirect call sites discovered during the visit. |
|
Vtable address instructions discovered when collecting |
Created with MrDocs