llvm::ObjectSizeOffsetEvaluator

Evaluate the size and offset of an object pointed to by a Value*. May create code to compute the result at run-time.

Synopsis

Declared in <llvm/Analysis/MemoryBuiltins.h>

class ObjectSizeOffsetEvaluator
    : public InstVisitor<ObjectSizeOffsetEvaluator, SizeOffsetValue>

Base Classes

NameDescription
InstVisitor<ObjectSizeOffsetEvaluator, SizeOffsetValue>Base class for instruction visitors

Member Functions

NameDescription
ObjectSizeOffsetEvaluator [constructor]Construct an evaluator that may emit runtime size/offset code.
compute Compute the size and offset of the object pointed to by V.
visit visit overloads
visitAShr Create or visit an arithmetic right-shift (ashr) instruction.
visitAdd Create or visit an integer addition (add) instruction.
visitAddrSpaceCast Visit an addrspacecast that changes a pointer's address space.
visitAddrSpaceCastInst Visit an AddrSpaceCastInst; defaults to visitCastInst.
visitAlloca Visit an alloca that allocates stack memory.
visitAllocaInst Visit an alloca and return its size and offset Values.
visitAnd Create or visit a bitwise AND (and) instruction.
visitAtomicCmpXchg Visit an atomic compare-and-exchange (cmpxchg) instruction.
visitAtomicCmpXchgInst Visit an AtomicCmpXchgInst; defaults to visitInstruction.
visitAtomicRMW Visit an atomic read-modify-write (atomicrmw) instruction.
visitAtomicRMWInst Visit an AtomicRMWInst; defaults to visitInstruction.
visitBasicBlock Called when beginning visitation of basic block BB.
visitBinaryOperator Visit a BinaryOperator; defaults to visitInstruction.
visitBitCast Visit a bitcast that reinterprets bits between types of equal size.
visitBitCastInst Visit a BitCastInst; defaults to visitCastInst.
visitCall Visit a call that invokes a function.
visitCallBase Visit a call or invoke and return its size and offset Values.
visitCallBr Visit a callbr call-site terminator with additional transfer labels.
visitCallBrInst Visit a CallBrInst; defaults to visitCallBase.
visitCallInst Visit a CallInst; defaults to visitCallBase.
visitCastInst Visit a CastInst; defaults to visitUnaryInstruction.
visitCatchPad Visit a catchpad that begins a catch funclet.
visitCatchPadInst Visit a CatchPadInst; defaults to visitFuncletPadInst.
visitCatchRet Visit a catchret that exits a catch funclet pad.
visitCatchReturnInst Visit a CatchReturnInst; defaults to visitTerminator.
visitCatchSwitch Visit a catchswitch that dispatches among catch pads.
visitCatchSwitchInst Visit a CatchSwitchInst; defaults to visitTerminator.
visitCleanupPad Visit a cleanuppad that begins a cleanup funclet.
visitCleanupPadInst Visit a CleanupPadInst; defaults to visitFuncletPadInst.
visitCleanupRet Visit a cleanupret that exits a cleanup funclet pad.
visitCleanupReturnInst Visit a CleanupReturnInst; defaults to visitTerminator.
visitCmpInst Visit a CmpInst; defaults to visitInstruction.
visitCondBr Visit a conditional branch that chooses between two successors.
visitCondBrInst Visit a conditional BranchInst; defaults to visitTerminator.
visitExtractElement Visit an extractelement that pulls one element from a vector.
visitExtractElementInst Visit an extractelement and return its size and offset Values.
visitExtractValue Visit an extractvalue that pulls a field from an aggregate.
visitExtractValueInst Visit an extractvalue and return its size and offset Values.
visitFAdd Create or visit a floating-point addition (fadd) instruction.
visitFCmp Visit an fcmp floating-point comparison instruction.
visitFCmpInst Visit an FCmpInst; defaults to visitCmpInst.
visitFDiv Create or visit a floating-point division (fdiv) instruction.
visitFMul Create or visit a floating-point multiplication (fmul) instruction.
visitFNeg Create or visit a floating-point negation (fneg) instruction.
visitFPBinaryOperator Visit an FPBinaryOperator; defaults to visitBinaryOperator.
visitFPExt Visit an fpext that extends a floating-point value.
visitFPExtInst Visit an FPExtInst; defaults to visitCastInst.
visitFPToSI Visit an fptosi that converts floating-point to signed integer.
visitFPToSIInst Visit an FPToSIInst; defaults to visitCastInst.
visitFPToUI Visit an fptoui that converts floating-point to unsigned integer.
visitFPToUIInst Visit an FPToUIInst; defaults to visitCastInst.
visitFPTrunc Visit an fptrunc that narrows a floating-point value.
visitFPTruncInst Visit an FPTruncInst; defaults to visitCastInst.
visitFPUnaryOperator Visit an FPUnaryOperator; defaults to visitUnaryOperator.
visitFRem Create or visit a floating-point remainder (frem) instruction.
visitFSub Create or visit a floating-point subtraction (fsub) instruction.
visitFence Visit a fence that orders memory operations.
visitFenceInst Visit a FenceInst; defaults to visitInstruction.
visitFreeze Visit a freeze that replaces undef or poison with a fixed value.
visitFreezeInst Visit a FreezeInst; defaults to visitInstruction.
visitFuncletPadInst Visit a FuncletPadInst; defaults to visitInstruction.
visitFunction Called when beginning visitation of function F.
visitGEPOperator Visit a GEP and return its size and offset Values.
visitGetElementPtr Visit a getelementptr that computes an address within an aggregate.
visitGetElementPtrInst Visit a GetElementPtrInst; defaults to visitInstruction.
visitICmp Visit an icmp integer comparison instruction.
visitICmpInst Visit an ICmpInst; defaults to visitCmpInst.
visitIndirectBr Visit an indirect branch through an address operand.
visitIndirectBrInst Visit an IndirectBrInst; defaults to visitTerminator.
visitInsertElement Visit an insertelement that inserts one element into a vector.
visitInsertElementInst Visit an InsertElementInst; defaults to visitInstruction.
visitInsertValue Visit an insertvalue that inserts a field into an aggregate.
visitInsertValueInst Visit an InsertValueInst; defaults to visitInstruction.
visitInstruction Visit a generic instruction and return its size and offset Values.
visitIntToPtr Visit an inttoptr that converts an integer to a pointer.
visitIntToPtrInst Visit an inttoptr and return its size and offset Values.
visitIntrinsicInst Visit an IntrinsicInst; defaults to visitCallInst.
visitInvoke Visit an invoke that calls a function with an exceptional continuation.
visitInvokeInst Visit an InvokeInst; defaults to visitCallBase.
visitLShr Create or visit a logical right-shift (lshr) instruction.
visitLandingPad Visit a landingpad that receives an exception in an invoke unwind edge.
visitLandingPadInst Visit a LandingPadInst; defaults to visitInstruction.
visitLoad Visit a load that reads from memory.
visitLoadInst Visit a load and return its size and offset Values.
visitMemCpyInst Visit a MemCpyInst; defaults to visitMemTransferInst.
visitMemIntrinsic Visit a MemIntrinsic; defaults to visitIntrinsicInst.
visitMemMoveInst Visit a MemMoveInst; defaults to visitMemTransferInst.
visitMemSetInst Visit a MemSetInst; defaults to visitMemIntrinsic.
visitMemSetPatternInst Visit a MemSetPatternInst; defaults to visitIntrinsicInst.
visitMemTransferInst Visit a MemTransferInst; defaults to visitMemIntrinsic.
visitModule Called when beginning visitation of module M.
visitMul Create or visit an integer multiplication (mul) instruction.
visitOr Create or visit a bitwise OR (or) instruction.
visitPHI Visit a phi node that merges values from predecessor blocks.
visitPHINode Visit a PHI and return its size and offset Values.
visitPtrToAddr Visit a ptrtoaddr that converts a pointer to an address integer.
visitPtrToAddrInst Visit a PtrToAddrInst; defaults to visitCastInst.
visitPtrToInt Visit a ptrtoint that bitcasts a pointer to an integer.
visitPtrToIntInst Visit a PtrToIntInst; defaults to visitCastInst.
visitResume Visit a resume that continues unwinding of an exception.
visitResumeInst Visit a ResumeInst; defaults to visitTerminator.
visitRet Visit a ret terminator that returns from the current function.
visitReturnInst Visit a ReturnInst; defaults to visitTerminator.
visitSDiv Create or visit a signed integer division (sdiv) instruction.
visitSExt Visit a sext that sign-extends an integer value.
visitSExtInst Visit an SExtInst; defaults to visitCastInst.
visitSIToFP Visit a sitofp that converts signed integer to floating-point.
visitSIToFPInst Visit an SIToFPInst; defaults to visitCastInst.
visitSRem Create or visit a signed integer remainder (srem) instruction.
visitSelect Visit a select that chooses one of two values by a condition.
visitSelectInst Visit a select and return its size and offset Values.
visitShl Create or visit a logical left-shift (shl) instruction.
visitShuffleVector Visit a shufflevector that permutes elements from two vectors.
visitShuffleVectorInst Visit a ShuffleVectorInst; defaults to visitInstruction.
visitStore Visit a store that writes a value to memory.
visitStoreInst Visit a StoreInst; defaults to visitInstruction.
visitSub Create or visit an integer subtraction (sub) instruction.
visitSwitch Visit a switch that dispatches on an integer value.
visitSwitchInst Visit a SwitchInst; defaults to visitTerminator.
visitTerminator Visit a terminator instruction; defaults to visitInstruction.
visitTrunc Visit a trunc that narrows an integer value.
visitTruncInst Visit a TruncInst; defaults to visitCastInst.
visitUDiv Create or visit an unsigned integer division (udiv) instruction.
visitUIToFP Visit a uitofp that converts unsigned integer to floating-point.
visitUIToFPInst Visit a UIToFPInst; defaults to visitCastInst.
visitURem Create or visit an unsigned integer remainder (urem) instruction.
visitUnaryInstruction Visit a UnaryInstruction; defaults to visitInstruction.
visitUnaryOperator Visit a UnaryOperator; defaults to visitUnaryInstruction.
visitUncondBr Visit an unconditional branch to a single successor.
visitUncondBrInst Visit an unconditional BranchInst; defaults to visitTerminator.
visitUnreachable Visit an unreachable marker for code that must never execute.
visitUnreachableInst Visit an UnreachableInst; defaults to visitTerminator.
visitUserOp1 Visit a UserOp1 placeholder that may be used internally in a pass.
visitUserOp2 Visit a UserOp2 placeholder that is internal to passes only.
visitVAArg Visit a vaarg that reads the next variable argument.
visitVAArgInst Visit a VAArgInst; defaults to visitUnaryInstruction.
visitVACopyInst Visit a VACopyInst; defaults to visitIntrinsicInst.
visitVAEndInst Visit a VAEndInst; defaults to visitIntrinsicInst.
visitVAStartInst Visit a VAStartInst; defaults to visitIntrinsicInst.
visitXor Create or visit a bitwise XOR (xor) instruction.
visitZExt Visit a zext that zero-extends an integer value.
visitZExtInst Visit a ZExtInst; defaults to visitCastInst.

Static Member Functions

NameDescription
unknown Return an unknown size/offset pair.