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
DevirtCallsOutput list of discovered devirtualizable call sites.
LoadedPtrsOutput list of extractvalue instructions for loaded pointers.
PredsOutput list of extractvalue instructions for the type-check predicates.
HasNonCallUsesSet to true if the intrinsic has uses that are not calls or the expected extracts.
CIThe @llvm.type.checked.load (or relative) intrinsic call.
DTDominator tree used to filter dominating call sites.