clang API Documentation
#include <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. | |
std::pair< llvm::Value *, llvm::Value * > | getComplexVal () const |
llvm::Value * | getAggregateAddr () const |
getAggregateAddr() - Return the Value* of the address of the aggregate. | |
Static Public Member Functions | |
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 (llvm::Value *V, bool Volatile=false) |
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.
static RValue clang::CodeGen::RValue::get | ( | llvm::Value * | V | ) | [inline, static] |
Definition at line 70 of file CGValue.h.
Referenced by AddDirectArgument(), AdjustRelatedResultType(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::convertTempToRValue(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), 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::EmitCallExpr(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CGCUDARuntime::EmitCUDAKernelCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitCXXOperatorMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDeleteCall(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaDelegatingInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructGetterCall(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), emitWriteback(), emitWritebackArg(), EnterNewDeleteCleanup(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), clang::CodeGen::CodeGenFunction::GetUndefRValue(), clang::CodeGen::CodeGenFunction::InitCapturedStruct(), PerformReturnAdjustment(), and tryEmitARCRetainPseudoObject().
static RValue clang::CodeGen::RValue::getAggregate | ( | llvm::Value * | V, |
bool | Volatile = false |
||
) | [inline, static] |
Definition at line 91 of file CGValue.h.
Referenced by clang::CodeGen::LValue::asAggregateRValue(), clang::CodeGen::AggValueSlot::asRValue(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), and clang::CodeGen::CodeGenFunction::GetUndefRValue().
llvm::Value* clang::CodeGen::RValue::getAggregateAddr | ( | ) | const [inline] |
getAggregateAddr() - Return the Value* of the address of the aggregate.
Definition at line 65 of file CGValue.h.
References isAggregate().
Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), and clang::CodeGen::CodeGenFunction::EmitStmtExprLValue().
static RValue clang::CodeGen::RValue::getComplex | ( | llvm::Value * | V1, |
llvm::Value * | V2 | ||
) | [inline, static] |
Definition at line 77 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::convertTempToRValue(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), getComplex(), and clang::CodeGen::CodeGenFunction::GetUndefRValue().
static RValue clang::CodeGen::RValue::getComplex | ( | const std::pair< llvm::Value *, llvm::Value * > & | C | ) | [inline, static] |
Definition at line 85 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 60 of file CGValue.h.
Referenced by EmitInitStoreOfNonAggregate().
llvm::Value* clang::CodeGen::RValue::getScalarVal | ( | ) | const [inline] |
getScalarVal() - Return the Value* of this scalar value.
Definition at line 53 of file CGValue.h.
References isScalar().
Referenced by AdjustRelatedResultType(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitBlockCopyAndAutorelease(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(), EmitInitStoreOfNonAggregate(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), 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(), clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), 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(), clang::CodeGen::GetOpenMPThreadID(), PerformReturnAdjustment(), clang::CodeGen::CodeGenFunction::protectFromPeepholes(), clang::CodeGen::CodeGenFunction::StartFunction(), and tryEmitARCRetainLoadOfScalar().
bool clang::CodeGen::RValue::isAggregate | ( | ) | const [inline] |
Definition at line 48 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCall(), and getAggregateAddr().
bool clang::CodeGen::RValue::isComplex | ( | ) | const [inline] |
Definition at line 47 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall().
bool clang::CodeGen::RValue::isScalar | ( | ) | const [inline] |
Definition at line 46 of file CGValue.h.
Referenced by AdjustRelatedResultType(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallExprLValue(), EmitInitStoreOfNonAggregate(), emitNonNullArgCheck(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExprLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitWritebackArg(), getScalarVal(), and clang::CodeGen::CodeGenFunction::protectFromPeepholes().
bool clang::CodeGen::RValue::isVolatileQualified | ( | ) | const [inline] |
Definition at line 50 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall().