clang 22.0.0git
clang::CodeGen::Address Class Reference

Like RawAddress, an abstract representation of an aligned address, but the pointer contained in this class is possibly signed. More...

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

Public Member Functions

 Address (llvm::Value *pointer, llvm::Type *elementType, CharUnits alignment, KnownNonNull_t IsKnownNonNull=NotKnownNonNull)
 Address (llvm::Value *BasePtr, llvm::Type *ElementType, CharUnits Alignment, CGPointerAuthInfo PtrAuthInfo, llvm::Value *Offset, KnownNonNull_t IsKnownNonNull=NotKnownNonNull)
 Address (RawAddress RawAddr)
bool isValid () const
llvm::Value * getPointerIfNotSigned () const
void replaceBasePointer (llvm::Value *P)
 This function is used in situations where the caller is doing some sort of opaque "laundering" of the pointer.
CharUnits getAlignment () const
void setAlignment (CharUnits Value)
llvm::Value * getBasePointer () 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.
const CGPointerAuthInfogetPointerAuthInfo () const
void setPointerAuthInfo (const CGPointerAuthInfo &Info)
void setElementType (llvm::Type *Ty)
bool isSigned () const
KnownNonNull_t isKnownNonNull () const
 Whether the pointer is known not to be null.
Address setKnownNonNull ()
bool hasOffset () const
llvm::Value * getOffset () const
Address getResignedAddress (const CGPointerAuthInfo &NewInfo, CodeGenFunction &CGF) const
llvm::Value * emitRawPointer (CodeGenFunction &CGF) const
 Return the pointer contained in this class after authenticating it and adding offset to it if necessary.
Address withPointer (llvm::Value *NewPointer, KnownNonNull_t IsKnownNonNull) const
 Return address with different pointer, but same element type and alignment.
Address withAlignment (CharUnits NewAlignment) const
 Return address with different alignment, but same pointer and element type.
Address withElementType (llvm::Type *ElemTy) const
 Return address with different element type, but same pointer and alignment.

Static Public Member Functions

static Address invalid ()

Protected Member Functions

 Address (std::nullptr_t)

Friends

class CGBuilderTy

Detailed Description

Like RawAddress, an abstract representation of an aligned address, but the pointer contained in this class is possibly signed.

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.

An address may be either raw, meaning that it's an ordinary machine pointer, or signed, meaning that the pointer carries an embedded pointer-authentication signature. Representing signed pointers directly in this abstraction allows the authentication to be delayed as long as possible without forcing IRGen to use totally different code paths for signed and unsigned values or to separately propagate signature information through every API that manipulates addresses. Pointer arithmetic on signed addresses (e.g. drilling down to a struct field) is accumulated into a separate offset which is applied when the address is finally accessed.

Definition at line 128 of file Address.h.

Constructor & Destructor Documentation

◆ Address() [1/4]

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

◆ Address() [2/4]

clang::CodeGen::Address::Address ( llvm::Value * pointer,
llvm::Type * elementType,
CharUnits alignment,
KnownNonNull_t IsKnownNonNull = NotKnownNonNull )
inline

Definition at line 154 of file Address.h.

References clang::CharUnits::isZero(), and clang::CodeGen::NotKnownNonNull.

◆ Address() [3/4]

clang::CodeGen::Address::Address ( llvm::Value * BasePtr,
llvm::Type * ElementType,
CharUnits Alignment,
CGPointerAuthInfo PtrAuthInfo,
llvm::Value * Offset,
KnownNonNull_t IsKnownNonNull = NotKnownNonNull )
inline

Definition at line 163 of file Address.h.

References clang::CodeGen::NotKnownNonNull.

◆ Address() [4/4]

clang::CodeGen::Address::Address ( RawAddress RawAddr)
inline

Member Function Documentation

◆ emitRawPointer()

llvm::Value * clang::CodeGen::Address::emitRawPointer ( CodeGenFunction & CGF) const
inline

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

Definition at line 253 of file Address.h.

References getBasePointer(), and isSigned().

