clang 22.0.0git
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
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::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 27 of file Address.h.

Constructor & Destructor Documentation

◆ Address() [1/3]

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

Definition at line 40 of file Address.h.

◆ Address() [2/3]

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

Definition at line 43 of file Address.h.

References clang::CharUnits::isZero().

◆ Address() [3/3]

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

Definition at line 58 of file Address.h.

References clang::cast(), and clang::CharUnits::isZero().

Member Function Documentation

◆ getAlignment()

clang::CharUnits clang::CIRGen::Address::getAlignment ( ) const
inline

◆ getBasePointer()

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

Definition at line 86 of file Address.h.

References getPointer(), and isValid().

Referenced by withElementType().

◆ getDefiningOp() [1/2]

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

Get the operation which defines this address.

Definition at line 112 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 118 of file Address.h.

References getDefiningOp().

◆ getElementType()

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

◆ getPointer()

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

Definition at line 81 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(), emitArraySubscriptPtr(), clang::CIRGen::CIRGenFunction::emitArrayToPointerDecay(), 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::emitLoadOfReference(), clang::CIRGen::CIRGenFunction::emitLoadOfScalar(), clang::CIRGen::CIRGenFunction::emitPointerWithAlignment(), clang::CIRGen::CIRGenFunction::emitStoreOfScalar(), clang::CIRGen::CIRGenFunction::emitVAArg(), clang::CIRGen::RValue::getAggregatePointer(), getBasePointer(), getDefiningOp(), clang::CIRGen::AggValueSlot::getPointer(), 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 93 of file Address.h.

References getPointer(), and getType().

Referenced by getType().

◆ invalid()

static Address clang::CIRGen::Address::invalid ( )
inlinestatic

◆ isValid()

bool clang::CIRGen::Address::isValid ( ) const
inline

◆ withElementType()

Address Address::withElementType ( CIRGenBuilderTy builder,
mlir::Type  ElemTy 
) const

◆ 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 73 of file Address.h.

References getAlignment(), and getElementType().


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