|
clang 22.0.0git
|
RValue - This trivial value class is used to represent the result of an expression that is evaluated. More...
#include "/work/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 | isIgnored () 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 106 of file CGValue.h.
References clang::Addr, get(), and RValue().
|
inlinestatic |
Definition at line 99 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::EmitCUDADeviceKernelCallExpr(), 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(), emitGetParamBuf(), EmitHipStdParUnsupportedBuiltin(), EmitHLSLElementwiseCast(), clang::CodeGen::CodeGenFunction::EmitHLSLOutArgExpr(), EmitHLSLScalarElementwiseAndSplatCasts(), 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 126 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 84 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::EmitHLSLBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitStmtExprLValue(), and getAggregatePointer().
|
inline |
Definition at line 89 of file CGValue.h.
References getAggregateAddress(), and clang::CodeGen::Address::getBasePointer().
|
inlinestatic |
Definition at line 116 of file CGValue.h.
References clang::C, getComplex(), and RValue().
|
inlinestatic |
Definition at line 109 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 79 of file CGValue.h.
References Vals.
Referenced by convertToComplexValue(), convertToScalarValue(), and EmitAtomicUpdateValue().
|
inlinestatic |
Definition at line 94 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 72 of file CGValue.h.
References isScalar(), and Vals.
Referenced by convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitBuiltinNewDeleteCall(), 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(), EmitHLSLElementwiseCast(), EmitHLSLElementwiseCast(), 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(), isIgnored(), 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 67 of file CGValue.h.
References getScalarVal(), and isScalar().
|
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(), EmitHLSLElementwiseCast(), EmitHLSLElementwiseCast(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitWritebackArg(), getScalarVal(), isIgnored(), and clang::CodeGen::CodeGenFunction::protectFromPeepholes().
|
inline |
|
friend |
Definition at line 160 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().