diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-07-16 00:00:15 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-07-16 00:00:15 +0000 |
commit | 673431a2986f750b4d8fadb57abf3f00db27bbbd (patch) | |
tree | c07642c415d1887879ebd74853caabbb31c92a8b /lib/CodeGen/CodeGenModule.h | |
parent | c76c9e0856ff3aa47590474c9404dfb598c0564c (diff) |
IRgen: Move blocks runtime interfaces to CodeGenModule.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108481 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenModule.h')
-rw-r--r-- | lib/CodeGen/CodeGenModule.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h index 05d02ec0a0..f3bd307129 100644 --- a/lib/CodeGen/CodeGenModule.h +++ b/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); |