clang 22.0.0git
|
RValue - This trivial value class is used to represent the result of an expression that is evaluated. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGValue.h"
Public Member Functions | |
RValue () | |
bool | isScalar () const |
bool | isComplex () const |
bool | isAggregate () const |
bool | isVolatileQualified () const |
llvm::Value * | getScalarVal () const |
getScalarVal() - Return the Value* of this scalar value. | |
std::pair< llvm::Value *, llvm::Value * > | getComplexVal () const |
getComplexVal - Return the real/imag components of this complex value. | |
Address | getAggregateAddress () const |
getAggregateAddr() - Return the Value* of the address of the aggregate. | |
llvm::Value * | getAggregatePointer (QualType PointeeType, CodeGenFunction &CGF) const |
Static Public Member Functions | |
static RValue | getIgnored () |
static RValue | get (llvm::Value *V) |
static RValue | get (Address Addr, CodeGenFunction &CGF) |
static RValue | getComplex (llvm::Value *V1, llvm::Value *V2) |
static RValue | getComplex (const std::pair< llvm::Value *, llvm::Value * > &C) |
static RValue | getAggregate (Address addr, bool isVolatile=false) |
Convert an Address to an RValue. |
Friends | |
struct | DominatingValue< RValue > |
RValue - This trivial value class is used to represent the result of an expression that is evaluated.
It can be one of three things: either a simple LLVM SSA value, a pair of SSA values for complex numbers, or the address of an aggregate value in memory.
|
inline |
Definition at line 62 of file CGValue.h.
References clang::nullptr, and Vals.
Referenced by get(), get(), getAggregate(), getComplex(), getComplex(), and getIgnored().
|
inlinestatic |
Definition at line 105 of file CGValue.h.
References clang::Addr, get(), and RValue().
|
inlinestatic |
Definition at line 98 of file CGValue.h.
References first, RValue(), V, and Vals.
Referenced by clang::CodeGen::CGCXXABI::addImplicitConstructorArgs(), AdjustObjCObjectType(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::convertTempToRValue(), convertToType(), createSectionLVal(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), clang::CodeGen::CodeGenFunction::EmitAMDGPUDevicePrintfCallExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), EmitAsmStores(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), EmitBinaryAtomic(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitBuiltinAlignTo(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitBuiltinIsAligned(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCallArgs(), EmitCheckedMixedSignMultiply(), EmitCheckedUnsignedMultiplySignedResult(), clang::CodeGen::CodeGenFunction::EmitCoroutineIntrinsic(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CGCUDARuntime::EmitCUDAKernelCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitCXXPseudoDestructorExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CGOpenMPRuntime::emitDependClause(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), EmitHipStdParUnsupportedBuiltin(), clang::CodeGen::CodeGenFunction::EmitHLSLOutArgExpr(), clang::CodeGen::CodeGenFunction::EmitInheritedCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitInitializationToLValue(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), emitInitWithReductionInitializer(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaCallOpBody(), clang::CodeGen::CodeGenFunction::EmitLambdaStaticInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaVLACapture(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), EmitLoadOfMatrixLValue(), EmitMSVCRTSetJmp(), clang::CodeGen::CodeGenFunction::EmitNonNullArgCheck(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), emitOMPAtomicRMW(), clang::CodeGen::CodeGenFunction::emitOMPSimpleStore(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), clang::CodeGen::CGOpenMPRuntime::emitPrivateReduction(), emitProxyTaskFunction(), emitReductionCombiner(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::emitRotate(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), emitScanBasedDirective(), emitScanBasedDirectiveDecls(), emitScanBasedDirectiveFinals(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructGetterCall(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), emitWriteback(), emitWritebackArg(), EnterNewDeleteCleanup(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CodeGen::CGObjCRuntime::GeneratePossiblySpecializedMessageSend(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), get(), getIgnored(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), and PerformReturnAdjustment().
Convert an Address to an RValue.
If the Address is not signed, create an RValue using the unsigned address. Otherwise, resign the address using the provided type.
Definition at line 125 of file CGValue.h.
References AggregateAddr, and RValue().
Referenced by clang::CodeGen::LValue::asAggregateRValue(), clang::CodeGen::AggValueSlot::asRValue(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CallArg::getRValue(), and clang::CodeGen::CodeGenFunction::GetUndefRValue().
|
inline |
getAggregateAddr() - Return the Value* of the address of the aggregate.
Definition at line 83 of file CGValue.h.
References AggregateAddr, and isAggregate().
Referenced by clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitStmtExprLValue(), and getAggregatePointer().
|
inline |
Definition at line 88 of file CGValue.h.
References getAggregateAddress(), and clang::CodeGen::Address::getBasePointer().
Referenced by clang::CodeGen::CodeGenFunction::EmitHLSLBuiltinExpr().
|
inlinestatic |
Definition at line 115 of file CGValue.h.
References clang::C, getComplex(), and RValue().
|
inlinestatic |
Definition at line 108 of file CGValue.h.
References RValue(), and Vals.
Referenced by complexTempStructure(), clang::CodeGen::CodeGenFunction::convertTempToRValue(), convertToType(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCall(), emitInitWithReductionInitializer(), clang::CodeGen::CodeGenFunction::EmitLoadOfAnyValue(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), getComplex(), and clang::CodeGen::CodeGenFunction::GetUndefRValue().
|
inline |
getComplexVal - Return the real/imag components of this complex value.
Definition at line 78 of file CGValue.h.
References Vals.
Referenced by convertToComplexValue(), convertToScalarValue(), and EmitAtomicUpdateValue().
|
inlinestatic |
Definition at line 93 of file CGValue.h.
References get(), and RValue().
Referenced by clang::CodeGen::AggValueSlot::asRValue(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::ABIInfo::EmitMSVAArg(), and emitSuspendExpression().
|
inline |
getScalarVal() - Return the Value* of this scalar value.
Definition at line 71 of file CGValue.h.
References isScalar(), and Vals.
Referenced by convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitCapturedLocals(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitHLSLBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitNonNullRValueCheck(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPush(), emitOMPSimdDirective(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitScalarCompoundAssignWithComplex(), clang::CodeGen::CodeGenFunction::emitScalarConstant(), emitSimdlenSafelenClause(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitWritebackArg(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), PerformReturnAdjustment(), clang::CodeGen::CodeGenFunction::protectFromPeepholes(), clang::CodeGen::CodeGenFunction::StartFunction(), tryEmitARCRetainLoadOfScalar(), and tryEmitARCRetainLoadOfScalar().
|
inline |
Definition at line 66 of file CGValue.h.
Referenced by convertToScalarValue(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), and getAggregateAddress().
|
inline |
Definition at line 65 of file CGValue.h.
Referenced by convertToComplexValue(), EmitAtomicUpdateValue(), and clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall().
|
inline |
Definition at line 64 of file CGValue.h.
Referenced by convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), EmitAtomicUpdateValue(), EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitHLSLBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitWritebackArg(), getScalarVal(), and clang::CodeGen::CodeGenFunction::protectFromPeepholes().
|
inline |
|
friend |
Definition at line 159 of file CGValue.h.
References clang::CodeGen::Decl.
Address clang::CodeGen::RValue::AggregateAddr |
Definition at line 55 of file CGValue.h.
Referenced by getAggregate(), and getAggregateAddress().
llvm::Value* clang::CodeGen::RValue::first |
struct { ... } clang::CodeGen::RValue::Vals |
Referenced by get(), getComplex(), getComplexVal(), getScalarVal(), and RValue().