aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-07-16 00:00:15 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-07-16 00:00:15 +0000
commit900546d2e306ee1864a3ca1ba1331e62ba22d0fe (patch)
tree881242c0ebecd84d979c6871ae356122f647fe54 /clang/lib/CodeGen/CodeGenModule.h
parent01ad0a78d06ee2e71f75e6687075c6213ba502a6 (diff)
downloadllvm-900546d2e306ee1864a3ca1ba1331e62ba22d0fe.zip
llvm-900546d2e306ee1864a3ca1ba1331e62ba22d0fe.tar.gz
llvm-900546d2e306ee1864a3ca1ba1331e62ba22d0fe.tar.bz2
IRgen: Move blocks runtime interfaces to CodeGenModule.
llvm-svn: 108481
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.h')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h
index 05d02ec..f3bd307 100644
--- a/clang/lib/CodeGen/CodeGenModule.h
+++ b/clang/lib/CodeGen/CodeGenModule.h
@@ -193,6 +193,16 @@ class CodeGenModule : public BlockModule {
void createCXXABI();
llvm::LLVMContext &VMContext;
+
+ /// @name Cache for Blocks Runtime Globals
+ /// @{
+
+ llvm::Constant *NSConcreteGlobalBlock;
+ llvm::Constant *NSConcreteStackBlock;
+ llvm::Constant *BlockObjectAssign;
+ llvm::Constant *BlockObjectDispose;
+
+ /// @}
public:
CodeGenModule(ASTContext &C, const CodeGenOptions &CodeGenOpts,
llvm::Module &M, const llvm::TargetData &TD, Diagnostic &Diags);
@@ -398,6 +408,16 @@ public:
llvm::Constant *CreateRuntimeVariable(const llvm::Type *Ty,
llvm::StringRef Name);
+ ///@name Custom Blocks Runtime Interfaces
+ ///@{
+
+ llvm::Constant *getNSConcreteGlobalBlock();
+ llvm::Constant *getNSConcreteStackBlock();
+ llvm::Constant *getBlockObjectAssign();
+ llvm::Constant *getBlockObjectDispose();
+
+ ///@}
+
void UpdateCompletedType(const TagDecl *TD) {
// Make sure that this type is translated.
Types.UpdateCompletedType(TD);