Referenced by clang::CodeGen::ReductionCodeGen::adjustPrivateAddress(), clang::CodeGen::CGOpenMPRuntimeGPU::adjustTargetSpecificDataForLambdas(), ApplyNonVirtualAndVirtualOffset(), clang::CodeGen::CGObjCRuntime::canMessageReceiverBeNull(), CreateCoercedLoad(), clang::CodeGen::CodeGenFunction::CreateCoercedStore(), createLoadInstBefore(), createLoadInstBefore(), createStoreInstBefore(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExprToExn(), emitARCCopyOperation(), clang::CodeGen::CodeGenFunction::EmitARCDestroyWeak(), emitARCLoadOperation(), emitARCStoreOperation(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrongCall(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), EmitArrayDelete(), clang::CodeGen::CodeGenFunction::emitArrayLength(), emitArraySubscriptGEP(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCapturedLocals(), clang::CodeGen::CodeGenFunction::EmitCoroutineBody(), clang::CodeGen::CodeGenFunction::EmitCXXAggrConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::emitDestroy(), EmitDestroyingObjectDelete(), clang::CodeGen::CGOpenMPRuntime::emitDoacrossInit(), EmitDoacrossOrdered(), clang::CodeGen::CGOpenMPRuntime::emitForNext(), emitForStaticInitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitHexagonBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitLambdaStaticInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenPGO::emitMCDCTestVectorBitmapUpdate(), clang::CodeGen::emitMergePHI(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNonZeroVLAInit(), clang::CodeGen::CodeGenFunction::EmitNVPTXBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), EmitObjectDelete(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), emitOMPAtomicCompareExpr(), clang::CodeGen::CodeGenFunction::EmitOMPCanonicalLoop(), clang::CodeGen::CodeGenFunction::EmitOMPCopyinClause(), clang::CodeGen::CodeGenFunction::EmitOMPDepobjDirective(), clang::CodeGen::CodeGenFunction::EmitOMPInteropDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(), clang::CodeGen::CGOpenMPRuntime::emitParallelCall(), clang::CodeGen::CGOpenMPRuntimeGPU::emitParallelCall(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitPointerAuthInfo(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), emitProxyTaskFunction(), clang::CodeGen::CGOpenMPRuntimeGPU::emitReduction(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructGetterCall(), clang::CodeGen::CGOpenMPRuntime::emitTargetDataStandAloneCall(), clang::CodeGen::CGOpenMPRuntime::emitTaskCall(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), clang::CodeGen::CGOpenMPRuntime::emitTaskwaitCall(), clang::CodeGen::CGOpenMPRuntime::emitThreadPrivateVarInit(), clang::CodeGen::CGObjCRuntime::EmitTryCatchStmt(), clang::CodeGen::CGOpenMPRuntime::emitUpdateClause(), clang::CodeGen::EmitVAArgInstr(), clang::CodeGen::emitVoidPtrDirectVAArg(), clang::CodeGen::CodeGenFunction::EmitVTablePtrCheckForCast(), clang::CodeGen::CodeGenFunction::EmitWebAssemblyBuiltinExpr(), emitWritebackArg(), EnterNewDeleteCleanup(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CodeGen::CGOpenMPRuntime::getAddrOfThreadPrivate(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddrOfThreadPrivate(), getPointerAndSize(), InitCatchParam(), clang::CodeGen::CodeGenFunction::InitializeVTablePointer(), performTypeAdjustment(), pushTemporaryCleanup(), clang::CodeGen::CGCXXABI::ReadArrayCookie(), clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal(), clang::CodeGen::DominatingLLVMValue::save(), clang::CodeGen::CodeGenFunction::setBeforeOutermostConditional(), and clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr().

◆ getAddressSpace()

unsigned clang::CodeGen::Address::getAddressSpace ( ) const
inline

Return the address space that this address resides in.

Definition at line 215 of file Address.h.

References getType().

Referenced by clang::CodeGen::CodeGenFunction::EmitCall().

◆ getAlignment()

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

Definition at line 194 of file Address.h.

Referenced by Address(), ApplyNonVirtualAndVirtualOffset(), clang::CodeGen::CodeGenFunction::callCStructCopyAssignmentOperator(), clang::CodeGen::CodeGenFunction::callCStructCopyConstructor(), clang::CodeGen::CodeGenFunction::callCStructDefaultConstructor(), clang::CodeGen::CodeGenFunction::callCStructDestructor(), clang::CodeGen::CodeGenFunction::callCStructMoveAssignmentOperator(), clang::CodeGen::CodeGenFunction::callCStructMoveConstructor(), CheckAtomicAlignment(), CreateCoercedLoad(), clang::CodeGen::CodeGenFunction::CreateCoercedStore(), createLoadInstBefore(), createLoadInstBefore(), clang::CodeGen::CGBuilderTy::CreateMemCpy(), clang::CodeGen::CGBuilderTy::CreateMemCpy(), clang::CodeGen::CGBuilderTy::CreateMemCpyInline(), clang::CodeGen::CGBuilderTy::CreateMemMove(), clang::CodeGen::CGBuilderTy::CreateMemSet(), clang::CodeGen::CGBuilderTy::CreateMemSetInline(), createStoreInstBefore(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), EmitArrayDelete(), clang::CodeGen::CodeGenFunction::emitArrayLength(), emitArraySubscriptGEP(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitCXXAggrConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberDataPointerAddress(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::emitDestroy(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitHexagonBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::emitMergePHI(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNonZeroVLAInit(), EmitNullBaseClassInitialization(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), emitPointerArithmetic(), clang::CodeGen::CGOpenMPRuntime::emitThreadPrivateVarDefinition(), clang::CodeGen::CGOpenMPRuntime::emitUserDefinedMapper(), clang::CodeGen::CodeGenFunction::ParamValue::forIndirect(), clang::CodeGen::CGOpenMPRuntime::getAddrOfThreadPrivate(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddrOfThreadPrivate(), getResignedAddress(), clang::CodeGen::CodeGenFunction::mergeAddressesInConditionalExpr(), clang::CodeGen::DominatingValue< Address >::save(), clang::CodeGen::CodeGenFunction::setBeforeOutermostConditional(), withElementType(), and withPointer().

◆ getBasePointer()

◆ getElementType()

llvm::Type * clang::CodeGen::Address::getElementType ( ) const
inline

Return the type of the values stored in this address.

Definition at line 209 of file Address.h.

References isValid().

Referenced by Address(), clang::CodeGen::ReductionCodeGen::adjustPrivateAddress(), CheckAtomicAlignment(), CreateCoercedLoad(), clang::CodeGen::CodeGenFunction::CreateCoercedStore(), clang::CodeGen::CGBuilderTy::CreateConstArrayGEP(), createLoadInstBefore(), createLoadInstBefore(), clang::CodeGen::CGBuilderTy::CreatePreserveStructAccessIndex(), clang::CodeGen::CGBuilderTy::CreateStructGEP(), clang::CodeGen::CodeGenFunction::EmitAMDGPUBuiltinExpr(), emitARCStoreOperation(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrongCall(), EmitArrayDelete(), clang::CodeGen::CodeGenFunction::emitArrayLength(), emitArraySubscriptGEP(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCXXAggrConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::emitDestroy(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::emitMergePHI(), clang::CodeGen::CodeGenFunction::EmitMSVCBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNonZeroVLAInit(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitNVPTXBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), emitOMPAtomicCompareExpr(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CGOpenMPRuntime::emitUpdateClause(), clang::CodeGen::emitVoidPtrDirectVAArg(), emitWriteback(), EnterStructPointerForCoercedAccess(), findDominatingStoreToReturnValue(), clang::CodeGen::CodeGenFunction::generateBuiltinOSLogHelperFunction(), clang::CodeGen::CGOpenMPRuntime::getAddrOfThreadPrivate(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddrOfThreadPrivate(), getNullForVariable(), getPointerAndSize(), getResignedAddress(), clang::CodeGen::DominatingValue< Address >::save(), withAlignment(), and withPointer().

◆ getName()

◆ getOffset()

llvm::Value * clang::CodeGen::Address::getOffset ( ) const
inline

◆ getPointerAuthInfo()

const CGPointerAuthInfo & clang::CodeGen::Address::getPointerAuthInfo ( ) const
inline

Definition at line 220 of file Address.h.

Referenced by getResignedAddress(), and withElementType().

◆ getPointerIfNotSigned()

llvm::Value * clang::CodeGen::Address::getPointerIfNotSigned ( ) const
inline

Definition at line 179 of file Address.h.

References isSigned(), and isValid().

Referenced by clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction().

◆ getResignedAddress()

◆ getType()

llvm::PointerType * clang::CodeGen::Address::getType ( ) const
inline

◆ hasOffset()

bool clang::CodeGen::Address::hasOffset ( ) const
inline

Definition at line 244 of file Address.h.

Referenced by getResignedAddress(), setElementType(), and withElementType().

◆ invalid()

Address clang::CodeGen::Address::invalid ( )
inlinestatic

Definition at line 176 of file Address.h.

References Address().

Referenced by castToBase(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitArraySectionExpr(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitCXXPseudoDestructorExpr(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), emitDeclTargetVarDeclLValue(), clang::CodeGen::CGOpenMPRuntime::emitDependClause(), clang::CodeGen::CGOpenMPRuntime::emitDepobjDependClause(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCIsaExpr(), EmitOMPAggregateInit(), clang::CodeGen::CodeGenFunction::EmitOMPCopyinClause(), clang::CodeGen::CodeGenFunction::EmitOMPInteropDirective(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPSimdFinal(), clang::CodeGen::CodeGenFunction::EmitOMPTaskBasedDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), emitOutlinedFunctionPrologue(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), emitPointerArithmetic(), clang::CodeGen::CodeGenFunction::EmitPointerToDataMemberBinaryExpr(), clang::CodeGen::CGOpenMPRuntime::emitPrivateReduction(), emitReduceInitFunction(), clang::CodeGen::CodeGenFunction::EmitReturnValueCheck(), emitScanBasedDirective(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), clang::CodeGen::CGOpenMPRuntime::emitTaskCall(), emitTaskDupFunction(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), clang::CodeGen::CGOpenMPRuntime::emitTaskwaitCall(), clang::CodeGen::emitVoidPtrDirectVAArg(), clang::CodeGen::CodeGenFunction::FinishFunction(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPRuntimeGPU::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPSIMDRuntime::getAddressOfLocalVariable(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddressOfLocalVariable(), clang::CodeGen::AggValueSlot::ignored(), clang::CodeGen::CGCXXABI::InitializeArrayCookie(), clang::CodeGen::CodeGenFunction::InlinedInheritingConstructorScope::InlinedInheritingConstructorScope(), clang::CodeGen::LValue::MakeGlobalReg(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), clang::CodeGen::CodeGenFunction::pushLifetimeExtendedDestroy(), clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr(), and clang::CodeGen::CodeGenFunction::StartFunction().

◆ isKnownNonNull()

KnownNonNull_t clang::CodeGen::Address::isKnownNonNull ( ) const
inline

Whether the pointer is known not to be null.

Definition at line 233 of file Address.h.

References isValid().

Referenced by Address(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), getResignedAddress(), withAlignment(), and withElementType().

◆ isSigned()

bool clang::CodeGen::Address::isSigned ( ) const
inline

Definition at line 230 of file Address.h.

Referenced by emitRawPointer(), and getPointerIfNotSigned().

◆ isValid()

◆ replaceBasePointer()

void clang::CodeGen::Address::replaceBasePointer ( llvm::Value * P)
inline

This function is used in situations where the caller is doing some sort of opaque "laundering" of the pointer.

Definition at line 186 of file Address.h.

References isValid().

Referenced by clang::CodeGen::CodeGenFunction::mergeAddressesInConditionalExpr().

◆ setAlignment()

void clang::CodeGen::Address::setAlignment ( CharUnits Value)
inline

◆ setElementType()

void clang::CodeGen::Address::setElementType ( llvm::Type * Ty)
inline

Definition at line 224 of file Address.h.

References hasOffset().

◆ setKnownNonNull()

Address clang::CodeGen::Address::setKnownNonNull ( )
inline

◆ setPointerAuthInfo()

void clang::CodeGen::Address::setPointerAuthInfo ( const CGPointerAuthInfo & Info)
inline

◆ withAlignment()

Address clang::CodeGen::Address::withAlignment ( CharUnits NewAlignment) const
inline

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

Definition at line 269 of file Address.h.

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

Referenced by CheckAtomicAlignment(), and emitOutlinedFunctionPrologue().

◆ withElementType()

Address clang::CodeGen::Address::withElementType ( llvm::Type * ElemTy) const
inline

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

Definition at line 276 of file Address.h.

References Address(), getAlignment(), getBasePointer(), getPointerAuthInfo(), hasOffset(), and isKnownNonNull().

Referenced by castValueToType(), CheckAggExprForMemSetUse(), complexTempStructure(), CreateCoercedLoad(), clang::CodeGen::CodeGenFunction::CreateCoercedStore(), createUnnamedGlobalForMemcpyFrom(), clang::CodeGen::CodeGenFunction::defaultInitNonTrivialCStructVar(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::EmitAnyExprToExn(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::emitArrayLength(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), EmitAtomicCmpXchg128ForMSIntrin(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::ReductionCodeGen::emitCleanups(), clang::CodeGen::CodeGenFunction::EmitCommonNeonBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitHexagonBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNonZeroVLAInit(), EmitNullBaseClassInitialization(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPUseDeviceAddrClause(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), emitReduceCombFunction(), emitReduceInitFunction(), clang::CodeGen::emitVoidPtrDirectVAArg(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::GetAddressOfDerivedClass(), clang::CodeGen::CGOpenMPRuntime::getDepobjElements(), clang::CodeGen::CodeGenFunction::InitializeVTablePointer(), performTypeAdjustment(), and clang::CodeGen::CGCXXABI::ReadArrayCookie().

◆ withPointer()

Address clang::CodeGen::Address::withPointer ( llvm::Value * NewPointer,
KnownNonNull_t IsKnownNonNull ) const
inline

◆ CGBuilderTy

friend class CGBuilderTy
friend

Definition at line 129 of file Address.h.

References CGBuilderTy.

Referenced by CGBuilderTy.


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