ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.
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());
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 | This class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively. |
| DL | A parsed version of the target data layout string in and methods for querying it. |
| Ty | The 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. |
| ValueVTs | This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. |
| MemVTs | This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. |
| Offsets | This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. |