Given a call to the intrinsic @llvm.type.checked.load, find all devirtualizable call sites based on the call and return them in DevirtCalls.
Declared in <llvm/Analysis/TypeMetadataUtils.h>
void
findDevirtualizableCallsForTypeCheckedLoad(
SmallVectorImpl<DevirtCallSite>& DevirtCalls,
SmallVectorImpl<Instruction*>& LoadedPtrs,
SmallVectorImpl<Instruction*>& Preds,
bool& HasNonCallUses,
CallInst const* CI,
DominatorTree& DT);
| Name | Description |
|---|---|
| DevirtCalls | Output list of discovered devirtualizable call sites. |
| LoadedPtrs | Output list of extractvalue instructions for loaded pointers. |
| Preds | Output list of extractvalue instructions for the type-check predicates. |
| HasNonCallUses | Set to true if the intrinsic has uses that are not calls or the expected extracts. |
| CI | The @llvm.type.checked.load (or relative) intrinsic call. |
| DT | Dominator tree used to filter dominating call sites. |