comparison gen/typinf.cpp @ 1558:3adcb70700cb

Added back option to disable metadata generation and users. Set USE_METADATA to OFF in ccmake.
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Fri, 31 Jul 2009 11:28:31 +0200
parents d11aeae19b95
children 8912aabdb26e
comparison
equal deleted inserted replaced
1557:d11aeae19b95 1558:3adcb70700cb
300 irg->value = new llvm::GlobalVariable(*gIR->module, irg->type.get(), true, 300 irg->value = new llvm::GlobalVariable(*gIR->module, irg->type.get(), true,
301 TYPEINFO_LINKAGE_TYPE, NULL, mangle); 301 TYPEINFO_LINKAGE_TYPE, NULL, mangle);
302 302
303 tid->ir.irGlobal = irg; 303 tid->ir.irGlobal = irg;
304 304
305 #if USE_METADATA
305 // don't do this for void or llvm will crash 306 // don't do this for void or llvm will crash
306 if (tid->tinfo->ty != Tvoid) { 307 if (tid->tinfo->ty != Tvoid) {
307 // Add some metadata for use by optimization passes. 308 // Add some metadata for use by optimization passes.
308 std::string metaname = std::string(TD_PREFIX) + mangle; 309 std::string metaname = std::string(TD_PREFIX) + mangle;
309 llvm::NamedMDNode* meta = gIR->module->getNamedMetadata(metaname); 310 llvm::NamedMDNode* meta = gIR->module->getNamedMetadata(metaname);
319 llvm::MetadataBase* metadata = gIR->context().getMDNode(mdVals, TD_NumFields); 320 llvm::MetadataBase* metadata = gIR->context().getMDNode(mdVals, TD_NumFields);
320 // Insert it into the module 321 // Insert it into the module
321 llvm::NamedMDNode::Create(metaname, &metadata, 1, gIR->module); 322 llvm::NamedMDNode::Create(metaname, &metadata, 1, gIR->module);
322 } 323 }
323 } 324 }
325 #endif // USE_METADATA
324 326
325 DtoDeclareTypeInfo(tid); 327 DtoDeclareTypeInfo(tid);
326 } 328 }
327 329
328 void DtoDeclareTypeInfo(TypeInfoDeclaration* tid) 330 void DtoDeclareTypeInfo(TypeInfoDeclaration* tid)