clang  3.7.0
Public Member Functions | Public Attributes | List of all members
clang::CodeGen::CodeGenModule::ByrefHelpers Class Referenceabstract

A pair of helper functions for a __block variable. More...

#include <CodeGenModule.h>

Inheritance diagram for clang::CodeGen::CodeGenModule::ByrefHelpers:
[legend]
Collaboration diagram for clang::CodeGen::CodeGenModule::ByrefHelpers:
[legend]

Public Member Functions

 ByrefHelpers (CharUnits alignment)
 
virtual ~ByrefHelpers ()
 
void Profile (llvm::FoldingSetNodeID &id) const
 
virtual void profileImpl (llvm::FoldingSetNodeID &id) const =0
 
virtual bool needsCopy () const
 
virtual void emitCopy (CodeGenFunction &CGF, llvm::Value *dest, llvm::Value *src)=0
 
virtual bool needsDispose () const
 
virtual void emitDispose (CodeGenFunction &CGF, llvm::Value *field)=0
 

Public Attributes

llvm::Constant * CopyHelper
 
llvm::Constant * DisposeHelper
 
CharUnits Alignment
 

Detailed Description

A pair of helper functions for a __block variable.

Definition at line 759 of file CodeGenModule.h.

Constructor & Destructor Documentation

clang::CodeGen::CodeGenModule::ByrefHelpers::ByrefHelpers ( CharUnits  alignment)
inline

Definition at line 769 of file CodeGenModule.h.

CodeGenModule::ByrefHelpers::~ByrefHelpers ( )
virtual

Definition at line 43 of file CGBlocks.cpp.

Member Function Documentation

virtual void clang::CodeGen::CodeGenModule::ByrefHelpers::emitCopy ( CodeGenFunction CGF,
llvm::Value dest,
llvm::Value src 
)
pure virtual

Referenced by generateByrefCopyHelper().

virtual void clang::CodeGen::CodeGenModule::ByrefHelpers::emitDispose ( CodeGenFunction CGF,
llvm::Value field 
)
pure virtual
virtual bool clang::CodeGen::CodeGenModule::ByrefHelpers::needsCopy ( ) const
inlinevirtual

Definition at line 778 of file CodeGenModule.h.

Referenced by generateByrefCopyHelper().

virtual bool clang::CodeGen::CodeGenModule::ByrefHelpers::needsDispose ( ) const
inlinevirtual

Definition at line 782 of file CodeGenModule.h.

Referenced by generateByrefDisposeHelper().

void clang::CodeGen::CodeGenModule::ByrefHelpers::Profile ( llvm::FoldingSetNodeID &  id) const
inline

Definition at line 772 of file CodeGenModule.h.

References Alignment, clang::CharUnits::getQuantity(), and profileImpl().

virtual void clang::CodeGen::CodeGenModule::ByrefHelpers::profileImpl ( llvm::FoldingSetNodeID &  id) const
pure virtual

Referenced by Profile().

Member Data Documentation

CharUnits clang::CodeGen::CodeGenModule::ByrefHelpers::Alignment

The alignment of the field. This is important because different offsets to the field within the byref struct need to have different helper functions.

Definition at line 767 of file CodeGenModule.h.

Referenced by Profile().

llvm::Constant* clang::CodeGen::CodeGenModule::ByrefHelpers::CopyHelper

Definition at line 761 of file CodeGenModule.h.

llvm::Constant* clang::CodeGen::CodeGenModule::ByrefHelpers::DisposeHelper

Definition at line 762 of file CodeGenModule.h.


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