clang 22.0.0git
clang::CIRGen::Address Class Reference

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/Address.h"

Public Member Functions

 Address (mlir::Value pointer, mlir::Type elementType, clang::CharUnits alignment)
 Address (mlir::Value pointer, clang::CharUnits alignment)
bool isValid () const
Address withPointer (mlir::Value newPtr) const
 Return address with different pointer, but same element type and alignment.
Address withElementType (CIRGenBuilderTy &builder, mlir::Type ElemTy) const
 Return address with different element type, a bitcast pointer, and the same alignment.
mlir::Value getPointer () const
mlir::Value getBasePointer () const
mlir::Value emitRawPointer () const
 Return the pointer contained in this class after authenticating it and adding offset to it if necessary.
mlir::Type getType () const
mlir::Type getElementType () const
clang::CharUnits getAlignment () const
mlir::Operation * getDefiningOp () const
 Get the operation which defines this address.
template<typename OpTy>
OpTy getDefiningOp () const

Static Public Member Functions

static Address invalid ()

Protected Member Functions

 Address (std::nullptr_t)

Detailed Description

Definition at line 28 of file Address.h.

Constructor & Destructor Documentation

◆ Address() [1/3]

clang::CIRGen::Address::Address ( std::nullptr_t )
inlineprotected

Definition at line 41 of file Address.h.

References clang::nullptr.

Referenced by Address(), invalid(), withElementType(), and withPointer().

◆ Address() [2/3]

clang::CIRGen::Address::Address ( mlir::Value pointer,
mlir::Type elementType,
clang::CharUnits alignment )
inline

Definition at line 44 of file Address.h.

References false.

◆ Address() [3/3]

clang::CIRGen::Address::Address ( mlir::Value pointer,
clang::CharUnits alignment )
inline

Definition at line 59 of file Address.h.

References Address(), clang::cast(), and getType().

Member Function Documentation

◆ emitRawPointer()

mlir::Value clang::CIRGen::Address::emitRawPointer ( ) const
inline

Return the pointer contained in this class after authenticating it and adding offset to it if necessary.

Definition at line 96 of file Address.h.

References cir::MissingFeatures::addressPointerAuthInfo(), and getBasePointer().

◆ getAlignment()

◆ getBasePointer()

mlir::Value clang::CIRGen::Address::getBasePointer ( ) const
inline

Definition at line 87 of file Address.h.

References getPointer(), and isValid().

Referenced by emitRawPointer(), and withElementType().

◆ getDefiningOp() [1/2]

mlir::Operation * clang::CIRGen::Address::getDefiningOp ( ) const
inline

Get the operation which defines this address.

Definition at line 120 of file Address.h.

References getPointer(), and isValid().

Referenced by clang::CIRGen::CIRGenFunction::emitStoreOfScalar(), clang::CIRGen::CIRGenFunction::emitUnaryOpLValue(), and getDefiningOp().

◆ getDefiningOp() [2/2]

template<typename OpTy>
OpTy clang::CIRGen::Address::getDefiningOp ( ) const
inline

Definition at line 126 of file Address.h.

References getDefiningOp().

◆ getElementType()

◆ getPointer()

mlir::Value clang::CIRGen::Address::getPointer ( ) const
inline

Definition at line 82 of file Address.h.

References isValid().

Referenced by clang::CIRGen::CIRGenBuilderTy::createBaseClassAddr(), clang::CIRGen::CIRGenBuilderTy::createComplexImagPtr(), clang::CIRGen::CIRGenBuilderTy::createComplexRealPtr(), clang::CIRGen::CIRGenBuilderTy::createElementBitCast(), clang::CIRGen::CIRGenBuilderTy::createGetBitfield(), clang::CIRGen::CIRGenBuilderTy::createLoad(), clang::CIRGen::CIRGenBuilderTy::createSetBitfield(), clang::CIRGen::CIRGenFunction::createTempAlloca(), clang::CIRGen::CIRGenFunction::emitAddrOfFieldStorage(), clang::CIRGen::CIRGenFunction::emitAggregateCopy(), emitArraySubscriptPtr(), clang::CIRGen::CIRGenFunction::emitArrayToPointerDecay(), emitAtomicCmpXchg(), emitAtomicOp(), clang::CIRGen::CIRGenFunction::emitAutoVarAlloca(), clang::CIRGen::CIRGenFunction::emitAutoVarInit(), clang::CIRGen::CIRGenFunction::emitBuiltinExpr(), clang::CIRGen::CIRGenFunction::emitCXXAggrConstructorCall(), clang::CIRGen::CIRGenFunction::emitCXXConstructorCall(), clang::CIRGen::CIRGenFunction::emitCXXNewExpr(), clang::CIRGen::CIRGenFunction::emitDelegateCXXConstructorCall(), clang::CIRGen::CIRGenFunction::emitDestroy(), clang::CIRGen::CIRGenFunction::emitLambdaDelegatingInvokeBody(), clang::CIRGen::CIRGenFunction::emitLoadOfReference(), clang::CIRGen::CIRGenFunction::emitLoadOfScalar(), emitObjectDelete(), clang::CIRGen::CIRGenFunction::emitPointerWithAlignment(), clang::CIRGen::CIRGenFunction::emitStoreOfScalar(), clang::CIRGen::CIRGenFunction::emitVAArg(), clang::CIRGen::RValue::getAggregatePointer(), getBasePointer(), getDefiningOp(), getType(), clang::CIRGen::CIRGenFunction::getVTablePtr(), clang::CIRGen::CIRGenFunction::initializeVTablePointer(), clang::CIRGen::CIRGenCXXABI::loadIncomingCXXThis(), clang::CIRGen::LValue::makeAddr(), clang::CIRGen::LValue::makeBitfield(), clang::CIRGen::LValue::makeVectorElt(), clang::CIRGen::LValue::setAddress(), and clang::CIRGen::CIRGenFunction::setAddrOfLocalVar().

◆ getType()

mlir::Type clang::CIRGen::Address::getType ( ) const
inline

Definition at line 101 of file Address.h.

References getPointer(), and getType().

Referenced by Address(), clang::CIRGen::CIRGenFunction::emitDeclRefLValue(), and getType().

◆ invalid()

◆ isValid()

◆ withElementType()

◆ withPointer()

Address clang::CIRGen::Address::withPointer ( mlir::Value newPtr) const
inline

Return address with different pointer, but same element type and alignment.

Definition at line 74 of file Address.h.

References Address(), getAlignment(), and getElementType().

Referenced by emitAtomicCmpXchg().


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