Compute a sequence of EVTs for the non-aggregate parts of an LLVM IR type.
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());
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.
| Name | Description |
|---|---|
| TLI | Target lowering used to map IR types to EVTs. |
| DL | Data layout used to determine type sizes and offsets. |
| Ty | LLVM IR type to decompose. |
| ValueVTs | Filled with the EVTs of the non-aggregate parts of Ty. |
| MemVTs | Optional vector filled with the corresponding memory EVTs. |
| Offsets | Optional vector filled with the in-memory offset of each value. |
| StartingOffset | Base offset applied to each recorded offset. |