clang API Documentation

Public Member Functions | Static Public Member Functions
clang::CodeGen::LValue Class Reference

#include <CGValue.h>

Collaboration diagram for clang::CodeGen::LValue:
Collaboration graph
[legend]

List of all members.

Public Member Functions

bool isSimple () const
bool isVectorElt () const
bool isBitField () const
bool isExtVectorElt () const
bool isVolatileQualified () const
bool isRestrictQualified () const
unsigned getVRQualifiers () const
QualType getType () const
Qualifiers::ObjCLifetime getObjCLifetime () const
bool isObjCIvar () const
void setObjCIvar (bool Value)
bool isObjCArray () const
void setObjCArray (bool Value)
bool isNonGC () const
void setNonGC (bool Value)
bool isGlobalObjCRef () const
void setGlobalObjCRef (bool Value)
bool isThreadLocalRef () const
void setThreadLocalRef (bool Value)
bool isObjCWeak () const
bool isObjCStrong () const
bool isVolatile () const
ExprgetBaseIvarExp () const
void setBaseIvarExp (Expr *V)
llvm::MDNode * getTBAAInfo () const
void setTBAAInfo (llvm::MDNode *N)
const QualifiersgetQuals () const
QualifiersgetQuals ()
unsigned getAddressSpace () const
CharUnits getAlignment () const
void setAlignment (CharUnits A)
llvm::ValuegetAddress () const
void setAddress (llvm::Value *address)
llvm::ValuegetVectorAddr () const
llvm::ValuegetVectorIdx () const
llvm::ValuegetExtVectorAddr () const
llvm::Constant * getExtVectorElts () const
llvm::ValuegetBitFieldBaseAddr () const
const CGBitFieldInfogetBitFieldInfo () const
RValue asAggregateRValue () const

Static Public Member Functions

static LValue MakeAddr (llvm::Value *address, QualType type, CharUnits alignment, ASTContext &Context, llvm::MDNode *TBAAInfo=0)
static LValue MakeVectorElt (llvm::Value *Vec, llvm::Value *Idx, QualType type, CharUnits Alignment)
static LValue MakeExtVectorElt (llvm::Value *Vec, llvm::Constant *Elts, QualType type, CharUnits Alignment)
static LValue MakeBitfield (llvm::Value *BaseValue, const CGBitFieldInfo &Info, QualType type)
 Create a new object to represent a bit-field access.

Detailed Description

LValue - This represents an lvalue references. Because C/C++ allow bitfields, this is not a simple LLVM pointer, it may be a pointer plus a bitrange.

Definition at line 103 of file CGValue.h.


Member Function Documentation

RValue clang::CodeGen::LValue::asAggregateRValue ( ) const [inline]
llvm::Value* clang::CodeGen::LValue::getAddress ( ) const [inline]

Definition at line 230 of file CGValue.h.

References isSimple().

