clang 8.0.0

Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::RValue Class Reference

RValue - This trivial value class is used to represent the result of an expression that is evaluated. More...

`#include "/work/www-prereleases/8.0.0/rc2/builddocs/llvm.src/tools/clang/lib/CodeGen/CGValue.h"`

## Public Member Functions
bool | isScalar () const
bool | isComplex () const
bool | isAggregate () const
bool | isVolatileQualified () const
llvm::Value * | getScalarVal () const
| getScalarVal() - Return the Value* of this scalar value. More...
std::pair< llvm::Value *, llvm::Value * > | getComplexVal () const
| getComplexVal - Return the real/imag components of this complex value. More...
Address | getAggregateAddress () const
| getAggregateAddr() - Return the Value* of the address of the aggregate. More...
llvm::Value * | getAggregatePointer () const

## Static Public Member Functions
static RValue | getIgnored ()
static RValue | get (llvm::Value *V)
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)

## Detailed Description

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.

Definition at line 39 of file CGValue.h.

## Member Function Documentation

## ◆ get()

static RValue clang::CodeGen::RValue::get | ( | llvm::Value * | V | ) |
| inline static

Definition at line 86 of file CGValue.h.

Referenced by AddDirectArgument(), AdjustObjCObjectType(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::convertTempToRValue(), convertToType(), clang::CodeGen::ReductionCodeGen::emitAggregateType(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), EmitBinaryAtomic(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), EmitCheckedMixedSignMultiply(), clang::CodeGen::CodeGenFunction::EmitCoroutineIntrinsic(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CGCUDARuntime::EmitCUDAKernelCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), emitCXXDestructor(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitInheritedCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), emitInitWithReductionInitializer(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaDelegatingInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitNVPTXDevicePrintfCallExpr(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::emitOMPSimpleStore(), emitProxyTaskFunction(), emitReductionCombiner(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), emitWriteback(), emitWritebackArg(), EnterNewDeleteCleanup(), forConstantArrayExpansion(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), GetIntrinsic(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), getUsualDeleteParams(), hasDefaultCXXMethodCC(), isSimpleZero(), isWeakLinkedClass(), PerformReturnAdjustment(), performTypeAdjustment(), and shouldEmitSeparateBlockRetain().

## ◆ getAggregate()

static RValue clang::CodeGen::RValue::getAggregate | ( | Address | addr,
|  | bool | isVolatile = `false`
| ) |  |
| inline static

Definition at line 107 of file CGValue.h.

References clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), and clang::CharUnits::getQuantity().

Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), findPeephole(), forConstantArrayExpansion(), clang::CodeGen::CallArg::getRValue(), and clang::CodeGen::CodeGenFunction::GetUndefRValue().

## ◆ getAggregateAddress()

Address clang::CodeGen::RValue::getAggregateAddress | ( |  | ) | const
| inline

getAggregateAddr() - Return the Value* of the address of the aggregate.

Definition at line 71 of file CGValue.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitStmtExprLValue(), and forConstantArrayExpansion().

## ◆ getAggregatePointer()

llvm::Value* clang::CodeGen::RValue::getAggregatePointer | ( |  | ) | const
| inline

Definition at line 76 of file CGValue.h.

## ◆ getComplex() [1/2]

static RValue clang::CodeGen::RValue::getComplex | ( | llvm::Value * | V1,
|  | llvm::Value * | V2
| ) |  |
| inline static

Definition at line 93 of file CGValue.h.

References Complex.

Referenced by clang::CodeGen::CodeGenFunction::convertTempToRValue(), convertToType(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), and clang::CodeGen::CodeGenFunction::GetUndefRValue().

## ◆ getComplex() [2/2]

static RValue clang::CodeGen::RValue::getComplex | ( | const std::pair< llvm::Value *, llvm::Value *> & | C | ) |
| inline static

Definition at line 101 of file CGValue.h.

## ◆ getComplexVal()

std::pair<llvm::Value *, llvm::Value *> clang::CodeGen::RValue::getComplexVal | ( |  | ) | const
| inline

getComplexVal - Return the real/imag components of this complex value.

Definition at line 66 of file CGValue.h.

Referenced by convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), EmitAtomicUpdateValue(), and forConstantArrayExpansion().

## ◆ getIgnored()

static RValue clang::CodeGen::RValue::getIgnored | ( |  | ) |
| inline static

Definition at line 81 of file CGValue.h.

## ◆ getScalarVal()

llvm::Value* clang::CodeGen::RValue::getScalarVal | ( |  | ) | const
| inline

getScalarVal() - Return the Value* of this scalar value.

Definition at line 59 of file CGValue.h.

Referenced by AddVariableConstraints(), AdjustObjCObjectType(), convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitBlockCopyAndAutorelease(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitNonNullArgCheck(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPush(), emitSimdlenSafelenClause(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitWritebackArg(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), PerformReturnAdjustment(), clang::CodeGen::CodeGenFunction::protectFromPeepholes(), clang::CodeGen::CodeGenFunction::StartFunction(), and tryEmitARCRetainLoadOfScalar().

## ◆ isAggregate()

bool clang::CodeGen::RValue::isAggregate | ( |  | ) | const
| inline

Definition at line 54 of file CGValue.h.

Referenced by convertToScalarValue(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), and clang::CodeGen::CodeGenFunction::EmitAtomicStore().

## ◆ isComplex()

bool clang::CodeGen::RValue::isComplex | ( |  | ) | const
| inline

Definition at line 53 of file CGValue.h.

References Complex.

Referenced by convertToComplexValue(), EmitAtomicUpdateValue(), and clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall().

## ◆ isScalar()

bool clang::CodeGen::RValue::isScalar | ( |  | ) | const
| inline

Definition at line 52 of file CGValue.h.

Referenced by convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitNonNullArgCheck(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitWritebackArg(), and clang::CodeGen::CodeGenFunction::protectFromPeepholes().

## ◆ isVolatileQualified()

bool clang::CodeGen::RValue::isVolatileQualified | ( |  | ) | const
| inline

Definition at line 56 of file CGValue.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicLoad().

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

- lib/CodeGen/CGValue.h