llvm::findDevirtualizableCallsForTypeCheckedLoad

Given a call to the intrinsic @llvm.type.checked.load, find all devirtualizable call sites based on the call and return them in DevirtCalls.

Synopsis

Declared in <llvm/Analysis/TypeMetadataUtils.h>

void
findDevirtualizableCallsForTypeCheckedLoad(
    SmallVectorImpl<DevirtCallSite>& DevirtCalls,
    SmallVectorImpl<Instruction*>& LoadedPtrs,
    SmallVectorImpl<Instruction*>& Preds,
    bool& HasNonCallUses,
    CallInst const* CI,
    DominatorTree& DT);

Parameters

NameDescription
DevirtCallsThis class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
LoadedPtrsThis class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
PredsThis class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
CIThis class represents a function call, abstracting a target machine's calling convention. This class uses low bit of the SubClassData field to indicate whether or not this is a tail call. The rest of the bits hold the calling convention of the call.
DTConcrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.