Referenced by asAggregateRValue(), drillIntoBlockVariable(), EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitComplexPrePostIncDec(), clang::CodeGen::CodeGenFunction::EmitConditionalOperatorLValue(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), EmitExprForReferenceBinding(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForAnonRecordField(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitNullInitializationLValue(), clang::CodeGen::CodeGenFunction::EmitObjCIsaExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructSetterCall(), EmitTypeidFromVTable(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CodeGenFunction::EmitVAListRef(), clang::CodeGen::AggValueSlot::forLValue(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), and tryEmitARCRetainLoadOfScalar().

unsigned clang::CodeGen::LValue::getAddressSpace ( ) const [inline]

Definition at line 224 of file CGValue.h.

References clang::Qualifiers::getAddressSpace().

CharUnits clang::CodeGen::LValue::getAlignment ( ) const [inline]
Expr* clang::CodeGen::LValue::getBaseIvarExp ( ) const [inline]

Definition at line 215 of file CGValue.h.

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

llvm::Value* clang::CodeGen::LValue::getBitFieldBaseAddr ( ) const [inline]
const CGBitFieldInfo& clang::CodeGen::LValue::getBitFieldInfo ( ) const [inline]
llvm::Value* clang::CodeGen::LValue::getExtVectorAddr ( ) const [inline]
llvm::Constant* clang::CodeGen::LValue::getExtVectorElts ( ) const [inline]
Qualifiers::ObjCLifetime clang::CodeGen::LValue::getObjCLifetime ( ) const [inline]
const Qualifiers& clang::CodeGen::LValue::getQuals ( ) const [inline]
Qualifiers& clang::CodeGen::LValue::getQuals ( ) [inline]

Definition at line 222 of file CGValue.h.

llvm::MDNode* clang::CodeGen::LValue::getTBAAInfo ( ) const [inline]
QualType clang::CodeGen::LValue::getType ( ) const [inline]
llvm::Value* clang::CodeGen::LValue::getVectorAddr ( ) const [inline]
llvm::Value* clang::CodeGen::LValue::getVectorIdx ( ) const [inline]
unsigned clang::CodeGen::LValue::getVRQualifiers ( ) const [inline]
bool clang::CodeGen::LValue::isBitField ( ) const [inline]
bool clang::CodeGen::LValue::isExtVectorElt ( ) const [inline]
bool clang::CodeGen::LValue::isGlobalObjCRef ( ) const [inline]
bool clang::CodeGen::LValue::isNonGC ( ) const [inline]

Definition at line 195 of file CGValue.h.

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

bool clang::CodeGen::LValue::isObjCArray ( ) const [inline]

Definition at line 192 of file CGValue.h.

Referenced by setObjCGCLValueClass().

bool clang::CodeGen::LValue::isObjCIvar ( ) const [inline]
bool clang::CodeGen::LValue::isObjCStrong ( ) const [inline]
bool clang::CodeGen::LValue::isObjCWeak ( ) const [inline]
bool clang::CodeGen::LValue::isRestrictQualified ( ) const [inline]

Definition at line 178 of file CGValue.h.

References clang::Qualifiers::hasRestrict().

bool clang::CodeGen::LValue::isSimple ( ) const [inline]
bool clang::CodeGen::LValue::isThreadLocalRef ( ) const [inline]

Definition at line 201 of file CGValue.h.

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

bool clang::CodeGen::LValue::isVectorElt ( ) const [inline]
bool clang::CodeGen::LValue::isVolatile ( ) const [inline]
bool clang::CodeGen::LValue::isVolatileQualified ( ) const [inline]
static LValue clang::CodeGen::LValue::MakeAddr ( llvm::Value address,
QualType  type,
CharUnits  alignment,
ASTContext Context,
llvm::MDNode *  TBAAInfo = 0 
) [inline, static]
static LValue clang::CodeGen::LValue::MakeBitfield ( llvm::Value BaseValue,
const CGBitFieldInfo Info,
QualType  type 
) [inline, static]

Create a new object to represent a bit-field access.

Parameters:
BaseValue- The base address of the structure containing the bit-field.
Info- The information describing how to perform the bit-field access.

Definition at line 296 of file CGValue.h.

References BitFieldInfo, and clang::QualType::getQualifiers().

Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForBitfield(), and clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset().

static LValue clang::CodeGen::LValue::MakeExtVectorElt ( llvm::Value Vec,
llvm::Constant *  Elts,
QualType  type,
CharUnits  Alignment 
) [inline, static]
static LValue clang::CodeGen::LValue::MakeVectorElt ( llvm::Value Vec,
llvm::Value Idx,
QualType  type,
CharUnits  Alignment 
) [inline, static]
void clang::CodeGen::LValue::setAddress ( llvm::Value address) [inline]
void clang::CodeGen::LValue::setAlignment ( CharUnits  A) [inline]

Definition at line 227 of file CGValue.h.

References clang::CharUnits::getQuantity().

Referenced by EmitAggMemberInitializer().

void clang::CodeGen::LValue::setBaseIvarExp ( Expr V) [inline]

Definition at line 216 of file CGValue.h.

Referenced by setObjCGCLValueClass().

void clang::CodeGen::LValue::setGlobalObjCRef ( bool  Value) [inline]

Definition at line 199 of file CGValue.h.

Referenced by setObjCGCLValueClass().

void clang::CodeGen::LValue::setNonGC ( bool  Value) [inline]
void clang::CodeGen::LValue::setObjCArray ( bool  Value) [inline]

Definition at line 193 of file CGValue.h.

Referenced by setObjCGCLValueClass().

void clang::CodeGen::LValue::setObjCIvar ( bool  Value) [inline]

Definition at line 190 of file CGValue.h.

Referenced by setObjCGCLValueClass().

void clang::CodeGen::LValue::setTBAAInfo ( llvm::MDNode *  N) [inline]

Definition at line 219 of file CGValue.h.

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

void clang::CodeGen::LValue::setThreadLocalRef ( bool  Value) [inline]

Definition at line 202 of file CGValue.h.

Referenced by setObjCGCLValueClass().


Member Data Documentation

Definition at line 121 of file CGValue.h.

Referenced by getBitFieldInfo(), and MakeBitfield().

Definition at line 118 of file CGValue.h.

Referenced by getExtVectorElts(), and MakeExtVectorElt().

Definition at line 115 of file CGValue.h.

Referenced by getVectorIdx(), and MakeVectorElt().


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