clang 20.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.
|
inlinestatic |
Definition at line 105 of file CGValue.h.
References clang::CodeGen::Address::emitRawPointer(), and get().
|
inlinestatic |
Definition at line 98 of file CGValue.h.
References first, V, and Vals.
Referenced by clang::CodeGen::CGCXXABI::addImplicitConstructorArgs(), AdjustObjCObjectType(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), commonEmitCXXMemberOrOperatorCall(), convertToType(), createSectionLVal(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), EmitAsmStores(), EmitBinaryAtomic(), EmitBinaryAtomicPost(), EmitCheckedMixedSignMultiply(), EmitCheckedUnsignedMultiplySignedResult(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CGCUDARuntime::EmitCUDAKernelCallExpr(), clang::CodeGen::CGOpenMPRuntime::emitDependClause(), EmitHipStdParUnsupportedBuiltin(), emitInitWithReductionInitializer(), clang::CodeGen::CodeGenFunction::EmitLambdaVLACapture(), EmitLoadOfMatrixLValue(), EmitMSVCRTSetJmp(), emitOMPAtomicRMW(), emitProxyTaskFunction(), emitReductionCombiner(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), emitScanBasedDirective(), emitScanBasedDirectiveDecls(), emitScanBasedDirectiveFinals(), emitStructGetterCall(), emitStructSetterCall(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), emitWriteback(), emitWritebackArg(), EnterNewDeleteCleanup(), clang::CodeGen::CGObjCRuntime::GeneratePossiblySpecializedMessageSend(), get(), getIgnored(), and PerformReturnAdjustment().
|
inlinestatic |
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.
Referenced by clang::CodeGen::LValue::asAggregateRValue(), clang::CodeGen::AggValueSlot::asRValue(), and clang::CodeGen::CallArg::getRValue().
|
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::CallArg::copyInto(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), and getAggregatePointer().
|
inline |
Definition at line 88 of file CGValue.h.
References getAggregateAddress(), and clang::CodeGen::Address::getBasePointer().
|
inlinestatic |
Definition at line 115 of file CGValue.h.
References clang::C, and getComplex().
|
inlinestatic |
Definition at line 108 of file CGValue.h.
References Vals.
Referenced by complexTempStructure(), convertToType(), emitInitWithReductionInitializer(), and getComplex().
|
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(), clang::CodeGen::CallArg::copyInto(), and EmitAtomicUpdateValue().
|
inlinestatic |
Definition at line 93 of file CGValue.h.
References get().
Referenced by clang::CodeGen::AggValueSlot::asRValue(), 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::CallArg::copyInto(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), emitOMPSimdDirective(), emitSimdlenSafelenClause(), emitWritebackArg(), PerformReturnAdjustment(), and tryEmitARCRetainLoadOfScalar().
|
inline |
Definition at line 66 of file CGValue.h.
Referenced by convertToScalarValue(), getAggregateAddress(), and clang::CodeGen::CallArg::isAggregate().
|
inline |
Definition at line 65 of file CGValue.h.
Referenced by convertToComplexValue(), clang::CodeGen::CallArg::copyInto(), and EmitAtomicUpdateValue().
|
inline |
Definition at line 64 of file CGValue.h.
Referenced by convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CallArg::copyInto(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), EmitAtomicUpdateValue(), emitWritebackArg(), and getScalarVal().
|
inline |
Definition at line 68 of file CGValue.h.
Referenced by clang::CodeGen::CallArg::copyInto().
|
friend |
Address clang::CodeGen::RValue::AggregateAddr |
Definition at line 55 of file CGValue.h.
Referenced by getAggregate(), and getAggregateAddress().
llvm::Value* clang::CodeGen::RValue::first |
llvm::Value* clang::CodeGen::RValue::second |
Definition at line 51 of file CGValue.h.
Referenced by emitOMPAtomicCaptureExpr().
struct { ... } clang::CodeGen::RValue::Vals |
Referenced by get(), getComplex(), getComplexVal(), and getScalarVal().