diff gen/classes.cpp @ 622:26fce59fe80a

Wrapped all the most potentially expensive logging calls in a conditional to only do work when actually requested. Commented some logging calls that could potentially write out many megabytes of type dumps.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 01 Oct 2008 18:32:31 +0200
parents c9aa338280ed
children 8aebdf56c455
line wrap: on
line diff
--- a/gen/classes.cpp	Sun Sep 28 21:09:21 2008 +0200
+++ b/gen/classes.cpp	Wed Oct 01 18:32:31 2008 +0200
@@ -95,6 +95,8 @@
     Logger::println("DtoResolveClass(%s): %s", cd->toPrettyChars(), cd->loc.toChars());
     LOG_SCOPE;
 
+    //printf("resolve class: %s\n", cd->toPrettyChars());
+
     // get the TypeClass
     assert(cd->type->ty == Tclass);
     TypeClass* ts = (TypeClass*)cd->type;
@@ -244,7 +246,8 @@
         TypeClass* itc = (TypeClass*)id->type;
         const LLType* ivtblTy = itc->ir.vtblType->get();
         assert(ivtblTy);
-        Logger::cout() << "interface vtbl type: " << *ivtblTy << '\n';
+        if (Logger::enabled())
+            Logger::cout() << "interface vtbl type: " << *ivtblTy << '\n';
         fieldtypes.push_back(getPtrToType(ivtblTy));
 
         // fix the interface vtable type
@@ -360,6 +363,8 @@
     Logger::println("DtoDeclareClass(%s): %s", cd->toPrettyChars(), cd->loc.toChars());
     LOG_SCOPE;
 
+    //printf("declare class: %s\n", cd->toPrettyChars());
+
     assert(cd->type->ty == Tclass);
     TypeClass* ts = (TypeClass*)cd->type;
 
@@ -654,7 +659,7 @@
 
             for (int k=1; k < b->vtbl.dim; k++)
             {
-                Logger::println("interface vtbl const init nr. %d", k);
+//                 Logger::println("interface vtbl const init nr. %d", k);
                 Dsymbol* dsym = (Dsymbol*)b->vtbl.data[k];
 
                 // error on unimplemented functions, error was already generated earlier
@@ -674,11 +679,13 @@
                 // we have to bitcast, as the type created in ResolveClass expects a different this type
                 c = llvm::ConstantExpr::getBitCast(c, targetTy);
                 iinits.push_back(c);
-                Logger::cout() << "c: " << *c << '\n';
+//                 if (Logger::enabled())
+//                     Logger::cout() << "c: " << *c << '\n';
             }
 
         #if OPAQUE_VTBLS
-            Logger::cout() << "n: " << iinits.size() << " ivtbl_ty: " << *ivtbl_ty << '\n';
+//             if (Logger::enabled())
+//                 Logger::cout() << "n: " << iinits.size() << " ivtbl_ty: " << *ivtbl_ty << '\n';
             LLConstant* civtblInit = llvm::ConstantArray::get(ivtbl_ty, iinits);
             iri->vtblInit = llvm::cast<llvm::ConstantArray>(civtblInit);
         #else
@@ -825,7 +832,8 @@
         size_t idx = 2 + tc->sym->vthis->ir.irField->index;
         LLValue* src = thisval->getRVal();
         LLValue* dst = DtoGEPi(mem,0,idx,"tmp");
-        Logger::cout() << "dst: " << *dst << "\nsrc: " << *src << '\n';
+        if (Logger::enabled())
+            Logger::cout() << "dst: " << *dst << "\nsrc: " << *src << '\n';
         DtoStore(src, dst);
     }
     // set the context for nested classes
@@ -1175,7 +1183,8 @@
     assert(inst->getType()->toBasetype()->ty == Tclass);
 
     LLValue* vthis = inst->getRVal();
-    Logger::cout() << "vthis: " << *vthis << '\n';
+    if (Logger::enabled())
+        Logger::cout() << "vthis: " << *vthis << '\n';
 
     LLValue* funcval;
     funcval = DtoGEPi(vthis, 0, 0, "tmp");
@@ -1183,11 +1192,13 @@
     funcval = DtoGEPi(funcval, 0, fdecl->vtblIndex, fdecl->toPrettyChars());
     funcval = DtoLoad(funcval);
 
-    Logger::cout() << "funcval: " << *funcval << '\n';
+    if (Logger::enabled())
+        Logger::cout() << "funcval: " << *funcval << '\n';
 
 #if OPAQUE_VTBLS
     funcval = DtoBitCast(funcval, getPtrToType(DtoType(fdecl->type)));
-    Logger::cout() << "funcval casted: " << *funcval << '\n';
+    if (Logger::enabled())
+        Logger::cout() << "funcval casted: " << *funcval << '\n';
 #endif
 
     return funcval;