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 isGlobalReg () 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)
ARCPreciseLifetime_t isARCPreciseLifetime () const
void setARCPreciseLifetime (ARCPreciseLifetime_t value)
bool isObjCWeak () const
bool isObjCStrong () const
bool isVolatile () const
ExprgetBaseIvarExp () const
void setBaseIvarExp (Expr *V)
QualType getTBAABaseType () const
void setTBAABaseType (QualType T)
uint64_t getTBAAOffset () const
void setTBAAOffset (uint64_t O)
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::ValuegetBitFieldAddr () const
const CGBitFieldInfogetBitFieldInfo () const
llvm::ValuegetGlobalReg () const
RValue asAggregateRValue () const

Static Public Member Functions

static LValue MakeAddr (llvm::Value *address, QualType type, CharUnits alignment, ASTContext &Context, llvm::MDNode *TBAAInfo=nullptr)
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 *Addr, const CGBitFieldInfo &Info, QualType type, CharUnits Alignment)
 Create a new object to represent a bit-field access.
static LValue MakeGlobalReg (llvm::Value *Reg, QualType type, CharUnits Alignment)

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


Member Function Documentation

Definition at line 264 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::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCapturedStmt(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitObjCIsaExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructSetterCall(), EmitTypeidFromVTable(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CodeGenFunction::EmitVAListRef(), emitWriteback(), emitWritebackArg(), clang::CodeGen::AggValueSlot::forLValue(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtArgument(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), and tryEmitARCRetainLoadOfScalar().

Definition at line 258 of file CGValue.h.

References clang::Qualifiers::getAddressSpace().

Definition at line 243 of file CGValue.h.

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

llvm::Constant* clang::CodeGen::LValue::getExtVectorElts ( ) const [inline]
const Qualifiers& clang::CodeGen::LValue::getQuals ( ) const [inline]

Definition at line 256 of file CGValue.h.

llvm::MDNode* clang::CodeGen::LValue::getTBAAInfo ( ) const [inline]
uint64_t clang::CodeGen::LValue::getTBAAOffset ( ) const [inline]

Definition at line 216 of file CGValue.h.

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

Definition at line 213 of file CGValue.h.

Referenced by setObjCGCLValueClass().

Definition at line 199 of file CGValue.h.

References clang::Qualifiers::hasRestrict().

Definition at line 222 of file CGValue.h.

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

static LValue clang::CodeGen::LValue::MakeAddr ( llvm::Value address,
QualType  type,
CharUnits  alignment,
ASTContext Context,
llvm::MDNode *  TBAAInfo = nullptr 
) [inline, static]
static LValue clang::CodeGen::LValue::MakeBitfield ( llvm::Value Addr,
const CGBitFieldInfo Info,
QualType  type,
CharUnits  Alignment 
) [inline, static]

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

Parameters:
Addr- The base address of the bit-field sequence this bit-field refers to.
Info- The information describing how to perform the bit-field access.

Definition at line 333 of file CGValue.h.

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

Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField(), 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::MakeGlobalReg ( llvm::Value Reg,
QualType  type,
CharUnits  Alignment 
) [inline, static]

Definition at line 344 of file CGValue.h.

References clang::QualType::getQualifiers().

Referenced by EmitGlobalNamedRegister().

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]

Definition at line 261 of file CGValue.h.

References clang::CharUnits::getQuantity().

Referenced by EmitAggMemberInitializer().

Definition at line 244 of file CGValue.h.

Referenced by setObjCGCLValueClass().

Definition at line 220 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 214 of file CGValue.h.

Referenced by setObjCGCLValueClass().

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

Definition at line 211 of file CGValue.h.

Referenced by setObjCGCLValueClass().

Definition at line 247 of file CGValue.h.

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

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

Definition at line 253 of file CGValue.h.

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

void clang::CodeGen::LValue::setTBAAOffset ( uint64_t  O) [inline]

Definition at line 250 of file CGValue.h.

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

Definition at line 223 of file CGValue.h.

Referenced by setObjCGCLValueClass().


Member Data Documentation

Definition at line 127 of file CGValue.h.

Referenced by getBitFieldInfo(), and MakeBitfield().

Definition at line 124 of file CGValue.h.

Referenced by getExtVectorElts(), and MakeExtVectorElt().

Definition at line 121 of file CGValue.h.

Referenced by getVectorIdx(), and MakeVectorElt().


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