diff gen/toobj.cpp @ 1364:46f6365a50d7

Added IrTypeFunction and IrTypeDelegate and eliminated IrDType. This means the Type::ir field can be removed. It's the final part needed for the move to a slightly more sane type system. Now the whole thing just needs to be cleaned up :P Added -v-cg switch, which right now just prints "codegen: module.name (module/name.d)" to stdout, this can really help figuring out where, in some complex build command, things go wrong.
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Sat, 16 May 2009 18:19:52 +0200
parents 681dd955c53b
children d430a41fbb45
line wrap: on
line diff
--- a/gen/toobj.cpp	Sat May 16 14:22:23 2009 +0200
+++ b/gen/toobj.cpp	Sat May 16 18:19:52 2009 +0200
@@ -54,6 +54,7 @@
 
 #include "ir/irvar.h"
 #include "ir/irmodule.h"
+#include "ir/irtype.h"
 
 //////////////////////////////////////////////////////////////////////////////////////////
 
@@ -80,7 +81,8 @@
     Logger::println("Generating module: %s\n", (md ? md->toChars() : toChars()));
     LOG_SCOPE;
 
-    //printf("codegen: %s\n", srcfile->toChars());
+    if (global.params.verbose_cg)
+        printf("codegen: %s (%s)\n", toPrettyChars(), srcfile->toChars());
 
     assert(!global.errors);
 
@@ -609,9 +611,9 @@
     }
 
     // moduleinfo llvm struct type
-    const llvm::StructType* moduleinfoTy = isaStruct(moduleinfo->type->ir.type->get());
+    const llvm::StructType* moduleinfoTy = isaStruct(moduleinfo->type->irtype->getPA());
     // classinfo llvm struct type
-    const llvm::StructType* classinfoTy = isaStruct(ClassDeclaration::classinfo->type->ir.type->get());
+    const llvm::StructType* classinfoTy = isaStruct(ClassDeclaration::classinfo->type->irtype->getPA());
 
     // initializer vector
     std::vector<LLConstant*> initVec;