Move BlockDescriptorType into CGM.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64451 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp
index 9aa5207..cb096fc 100644
--- a/lib/CodeGen/CGBlocks.cpp
+++ b/lib/CodeGen/CGBlocks.cpp
@@ -26,25 +26,25 @@
   IsGlobal = 1 << 28
 };
 
-static const llvm::Type *getBlockDescriptorType(CodeGenModule &CGM) {
-  static const llvm::Type *Ty = 0;
-    
-  if (!Ty) {
-    const llvm::Type *UnsignedLongTy = 
-      CGM.getTypes().ConvertType(CGM.getContext().UnsignedLongTy);
+const llvm::Type *CodeGenModule::getBlockDescriptorType() {
+  if (BlockDescriptorType)
+    return BlockDescriptorType;
+
+  const llvm::Type *UnsignedLongTy = 
+    getTypes().ConvertType(getContext().UnsignedLongTy);
         
-    // struct __block_descriptor {
-    //   unsigned long reserved;
-    //   unsigned long block_size;
-    // };
-    Ty = llvm::StructType::get(UnsignedLongTy, 
-                               UnsignedLongTy, 
-                               NULL);
-        
-    CGM.getModule().addTypeName("struct.__block_descriptor", Ty);
-  }
-    
-  return Ty;
+  // struct __block_descriptor {
+  //   unsigned long reserved;
+  //   unsigned long block_size;
+  // };
+  BlockDescriptorType = llvm::StructType::get(UnsignedLongTy, 
+                                              UnsignedLongTy, 
+                                              NULL);
+
+  getModule().addTypeName("struct.__block_descriptor",
+                          BlockDescriptorType);
+
+  return BlockDescriptorType;
 }
 
 static const llvm::Type *getGenericBlockLiteralType(CodeGenModule &CGM) {
@@ -55,7 +55,7 @@
       llvm::PointerType::getUnqual(llvm::Type::Int8Ty);
         
     const llvm::Type *BlockDescPtrTy = 
-      llvm::PointerType::getUnqual(getBlockDescriptorType(CGM));
+      llvm::PointerType::getUnqual(CGM.getBlockDescriptorType());
         
     // struct __block_literal_generic {
     //   void *isa;