class StructLayout
Declaration
class StructLayout : public TrailingObjects { /* full declaration omitted */ };
Description
Used to lazily calculate structure layout information for a target machine, based on the DataLayout structure.
Declared at: llvm/include/llvm/IR/DataLayout.h:622
Inherits from: TrailingObjects
Member Variables
- private uint64_t StructSize
- private llvm::Align StructAlignment
- private unsigned int IsPadded
- private unsigned int NumElements
Method Overview
- private StructLayout(llvm::StructType * ST, const llvm::DataLayout & DL)
- public llvm::Align getAlignment() const
- public unsigned int getElementContainingOffset(uint64_t Offset) const
- public uint64_t getElementOffset(unsigned int Idx) const
- public uint64_t getElementOffsetInBits(unsigned int Idx) const
- public MutableArrayRef<uint64_t> getMemberOffsets()
- public ArrayRef<uint64_t> getMemberOffsets() const
- public uint64_t getSizeInBits() const
- public uint64_t getSizeInBytes() const
- public bool hasPadding() const
- private size_t numTrailingObjects(OverloadToken<uint64_t>) const
Methods
¶StructLayout(llvm::StructType* ST,
const llvm::DataLayout& DL)
StructLayout(llvm::StructType* ST,
const llvm::DataLayout& DL)
Declared at: llvm/include/llvm/IR/DataLayout.h:664
Parameters
- llvm::StructType* ST
- const llvm::DataLayout& DL
¶llvm::Align getAlignment() const
llvm::Align getAlignment() const
Declared at: llvm/include/llvm/IR/DataLayout.h:633
¶unsigned int getElementContainingOffset(
uint64_t Offset) const
unsigned int getElementContainingOffset(
uint64_t Offset) const
Description
Given a valid byte offset into the structure, returns the structure index that contains it.
Declared at: llvm/include/llvm/IR/DataLayout.h:641
Parameters
- uint64_t Offset
¶uint64_t getElementOffset(unsigned int Idx) const
uint64_t getElementOffset(unsigned int Idx) const
Declared at: llvm/include/llvm/IR/DataLayout.h:652
Parameters
- unsigned int Idx
¶uint64_t getElementOffsetInBits(
unsigned int Idx) const
uint64_t getElementOffsetInBits(
unsigned int Idx) const
Declared at: llvm/include/llvm/IR/DataLayout.h:657
Parameters
- unsigned int Idx
¶MutableArrayRef<uint64_t> getMemberOffsets()
MutableArrayRef<uint64_t> getMemberOffsets()
Declared at: llvm/include/llvm/IR/DataLayout.h:643
¶ArrayRef<uint64_t> getMemberOffsets() const
ArrayRef<uint64_t> getMemberOffsets() const
Declared at: llvm/include/llvm/IR/DataLayout.h:648
¶uint64_t getSizeInBits() const
uint64_t getSizeInBits() const
Declared at: llvm/include/llvm/IR/DataLayout.h:631
¶uint64_t getSizeInBytes() const
uint64_t getSizeInBytes() const
Declared at: llvm/include/llvm/IR/DataLayout.h:629
¶bool hasPadding() const
bool hasPadding() const
Description
Returns whether the struct has padding or not between its fields. NB: Padding in nested element is not taken into account.
Declared at: llvm/include/llvm/IR/DataLayout.h:637
¶size_t numTrailingObjects(
OverloadToken<uint64_t>) const
size_t numTrailingObjects(
OverloadToken<uint64_t>) const
Declared at: llvm/include/llvm/IR/DataLayout.h:666
Parameters
- OverloadToken<uint64_t>