llvm::ComputeValueVTs

Compute a sequence of EVTs for the non-aggregate parts of an LLVM IR type.

Synopsis

Declared in <llvm/CodeGen/Analysis.h>

void
ComputeValueVTs(
    TargetLowering const& TLI,
    DataLayout const& DL,
    Type* Ty,
    SmallVectorImpl<EVT>& ValueVTs,
    SmallVectorImpl<EVT>* MemVTs = nullptr,
    SmallVectorImpl<TypeSize>* Offsets = nullptr,
    TypeSize StartingOffset = TypeSize::getZero());

Description

Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.

If Offsets is non-null, it points to a vector to be filled in with the in-memory offsets of each of the individual values.

Parameters

NameDescription
TLITarget lowering used to map IR types to EVTs.
DLData layout used to determine type sizes and offsets.
TyLLVM IR type to decompose.
ValueVTsFilled with the EVTs of the non-aggregate parts of Ty.
MemVTsOptional vector filled with the corresponding memory EVTs.
OffsetsOptional vector filled with the in-memory offset of each value.
StartingOffsetBase offset applied to each recorded offset.