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

Methods

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

Declared at: llvm/include/llvm/IR/DataLayout.h:633

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

Declared at: llvm/include/llvm/IR/DataLayout.h:652

Parameters

unsigned int Idx

uint64_t getElementOffsetInBits(
    unsigned int Idx) const

Declared at: llvm/include/llvm/IR/DataLayout.h:657

Parameters

unsigned int Idx

MutableArrayRef<uint64_t> getMemberOffsets()

Declared at: llvm/include/llvm/IR/DataLayout.h:643

ArrayRef<uint64_t> getMemberOffsets() const

Declared at: llvm/include/llvm/IR/DataLayout.h:648

uint64_t getSizeInBits() const

Declared at: llvm/include/llvm/IR/DataLayout.h:631

uint64_t getSizeInBytes() const

Declared at: llvm/include/llvm/IR/DataLayout.h:629

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

Declared at: llvm/include/llvm/IR/DataLayout.h:666

Parameters

OverloadToken<uint64_t>