LLVM 22.0.0git
|
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. |
Pointer type specification.
Definition at line 75 of file DataLayout.h.
bool DataLayout::PointerSpec::operator== | ( | const PointerSpec & | Other | ) | const |
Definition at line 150 of file DataLayout.cpp.
References ABIAlign, AddrSpace, BitWidth, HasExternalState, HasUnstableRepresentation, IndexBitWidth, llvm::Other, and PrefAlign.
Align llvm::DataLayout::PointerSpec::ABIAlign |
Definition at line 78 of file DataLayout.h.
Referenced by operator==().
uint32_t llvm::DataLayout::PointerSpec::AddrSpace |
Definition at line 76 of file DataLayout.h.
Referenced by operator==().
uint32_t llvm::DataLayout::PointerSpec::BitWidth |
Definition at line 77 of file DataLayout.h.
Referenced by operator==().
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==().
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==().
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==().
Align llvm::DataLayout::PointerSpec::PrefAlign |
Definition at line 79 of file DataLayout.h.
Referenced by operator==().