clang 22.0.0git
|
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 CGPointerAuthInfo & | getPointerAuthInfo () 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 |
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.
|
inlineprotected |
Definition at line 151 of file Address.h.
References clang::nullptr.
Referenced by getResignedAddress(), invalid(), setKnownNonNull(), withAlignment(), withElementType(), and withPointer().
|
inline |
Definition at line 154 of file Address.h.
References clang::CharUnits::isZero(), and clang::CodeGen::NotKnownNonNull.
|
inline |
Definition at line 163 of file Address.h.
References clang::CodeGen::NotKnownNonNull.
|
inline |
Definition at line 169 of file Address.h.
References getAlignment(), getElementType(), isKnownNonNull(), isValid(), clang::CodeGen::NotKnownNonNull, clang::nullptr, and clang::Zero.
|
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().
|
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().
|
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().
|
inline |
Definition at line 198 of file Address.h.
References isValid().
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCoroutineBody(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), emitPointerArithmetic(), emitRawPointer(), clang::CodeGen::LValue::emitResignedPointer(), emitWriteback(), emitWritebackArg(), findDominatingStoreToReturnValue(), clang::CodeGen::RValue::getAggregatePointer(), clang::CodeGen::CodeGenFunction::getAsNaturalPointerTo(), getResignedAddress(), clang::CodeGen::CodeGenFunction::mergeAddressesInConditionalExpr(), clang::CodeGen::DominatingValue< Address >::needsSaving(), clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal(), clang::CodeGen::DominatingValue< Address >::save(), tryRemoveRetainOfSelf(), and withElementType().
|
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().
|
inline |
Return the IR name of the pointer value.
Definition at line 218 of file Address.h.
Referenced by CreateCoercedLoad(), clang::CodeGen::CodeGenFunction::emitAddrOfImagComponent(), clang::CodeGen::CodeGenFunction::emitAddrOfRealComponent(), clang::CodeGen::CodeGenFunction::EmitCall(), and clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal().
|
inline |
Definition at line 246 of file Address.h.
Referenced by clang::CodeGen::DominatingValue< Address >::needsSaving(), and clang::CodeGen::DominatingValue< Address >::save().
|
inline |
Definition at line 220 of file Address.h.
Referenced by getResignedAddress(), and withElementType().
|
inline |
Definition at line 179 of file Address.h.
References isSigned(), and isValid().
Referenced by clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction().
Address Address::getResignedAddress | ( | const CGPointerAuthInfo & | NewInfo, |
CodeGenFunction & | CGF ) const |
Definition at line 721 of file CGPointerAuth.cpp.
References Address(), clang::CodeGen::CodeGenFunction::emitPointerAuthResign(), getAlignment(), getBasePointer(), getElementType(), getPointerAuthInfo(), hasOffset(), isKnownNonNull(), clang::CodeGen::CGPointerAuthInfo::isSigned(), and isValid().
Referenced by clang::CodeGen::CodeGenFunction::authPointerToPointerCast().
|
inline |
Return the type of the pointer value.
Definition at line 204 of file Address.h.
Referenced by clang::CodeGen::ReductionCodeGen::adjustPrivateAddress(), castToBase(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAMDGPUBuiltinExpr(), emitARCCopyOperation(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::ReductionCodeGen::emitInitialization(), clang::CodeGen::emitMergePHI(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNonZeroVLAInit(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPTaskgroupDirective(), clang::CodeGen::CodeGenFunction::EmitOMPTaskLoopBasedDirective(), emitOutlinedFunctionPrologue(), EmitPointerWithAlignment(), emitPseudoObjectExpr(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitUpdateClause(), clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), getAddressSpace(), clang::CodeGen::CodeGenFunction::mergeAddressesInConditionalExpr(), clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal(), and clang::CodeGen::DominatingValue< Address >::save().
|
inline |
Definition at line 244 of file Address.h.
Referenced by getResignedAddress(), setElementType(), and withElementType().
|
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().
|
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().
|
inline |
Definition at line 230 of file Address.h.
Referenced by emitRawPointer(), and getPointerIfNotSigned().
|
inline |
Definition at line 177 of file Address.h.
Referenced by Address(), castToBase(), CheckAggExprForMemSetUse(), clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCapturedLocals(), EmitCleanup(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitPointerAuthInfo(), emitPrivatesInit(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), clang::CodeGen::AggValueSlot::forAddr(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), getBasePointer(), getElementType(), getPointerIfNotSigned(), getResignedAddress(), isKnownNonNull(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), replaceBasePointer(), and setKnownNonNull().
|
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().
|
inline |
Definition at line 196 of file Address.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), and clang::CodeGen::CodeGenFunction::mergeAddressesInConditionalExpr().
|
inline |
Definition at line 224 of file Address.h.
References hasOffset().
|
inline |
Definition at line 238 of file Address.h.
References Address(), isValid(), and clang::CodeGen::KnownNonNull.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr(), and clang::CodeGen::AggValueSlot::forAddr().
|
inline |
Definition at line 221 of file Address.h.
Referenced by clang::CodeGen::CodeGenFunction::authPointerToPointerCast().
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().
|
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().
|
inline |
Return address with different pointer, but same element type and alignment.
Definition at line 261 of file Address.h.
References Address(), getAlignment(), and getElementType().
Referenced by castToBase(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CGOpenMPRuntime::emitUpdateClause(), and clang::CodeGen::CodeGenFunction::recoverAddrOfEscapedLocal().
|
friend |