clang 20.0.0git
|
An abstract representation of an aligned address. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/Address.h"
Public Member Functions | |
RawAddress (llvm::Value *Pointer, llvm::Type *ElementType, CharUnits Alignment, KnownNonNull_t IsKnownNonNull=NotKnownNonNull) | |
RawAddress (Address Addr) | |
bool | isValid () const |
llvm::Value * | getPointer () const |
llvm::PointerType * | getType () const |
Return the type of the pointer value. | |
llvm::Type * | getElementType () const |
Return the type of the values stored in this address. | |
unsigned | getAddressSpace () const |
Return the address space that this address resides in. | |
llvm::StringRef | getName () const |
Return the IR name of the pointer value. | |
CharUnits | getAlignment () const |
Return the alignment of this pointer. | |
RawAddress | withElementType (llvm::Type *ElemTy) const |
Return address with different element type, but same pointer and alignment. | |
KnownNonNull_t | isKnownNonNull () const |
Static Public Member Functions | |
static RawAddress | invalid () |
Protected Member Functions | |
RawAddress (std::nullptr_t) | |
An abstract representation of an aligned address.
This is designed to be an IR-level abstraction, carrying just the information necessary to perform IR operations on an address like loads and stores. In particular, it doesn't carry C type information or allow the representation of things like bit-fields; clients working at that level should generally be using LValue
. The pointer contained in this class is known to be unsigned.
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
Return the alignment of this pointer.
Definition at line 93 of file Address.h.
References isValid().
Referenced by clang::CodeGen::ConstantAddress::castImpl(), CreateCoercedLoad(), clang::CodeGen::EHCleanupScope::setActiveFlag(), withElementType(), and clang::CodeGen::ConstantAddress::withElementType().
|
inline |
Return the type of the values stored in this address.
Definition at line 77 of file Address.h.
References isValid().
Referenced by clang::CodeGen::ConstantAddress::castImpl(), castToBase(), clang::CodeGen::CGOpenMPRuntime::emitTaskReductionInit(), and MaybeConvertMatrixAddress().
|
inline |
Return the IR name of the pointer value.
Definition at line 88 of file Address.h.
References getPointer().
|
inline |
Definition at line 66 of file Address.h.
References isValid().
Referenced by clang::CodeGen::ConstantAddress::castImpl(), castToBase(), CreateCoercedLoad(), destroyOptimisticNormalEntry(), clang::CodeGen::CGOpenMPRuntime::emitParallelCall(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitTaskReductionInit(), getName(), clang::CodeGen::ConstantAddress::getPointer(), getType(), clang::CodeGen::ConstantAddress::isaImpl(), and withElementType().
|
inline |
Return the type of the pointer value.
Definition at line 72 of file Address.h.
References getPointer(), and getType().
Referenced by getAddressSpace(), and getType().
|
inlinestatic |
Definition at line 61 of file Address.h.
Referenced by castToBase(), and clang::CodeGen::CodeGenFunction::pushCleanupAfterFullExpr().
|
inline |
|
inline |
Definition at line 62 of file Address.h.
Referenced by castToBase(), getAlignment(), getElementType(), getPointer(), isKnownNonNull(), and clang::CodeGen::CodeGenFunction::pushCleanupAfterFullExprWithActiveFlag().
|
inline |
Return address with different element type, but same pointer and alignment.
Definition at line 100 of file Address.h.
References getAlignment(), getPointer(), and isKnownNonNull().
Referenced by MaybeConvertMatrixAddress().