clang  3.9.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 <CGValue.h>

Public Member Functions

bool isScalar () const
 
bool isComplex () const
 
bool isAggregate () const
 
bool isVolatileQualified () const
 
llvm::ValuegetScalarVal () 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::ValuegetAggregatePointer () 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 38 of file CGValue.h.

Member Function Documentation

static RValue clang::CodeGen::RValue::get ( llvm::Value V)
inlinestatic

Definition at line 85 of file CGValue.h.

Referenced by AddDirectArgument(), AdjustObjCObjectType(), commonEmitCXXMemberOrOperatorCall(), convertToType(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), EmitBinaryAtomic(), EmitBinaryAtomicPost(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCallArgs(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCUDADevicePrintfCallExpr(), clang::CodeGen::CGCUDARuntime::EmitCUDAKernelCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CodeGenFunction::EmitInheritedCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), emitInitWithReductionInitializer(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaDelegatingInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaExpr(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), emitOMPAtomicRMW(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::emitOMPSimpleStore(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), emitStructGetterCall(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), emitWriteback(), emitWritebackArg(), EnterNewDeleteCleanup(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), clang::CodeGen::CodeGenFunction::InitCapturedStruct(), and PerformReturnAdjustment().

static RValue clang::CodeGen::RValue::getAggregate ( Address  addr,
bool  isVolatile = false 
)
inlinestatic
Address clang::CodeGen::RValue::getAggregateAddress ( ) const
inline
llvm::Value* clang::CodeGen::RValue::getAggregatePointer ( ) const
inline

Definition at line 75 of file CGValue.h.

References isAggregate().

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

static RValue clang::CodeGen::RValue::getComplex ( llvm::Value V1,
llvm::Value V2 
)
inlinestatic
static RValue clang::CodeGen::RValue::getComplex ( const std::pair< llvm::Value *, llvm::Value * > &  C)
inlinestatic

Definition at line 100 of file CGValue.h.

References getComplex().

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 65 of file CGValue.h.

Referenced by convertToComplexValue(), convertToScalarValue(), EmitAtomicUpdateValue(), and EmitInitStoreOfNonAggregate().

static RValue clang::CodeGen::RValue::getIgnored ( )
inlinestatic

Definition at line 80 of file CGValue.h.

Referenced by clang::CodeGen::AggValueSlot::asRValue().

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

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

Definition at line 58 of file CGValue.h.

References isScalar().

Referenced by AdjustObjCObjectType(), convertToComplexValue(), convertToScalarValue(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitBlockCopyAndAutorelease(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(), EmitInitStoreOfNonAggregate(), clang::CodeGen::CodeGenFunction::EmitInlinedInheritingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitNonNullArgCheck(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitObjCMRRAutoreleasePoolPush(), emitOMPAtomicRMW(), emitProxyTaskFunction(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), 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::GenerateOpenMPCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), clang::CodeGen::getThreadID(), PerformReturnAdjustment(), clang::CodeGen::CodeGenFunction::protectFromPeepholes(), clang::CodeGen::CodeGenFunction::StartFunction(), and tryEmitARCRetainLoadOfScalar().

bool clang::CodeGen::RValue::isAggregate ( ) const
inline
bool clang::CodeGen::RValue::isComplex ( ) const
inline
bool clang::CodeGen::RValue::isScalar ( ) const
inline
bool clang::CodeGen::RValue::isVolatileQualified ( ) const
inline

Definition at line 55 of file CGValue.h.

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


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