llvm::ComputeValueVTs

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

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

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
TLIThis class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively.
DLA parsed version of the target data layout string in and methods for querying it.
TyThe instances of the Type class are immutable: once they are created, they are never changed. Also note that only one instance of a particular type is ever created. Thus seeing if two types are equal is a matter of doing a trivial pointer comparison. To enforce that no two equal instances are created, Type instances can only be created via static factory methods in class Type and in derived classes. Once allocated, Types are never free'd.
ValueVTsThis class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
MemVTsThis class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
OffsetsThis class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.