diff gen/typinf.cpp @ 1555:ed0cffe895ec

use the new NamedMDNode class this will need a LLVM >= r77619
author Benjamin Kramer <benny.kra@gmail.com>
date Thu, 30 Jul 2009 20:54:03 +0200
parents d6e8d5db259f
children d11aeae19b95
line wrap: on
line diff
--- a/gen/typinf.cpp	Thu Jul 30 15:25:10 2009 +0200
+++ b/gen/typinf.cpp	Thu Jul 30 20:54:03 2009 +0200
@@ -304,7 +304,7 @@
 
     // Add some metadata for use by optimization passes.
     std::string metaname = std::string(TD_PREFIX) + mangle;
-    LLGlobalVariable* meta = gIR->module->getGlobalVariable(metaname);
+    llvm::NamedMDNode* meta = gIR->module->getNamedMetadata(metaname);
     // Don't generate metadata for non-concrete types
     // (such as tuple types, slice types, typeof(expr), etc.)
     if (!meta && tid->tinfo->toBasetype()->ty < Terror) {
@@ -314,10 +314,9 @@
             mdVals[TD_Confirm] = llvm::cast<MDNodeField>(irg->value);
         mdVals[TD_Type] = llvm::UndefValue::get(DtoType(tid->tinfo));
         // Construct the metadata
-        llvm::MDNode* metadata = gIR->context().getMDNode(mdVals, TD_NumFields);
+        llvm::MetadataBase* metadata = gIR->context().getMDNode(mdVals, TD_NumFields);
         // Insert it into the module
-        new llvm::GlobalVariable(*gIR->module, metadata->getType(), true,
-            METADATA_LINKAGE_TYPE, metadata, metaname);
+        llvm::NamedMDNode::Create(metaname, &metadata, 1, gIR->module);
     }
 
     DtoDeclareTypeInfo(tid);