LLVM: llvm::DataLayout::PointerSpec Struct Reference (original) (raw)

Pointer type specification. More...

#include "[llvm/IR/DataLayout.h](DataLayout%5F8h%5Fsource.html)"

Public Attributes
uint32_t AddrSpace
uint32_t BitWidth
Align ABIAlign
Align PrefAlign
uint32_t IndexBitWidth
The index bit width also defines the address size in this address space.
bool HasUnstableRepresentation
Pointers in this address space don't have a well-defined bitwise representation (e.g.
bool HasExternalState
Pointers in this address space have additional state bits that are located at a target-defined location when stored in memory.

Pointer type specification.

Definition at line 75 of file DataLayout.h.

operator==()

ABIAlign

Align llvm::DataLayout::PointerSpec::ABIAlign

AddrSpace

uint32_t llvm::DataLayout::PointerSpec::AddrSpace

BitWidth

uint32_t llvm::DataLayout::PointerSpec::BitWidth

HasExternalState

bool llvm::DataLayout::PointerSpec::HasExternalState

Pointers in this address space have additional state bits that are located at a target-defined location when stored in memory.

An example of this would be CHERI capabilities where the validity bit is stored separately from the pointer address+bounds information.

Definition at line 94 of file DataLayout.h.

Referenced by operator==().

HasUnstableRepresentation

bool llvm::DataLayout::PointerSpec::HasUnstableRepresentation

Pointers in this address space don't have a well-defined bitwise representation (e.g.

they may be relocated by a copying garbage collector and thus have different addresses at different times).

Definition at line 89 of file DataLayout.h.

Referenced by operator==().

IndexBitWidth

uint32_t llvm::DataLayout::PointerSpec::IndexBitWidth

The index bit width also defines the address size in this address space.

If the index width is less than the representation bit width, the pointer is non-integral and bits beyond the index width could be used for additional metadata (e.g. AMDGPU buffer fat pointers with bounds and other flags or CHERI capabilities that contain bounds+permissions).

Definition at line 85 of file DataLayout.h.

Referenced by operator==().

PrefAlign

Align llvm::DataLayout::PointerSpec::PrefAlign


The documentation for this struct was generated from the following files: