diff gen/todebug.cpp @ 156:ccd07d9f2ce9 trunk

[svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map
author ChristianK
date Thu, 01 May 2008 13:05:53 +0200
parents 7f92f477ff53
children db9890b3fb64
line wrap: on
line diff
--- a/gen/todebug.cpp	Tue Apr 29 21:33:50 2008 +0200
+++ b/gen/todebug.cpp	Thu May 01 13:05:53 2008 +0200
@@ -114,12 +114,12 @@
 
 llvm::GlobalVariable* DtoDwarfCompileUnit(Module* m)
 {
-    if (!m->irModule)
-        m->irModule = new IrModule(m);
-    else if (m->irModule->dwarfCompileUnit)
+    if (!gIR->irDsymbol[m].irModule)
+        gIR->irDsymbol[m].irModule = new IrModule(m);
+    else if (gIR->irDsymbol[m].irModule->dwarfCompileUnit)
     {
-        if (m->irModule->dwarfCompileUnit->getParent() == gIR->module)
-            return m->irModule->dwarfCompileUnit;
+        if (gIR->irDsymbol[m].irModule->dwarfCompileUnit->getParent() == gIR->module)
+            return gIR->irDsymbol[m].irModule->dwarfCompileUnit;
     }
 
     // create a valid compile unit constant for the current module
@@ -148,7 +148,7 @@
     llvm::GlobalVariable* gv = new llvm::GlobalVariable(GetDwarfCompileUnitType(), true, llvm::GlobalValue::InternalLinkage, c, "llvm.dbg.compile_unit", gIR->module);
     gv->setSection("llvm.metadata");
 
-    m->irModule->dwarfCompileUnit = gv;
+    gIR->irDsymbol[m].irModule->dwarfCompileUnit = gv;
     return gv;
 }
 
@@ -182,14 +182,14 @@
 
 void DtoDwarfFuncStart(FuncDeclaration* fd)
 {
-    assert(gIR->irFunc[fd]->dwarfSubProg);
-    gIR->ir->CreateCall(gIR->module->getFunction("llvm.dbg.func.start"), dbgToArrTy(gIR->irFunc[fd]->dwarfSubProg));
+    assert(gIR->irDsymbol[fd].irFunc->dwarfSubProg);
+    gIR->ir->CreateCall(gIR->module->getFunction("llvm.dbg.func.start"), dbgToArrTy(gIR->irDsymbol[fd].irFunc->dwarfSubProg));
 }
 
 void DtoDwarfFuncEnd(FuncDeclaration* fd)
 {
-    assert(gIR->irFunc[fd]->dwarfSubProg);
-    gIR->ir->CreateCall(gIR->module->getFunction("llvm.dbg.region.end"), dbgToArrTy(gIR->irFunc[fd]->dwarfSubProg));
+    assert(gIR->irDsymbol[fd].irFunc->dwarfSubProg);
+    gIR->ir->CreateCall(gIR->module->getFunction("llvm.dbg.region.end"), dbgToArrTy(gIR->irDsymbol[fd].irFunc->dwarfSubProg));
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////