clang  8.0.0svn
Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::Address Class Reference

An aligned address. More...

#include "/opt/doxygen-docs/src/llvm/tools/clang/lib/CodeGen/Address.h"

Inheritance diagram for clang::CodeGen::Address:
Inheritance graph
[legend]

Public Member Functions

 Address (llvm::Value *pointer, CharUnits alignment)
 
bool isValid () const
 
llvm::ValuegetPointer () const
 
llvm::PointerType * getType () const
 Return the type of the pointer value. More...
 
llvm::TypegetElementType () const
 Return the type of the values stored in this address. More...
 
unsigned getAddressSpace () const
 Return the address space that this address resides in. More...
 
llvm::StringRef getName () const
 Return the IR name of the pointer value. More...
 
CharUnits getAlignment () const
 Return the alignment of this pointer. More...
 

Static Public Member Functions

static Address invalid ()
 

Detailed Description

An aligned address.

Definition at line 25 of file Address.h.

Constructor & Destructor Documentation

◆ Address()

clang::CodeGen::Address::Address ( llvm::Value pointer,
CharUnits  alignment 
)
inline

Definition at line 29 of file Address.h.

References clang::CharUnits::isZero().

Referenced by invalid().

Member Function Documentation

◆ getAddressSpace()

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

◆ getAlignment()

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

Return the alignment of this pointer.

Definition at line 67 of file Address.h.

References isValid().

