Mercurial > projects > ldc
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) |