LLVM 22.0.0git
llvm::DataLayout::PointerSpec Struct Reference

Pointer type specification. More...

#include "llvm/IR/DataLayout.h"

Public Member Functions

LLVM_ABI bool operator== (const PointerSpec &Other) const

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.

Detailed Description

Pointer type specification.

Definition at line 75 of file DataLayout.h.

Member Function Documentation

◆ operator==()

bool DataLayout::PointerSpec::operator== ( const PointerSpec & Other) const

Member Data Documentation

◆ ABIAlign

Align llvm::DataLayout::PointerSpec::ABIAlign

Definition at line 78 of file DataLayout.h.

Referenced by operator==().

◆ AddrSpace

uint32_t llvm::DataLayout::PointerSpec::AddrSpace

Definition at line 76 of file DataLayout.h.

Referenced by operator==().

◆ BitWidth

uint32_t llvm::DataLayout::PointerSpec::BitWidth

Definition at line 77 of file DataLayout.h.

Referenced by operator==().

◆ 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

Definition at line 79 of file DataLayout.h.

Referenced by operator==().


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