Referenced by 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(), clang::CodeGen::ConstantAddress::castImpl(), CreateCoercedLoad(), CreateCoercedStore(), createLoadInstBefore(), clang::CodeGen::CGBuilderTy::CreateMemCpy(), clang::CodeGen::CGBuilderTy::CreateMemMove(), clang::CodeGen::CGBuilderTy::CreateMemSet(), clang::CodeGen::CGBuilderTy::CreateStore(), createStoreInstBefore(), clang::CodeGen::CodeGenFunction::CXXDefaultInitExprScope::CXXDefaultInitExprScope(), EmitArrayDelete(), clang::CodeGen::CodeGenFunction::emitArrayLength(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), emitArraySubscriptGEP(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberDataPointerAddress(), clang::CodeGen::CodeGenFunction::emitDestroy(), clang::CodeGen::CodeGenFunction::EmitFieldAnnotations(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNonZeroVLAInit(), EmitNullBaseClassInitialization(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsOutlinedFunction(), clang::CodeGen::AggValueSlot::forAddr(), forConstantArrayExpansion(), clang::CodeGen::CodeGenFunction::ParamValue::forIndirect(), clang::CodeGen::RValue::getAggregate(), clang::CodeGen::ConstantAddress::getBitCast(), clang::CodeGen::getOrCreateThreadPrivateCache(), hasDefaultCXXMethodCC(), clang::CodeGen::CodeGenFunction::InitTempAlloca(), isTrivialFiller(), clang::CodeGen::LValue::MakeBitfield(), clang::CodeGen::LValue::MakeExtVectorElt(), clang::CodeGen::LValue::MakeGlobalReg(), clang::CodeGen::LValue::MakeVectorElt(), clang::CodeGen::DominatingValue< Address >::save(), clang::CodeGen::EHCleanupScope::setActiveFlag(), clang::CodeGen::LValue::setAddress(), clang::CodeGen::CodeGenFunction::setBeforeOutermostConditional(), and shuffleAndStore().

◆ getElementType()

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

Return the type of the values stored in this address.

When IR pointer types lose their element type, we should simply store it in Address instead for the convenience of writing code.

Definition at line 52 of file Address.h.

References getType().

Referenced by castToBase(), CreateCoercedLoad(), emitARCLoadOperation(), emitARCStoreOperation(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrongCall(), clang::CodeGen::CodeGenFunction::emitArrayLength(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), EmitCheckedMixedSignMultiply(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitNullInitialization(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), EmitOMPAggregateInit(), emitOMPArraySectionBase(), clang::CodeGen::CodeGenFunction::EmitOMPArraySectionExpr(), emitReductionListCopy(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), emitVoidPtrDirectVAArg(), emitWriteback(), EnterStructPointerForCoercedAccess(), clang::CodeGen::CodeGenFunction::GetAddressOfDirectBaseInCompleteClass(), getNullForVariable(), clang::CodeGen::getOrCreateThreadPrivateCache(), isSimpleZero(), performTypeAdjustment(), and tryEmitARCCopyWeakInit().

◆ getName()

llvm::StringRef clang::CodeGen::Address::getName ( ) const
inline

Return the IR name of the pointer value.

Definition at line 62 of file Address.h.

References getPointer().

Referenced by clang::CodeGen::registerTargetGlobalVariable().

◆ getPointer()

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

Definition at line 38 of file Address.h.

References isValid().

Referenced by addIfPresent(), clang::CodeGen::ReductionCodeGen::adjustPrivateAddress(), ApplyNonVirtualAndVirtualOffset(), clang::CodeGen::ConstantAddress::castImpl(), castToBase(), createLoadInstBefore(), clang::CodeGen::CGBuilderTy::CreateMemCpy(), clang::CodeGen::CGBuilderTy::CreateMemMove(), clang::CodeGen::CGBuilderTy::CreateMemSet(), clang::CodeGen::CGBuilderTy::CreateStore(), createStoreInstBefore(), clang::CodeGen::CodeGenFunction::CXXDefaultInitExprScope::CXXDefaultInitExprScope(), destroyOptimisticNormalEntry(), clang::CodeGen::CodeGenFunction::EmitAnyExprToExn(), emitARCCopyOperation(), clang::CodeGen::CodeGenFunction::EmitARCDestroyWeak(), emitARCLoadOperation(), emitARCStoreOperation(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrongCall(), EmitArrayDelete(), clang::CodeGen::CodeGenFunction::emitArrayLength(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), emitArraySubscriptGEP(), emitAtomicCmpXchg(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), EmitAtomicOp(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCheckValue(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), emitCXXDestructor(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::emitDestroy(), EmitDestroyingObjectDelete(), clang::CodeGen::CodeGenFunction::EmitDynamicCast(), clang::CodeGen::CodeGenFunction::EmitFieldAnnotations(), emitForStaticInitCall(), clang::CodeGen::CodeGenFunction::EmitInheritedCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitMemberExpr(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), EmitObjectDelete(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), clang::CodeGen::CGOpenMPRuntime::emitOMPIfClause(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitOutlinedFunctionCall(), emitOutlinedFunctionPrologue(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitParallelCall(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), emitReduceFiniFunction(), emitReductionListCopy(), emitRTtypeidCall(), emitShuffleAndReduceFunction(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), clang::CodeGen::emitTaskInit(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsCall(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitTeamsOutlinedFunction(), clang::CodeGen::emitThreadPrivateVarInit(), EmitTypeidFromVTable(), clang::CodeGen::CGOpenMPRuntime::emitUpdateLocation(), emitVoidPtrDirectVAArg(), emitWriteback(), emitWritebackArg(), enterBlockScope(), EnterNewDeleteCleanup(), findBlockCapturedManagedEntities(), findDominatingStoreToReturnValue(), clang::CodeGen::CodeGenFunction::FinishFunction(), clang::CodeGen::AggValueSlot::forAddr(), forConstantArrayExpansion(), clang::CodeGen::CodeGenFunction::ParamValue::forIndirect(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), clang::CodeGen::CodeGenFunction::GetAddressOfBaseClass(), clang::CodeGen::RValue::getAggregate(), getBadTypeidFn(), clang::CodeGen::ConstantAddress::getBitCast(), getName(), clang::CodeGen::getOrCreateThreadPrivateCache(), clang::CodeGen::ConstantAddress::getPointer(), getType(), hasDefaultCXXMethodCC(), InitCatchParam(), clang::CodeGen::CodeGenFunction::InitTempAlloca(), clang::CodeGen::ConstantAddress::isaImpl(), isTrivialFiller(), isWeakLinkedClass(), clang::CodeGen::LValue::MakeBitfield(), clang::CodeGen::LValue::MakeExtVectorElt(), clang::CodeGen::LValue::MakeGlobalReg(), clang::CodeGen::LValue::MakeVectorElt(), clang::CodeGen::DominatingValue< Address >::needsSaving(), performTypeAdjustment(), pushTemporaryCleanup(), clang::CodeGen::CGCXXABI::ReadArrayCookie(), clang::CodeGen::registerTargetGlobalVariable(), clang::CodeGen::DominatingLLVMValue::save(), clang::CodeGen::DominatingValue< Address >::save(), clang::CodeGen::EHCleanupScope::setActiveFlag(), clang::CodeGen::LValue::setAddress(), clang::CodeGen::CodeGenFunction::setBeforeOutermostConditional(), clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr(), clang::CodeGen::CodeGenFunction::ShouldNullCheckClassCastValue(), shuffleAndStore(), clang::CodeGen::CodeGenFunction::StartFunction(), and tryRemoveRetainOfSelf().

◆ getType()

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

◆ invalid()

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

Definition at line 35 of file Address.h.

References Address().

Referenced by castToBase(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CGOpenMPRuntime::emitCall(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitCXXPseudoDestructorExpr(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), emitDeclTargetLinkVarDeclLValue(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::ABIInfo::EmitMSVAArg(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), emitNumThreadsForTargetDirective(), clang::CodeGen::CodeGenFunction::EmitObjCIsaExpr(), EmitOMPAggregateInit(), clang::CodeGen::CodeGenFunction::EmitOMPArraySectionExpr(), clang::CodeGen::CodeGenFunction::EmitOMPCopyinClause(), clang::CodeGen::CGOpenMPRuntimeNVPTX::emitOutlinedFunctionCall(), emitOutlinedFunctionPrologue(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitPointerToDataMemberBinaryExpr(), emitReductionListCopy(), emitTaskDupFunction(), clang::CodeGen::emitTaskInit(), clang::CodeGen::CGOpenMPRuntime::emitUpdateLocation(), emitVoidPtrDirectVAArg(), EmitX86_64VAArgFromMemory(), clang::CodeGen::CodeGenFunction::FinishFunction(), clang::CodeGen::CGOpenMPRuntimeNVPTX::getAddressOfLocalVariable(), clang::CodeGen::getAddrOfDeclareTargetLink(), clang::CodeGen::CGCXXABI::InitializeArrayCookie(), isBlockVarRef(), isCheapEnoughToEvaluateUnconditionally(), isTrivialFiller(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), and clang::CodeGen::CodeGenFunction::StartFunction().

◆ isValid()

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

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