# HG changeset patch # User Tomas Lindquist Olsen # Date 1222878751 -7200 # Node ID 26fce59fe80a639ab91cee3bb7506334e91caf4c # Parent 722630261d62c80d32a93a3564bc8785f46f2bca 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. diff -r 722630261d62 -r 26fce59fe80a gen/aa.cpp --- a/gen/aa.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/aa.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -105,12 +105,16 @@ llvm::Function* func = LLVM_D_GetRuntimeFunction(gIR->module, "_aaIn"); const llvm::FunctionType* funcTy = func->getFunctionType(); - Logger::cout() << "_aaIn = " << *func << '\n'; + if (Logger::enabled()) + Logger::cout() << "_aaIn = " << *func << '\n'; // aa param LLValue* aaval = aa->getRVal(); - Logger::cout() << "aaval: " << *aaval << '\n'; - Logger::cout() << "totype: " << *funcTy->getParamType(0) << '\n'; + if (Logger::enabled()) + { + Logger::cout() << "aaval: " << *aaval << '\n'; + Logger::cout() << "totype: " << *funcTy->getParamType(0) << '\n'; + } aaval = DtoBitCast(aaval, funcTy->getParamType(0)); // keyti param @@ -143,12 +147,16 @@ llvm::Function* func = LLVM_D_GetRuntimeFunction(gIR->module, "_aaDel"); const llvm::FunctionType* funcTy = func->getFunctionType(); - Logger::cout() << "_aaDel = " << *func << '\n'; + if (Logger::enabled()) + Logger::cout() << "_aaDel = " << *func << '\n'; // aa param LLValue* aaval = aa->getRVal(); - Logger::cout() << "aaval: " << *aaval << '\n'; - Logger::cout() << "totype: " << *funcTy->getParamType(0) << '\n'; + if (Logger::enabled()) + { + Logger::cout() << "aaval: " << *aaval << '\n'; + Logger::cout() << "totype: " << *funcTy->getParamType(0) << '\n'; + } aaval = DtoBitCast(aaval, funcTy->getParamType(0)); // keyti param diff -r 722630261d62 -r 26fce59fe80a gen/arrays.cpp --- a/gen/arrays.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/arrays.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -85,7 +85,8 @@ } else { - Logger::cout() << "array assignment type dont match: " << *dst->getType() << "\n\n" << *src->getType() << '\n'; + if (Logger::enabled()) + Logger::cout() << "array assignment type dont match: " << *dst->getType() << "\n\n" << *src->getType() << '\n'; const LLArrayType* arrty = isaArray(src->getType()->getContainedType(0)); if (!arrty) { @@ -234,7 +235,8 @@ LLFunction* fn = LLVM_D_GetRuntimeFunction(gIR->module, funcname); assert(fn); - Logger::cout() << "calling array init function: " << *fn <<'\n'; + if (Logger::enabled()) + Logger::cout() << "calling array init function: " << *fn <<'\n'; CallOrInvoke* call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end()); call->setCallingConv(llvm::CallingConv::C); } @@ -335,7 +337,8 @@ assert(v); inits[i] = v; - Logger::cout() << "llval: " << *v << '\n'; + if (Logger::enabled()) + Logger::cout() << "llval: " << *v << '\n'; } Logger::println("building constant array"); @@ -426,7 +429,8 @@ if (newptr->getType() != dstType) newptr = DtoBitCast(newptr, dstType, ".gc_mem"); - Logger::cout() << "final ptr = " << *newptr << '\n'; + if (Logger::enabled()) + Logger::cout() << "final ptr = " << *newptr << '\n'; return new DSliceValue(arrayType, arrayLen, newptr); } @@ -468,7 +472,8 @@ if (newptr->getType() != dstType) newptr = DtoBitCast(newptr, dstType, ".gc_mem"); - Logger::cout() << "final ptr = " << *newptr << '\n'; + if (Logger::enabled()) + Logger::cout() << "final ptr = " << *newptr << '\n'; assert(firstDim); return new DSliceValue(arrayType, firstDim, newptr); @@ -497,7 +502,8 @@ args.push_back(DtoArrayLen(array)); LLValue* arrPtr = DtoArrayPtr(array); - Logger::cout() << "arrPtr = " << *arrPtr << '\n'; + if (Logger::enabled()) + Logger::cout() << "arrPtr = " << *arrPtr << '\n'; args.push_back(DtoBitCast(arrPtr, fn->getFunctionType()->getParamType(3), "tmp")); LLValue* newptr = gIR->CreateCallOrInvoke(fn, args.begin(), args.end(), ".gc_mem")->get(); @@ -726,9 +732,12 @@ const LLType* pt = fn->getFunctionType()->getParamType(0); LLSmallVector args; - Logger::cout() << "bitcasting to " << *pt << '\n'; - Logger::cout() << *lmem << '\n'; - Logger::cout() << *rmem << '\n'; + if (Logger::enabled()) + { + Logger::cout() << "bitcasting to " << *pt << '\n'; + Logger::cout() << *lmem << '\n'; + Logger::cout() << *rmem << '\n'; + } args.push_back(DtoBitCast(lmem,pt)); args.push_back(DtoBitCast(rmem,pt)); @@ -738,7 +747,9 @@ LLValue* tival = DtoTypeInfoOf(t); // DtoTypeInfoOf only does declare, not enough in this case :/ DtoForceConstInitDsymbol(t->vtinfo); - Logger::cout() << "typeinfo decl: " << *tival << '\n'; + + if (Logger::enabled()) + Logger::cout() << "typeinfo decl: " << *tival << '\n'; pt = fn->getFunctionType()->getParamType(2); args.push_back(DtoBitCast(tival, pt)); @@ -957,22 +968,29 @@ LLValue* rval2; bool isslice = false; - Logger::cout() << "from array or sarray" << '\n'; + if (Logger::enabled()) + Logger::cout() << "from array or sarray" << '\n'; + if (totype->ty == Tpointer) { - Logger::cout() << "to pointer" << '\n'; + if (Logger::enabled()) + Logger::cout() << "to pointer" << '\n'; rval = DtoArrayPtr(u); if (rval->getType() != tolltype) rval = gIR->ir->CreateBitCast(rval, tolltype, "tmp"); } else if (totype->ty == Tarray) { - Logger::cout() << "to array" << '\n'; + if (Logger::enabled()) + Logger::cout() << "to array" << '\n'; const LLType* ptrty = DtoArrayType(totype)->getContainedType(1); const LLType* ety = DtoTypeNotVoid(fromtype->next); if (DSliceValue* usl = u->isSlice()) { - Logger::println("from slice"); - Logger::cout() << "from: " << *usl->ptr << " to: " << *ptrty << '\n'; + if (Logger::enabled()) + { + Logger::println("from slice"); + Logger::cout() << "from: " << *usl->ptr << " to: " << *ptrty << '\n'; + } rval = DtoBitCast(usl->ptr, ptrty); if (fromtype->next->size() == totype->next->size()) rval2 = DtoArrayLen(usl); @@ -982,7 +1000,8 @@ else { LLValue* uval = u->getRVal(); if (fromtype->ty == Tsarray) { - Logger::cout() << "uvalTy = " << *uval->getType() << '\n'; + if (Logger::enabled()) + Logger::cout() << "uvalTy = " << *uval->getType() << '\n'; assert(isaPointer(uval->getType())); const LLArrayType* arrty = isaArray(uval->getType()->getContainedType(0)); @@ -1012,7 +1031,8 @@ isslice = true; } else if (totype->ty == Tsarray) { - Logger::cout() << "to sarray" << '\n'; + if (Logger::enabled()) + Logger::cout() << "to sarray" << '\n'; assert(0); } else { diff -r 722630261d62 -r 26fce59fe80a gen/asmstmt.cpp --- a/gen/asmstmt.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/asmstmt.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -624,7 +624,8 @@ types.insert(types.end(), outtypes.begin(), outtypes.end()); types.insert(types.end(), intypes.begin(), intypes.end()); llvm::FunctionType* fty = llvm::FunctionType::get(llvm::Type::VoidTy, types, false); - Logger::cout() << "function type = " << *fty << '\n'; + if (Logger::enabled()) + Logger::cout() << "function type = " << *fty << '\n'; llvm::InlineAsm* ia = llvm::InlineAsm::get(fty, code, out_c, true); std::vector args; diff -r 722630261d62 -r 26fce59fe80a gen/classes.cpp --- 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(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; diff -r 722630261d62 -r 26fce59fe80a gen/functions.cpp --- a/gen/functions.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/functions.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -164,11 +164,16 @@ // handle lazy args if (arg->storageClass & STClazy) { - Logger::cout() << "for lazy got: " << *paramvec.back() << '\n'; + if (Logger::enabled()) + Logger::cout() << "for lazy got: " << *paramvec.back() << '\n'; + TypeFunction *ltf = new TypeFunction(NULL, arg->type, 0, LINKd); TypeDelegate *ltd = new TypeDelegate(ltf); at = getPtrToType(DtoType(ltd)); - Logger::cout() << "lazy updated to: " << *at << '\n'; + + if (Logger::enabled()) + Logger::cout() << "lazy updated to: " << *at << '\n'; + paramvec.back() = at; // lazy doesn't need byval as the delegate is not visible to the user } @@ -289,6 +294,8 @@ Logger::println("DtoResolveFunction(%s): %s", fdecl->toPrettyChars(), fdecl->loc.toChars()); LOG_SCOPE; + //printf("resolve function: %s\n", fdecl->toPrettyChars()); + if (fdecl->parent) if (TemplateInstance* tinst = fdecl->parent->isTemplateInstance()) { @@ -391,6 +398,8 @@ Logger::println("DtoDeclareFunction(%s): %s", fdecl->toPrettyChars(), fdecl->loc.toChars()); LOG_SCOPE; + //printf("declare function: %s\n", fdecl->toPrettyChars()); + // intrinsic sanity check if (fdecl->llvmInternal == LLVMintrinsic && fdecl->fbody) { error(fdecl->loc, "intrinsics cannot have function bodies"); @@ -530,7 +539,8 @@ else assert(func->getLinkage() != llvm::GlobalValue::InternalLinkage); - Logger::cout() << "func decl: " << *func << '\n'; + if (Logger::enabled()) + Logger::cout() << "func decl: " << *func << '\n'; } ////////////////////////////////////////////////////////////////////////////////////////// diff -r 722630261d62 -r 26fce59fe80a gen/llvmhelpers.cpp --- a/gen/llvmhelpers.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/llvmhelpers.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -416,7 +416,7 @@ void DtoAssign(Loc& loc, DValue* lhs, DValue* rhs) { - Logger::cout() << "DtoAssign(...);\n"; + Logger::println("DtoAssign(...);\n"); LOG_SCOPE; Type* t = lhs->getType()->toBasetype(); @@ -472,7 +472,8 @@ else { LLValue* l = lhs->getLVal(); LLValue* r = rhs->getRVal(); - Logger::cout() << "assign\nlhs: " << *l << "rhs: " << *r << '\n'; + if (Logger::enabled()) + Logger::cout() << "assign\nlhs: " << *l << "rhs: " << *r << '\n'; DtoAggrCopy(l, r); } } @@ -480,8 +481,11 @@ assert(t2->ty == Tclass); LLValue* l = lhs->getLVal(); LLValue* r = rhs->getRVal(); - Logger::cout() << "l : " << *l << '\n'; - Logger::cout() << "r : " << *r << '\n'; + if (Logger::enabled()) + { + Logger::cout() << "l : " << *l << '\n'; + Logger::cout() << "r : " << *r << '\n'; + } r = DtoBitCast(r, l->getType()->getContainedType(0)); DtoStore(r, l); } @@ -499,7 +503,8 @@ else { LLValue* l = lhs->getLVal(); LLValue* r = rhs->getRVal(); - Logger::cout() << "assign\nlhs: " << *l << "rhs: " << *r << '\n'; + if (Logger::enabled()) + Logger::cout() << "assign\nlhs: " << *l << "rhs: " << *r << '\n'; const LLType* lit = l->getType()->getContainedType(0); if (r->getType() != lit) { // handle lvalue cast assignments @@ -510,7 +515,8 @@ else { r = DtoCast(loc, rhs, lhs->getType())->getRVal(); } - Logger::cout() << "really assign\nlhs: " << *l << "rhs: " << *r << '\n'; + if (Logger::enabled()) + Logger::cout() << "really assign\nlhs: " << *l << "rhs: " << *r << '\n'; assert(r->getType() == l->getType()->getContainedType(0)); } gIR->ir->CreateStore(r, l); @@ -584,7 +590,8 @@ if (to->isintegral()) { if (fromsz < tosz) { - Logger::cout() << "cast to: " << *tolltype << '\n'; + if (Logger::enabled()) + Logger::cout() << "cast to: " << *tolltype << '\n'; if (from->isunsigned() || from->ty == Tbool) { rval = new llvm::ZExtInst(rval, tolltype, "tmp", gIR->scopebb()); } else { @@ -610,7 +617,8 @@ } } else if (to->ty == Tpointer) { - Logger::cout() << "cast pointer: " << *tolltype << '\n'; + if (Logger::enabled()) + Logger::cout() << "cast pointer: " << *tolltype << '\n'; rval = gIR->ir->CreateIntToPtr(rval, tolltype, "tmp"); } else { @@ -633,7 +641,8 @@ if (totype->ty == Tpointer || totype->ty == Tclass) { LLValue* src = val->getRVal(); - Logger::cout() << "src: " << *src << "to type: " << *tolltype << '\n'; + if (Logger::enabled()) + Logger::cout() << "src: " << *src << "to type: " << *tolltype << '\n'; rval = DtoBitCast(src, tolltype); } else if (totype->isintegral()) { @@ -910,7 +919,9 @@ //Logger::cout() << "initializer: " << *_init << '\n'; if (_type != _init->getType()) { - Logger::cout() << "got type '" << *_init->getType() << "' expected '" << *_type << "'\n"; + if (Logger::enabled()) + Logger::cout() << "got type '" << *_init->getType() << "' expected '" << *_type << "'\n"; + // zero initalizer if (_init->isNullValue()) _init = llvm::Constant::getNullValue(_type); @@ -930,7 +941,8 @@ _init = DtoConstStaticArray(_type, _init); } else { - Logger::cout() << "Unexpected initializer type: " << *_type << '\n'; + if (Logger::enabled()) + Logger::cout() << "Unexpected initializer type: " << *_type << '\n'; //assert(0); } } @@ -950,9 +962,12 @@ llvm::GlobalVariable* gvar = llvm::cast(vd->ir.irGlobal->value); if (!(vd->storage_class & STCextern) && (vd->getModule() == gIR->dmodule || istempl)) { - Logger::println("setting initializer"); - Logger::cout() << "global: " << *gvar << '\n'; - Logger::cout() << "init: " << *_init << '\n'; + if (Logger::enabled()) + { + Logger::println("setting initializer"); + Logger::cout() << "global: " << *gvar << '\n'; + Logger::cout() << "init: " << *_init << '\n'; + } gvar->setInitializer(_init); // do debug info if (global.params.symdebug) @@ -1168,7 +1183,8 @@ assert(vd->ir.irLocal->value); } - Logger::cout() << "llvm value for decl: " << *vd->ir.irLocal->value << '\n'; + if (Logger::enabled()) + Logger::cout() << "llvm value for decl: " << *vd->ir.irLocal->value << '\n'; DValue* ie = DtoInitializer(vd->ir.irLocal->value, vd->init); } @@ -1292,7 +1308,8 @@ assert(_init); if (_type != _init->getType()) { - Logger::cout() << "field init is: " << *_init << " type should be " << *_type << '\n'; + if (Logger::enabled()) + Logger::cout() << "field init is: " << *_init << " type should be " << *_type << '\n'; if (t->ty == Tsarray) { const LLArrayType* arrty = isaArray(_type); @@ -1379,7 +1396,8 @@ { Logger::println("building type %s from expression (%s) of type %s", base->toChars(), exp->toChars(), exp->type->toChars()); const LLType* dstTy = DtoType(base); - Logger::cout() << "final llvm type requested: " << *dstTy << '\n'; + if (Logger::enabled()) + Logger::cout() << "final llvm type requested: " << *dstTy << '\n'; LLConstant* val = exp->toConstElem(gIR); @@ -1510,8 +1528,11 @@ else if (ty == Tpointer || ty == Tclass) { LLValue* val = dval->getRVal(); LLValue* zero = LLConstant::getNullValue(val->getType()); - Logger::cout() << "val: " << *val << '\n'; - Logger::cout() << "zero: " << *zero << '\n'; + if (Logger::enabled()) + { + Logger::cout() << "val: " << *val << '\n'; + Logger::cout() << "zero: " << *zero << '\n'; + } return gIR->ir->CreateICmpNE(val, zero, "tmp"); } // dynamic array diff -r 722630261d62 -r 26fce59fe80a gen/statements.cpp --- a/gen/statements.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/statements.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -79,13 +79,16 @@ DValue* e = exp->toElem(p); LLValue* v = e->getRVal(); delete e; - Logger::cout() << "return value is '" <<*v << "'\n"; + + if (Logger::enabled()) + Logger::cout() << "return value is '" <<*v << "'\n"; // can happen for classes if (v->getType() != p->topfunc()->getReturnType()) { v = gIR->ir->CreateBitCast(v, p->topfunc()->getReturnType(), "tmp"); - Logger::cout() << "return value after cast: " << *v << '\n'; + if (Logger::enabled()) + Logger::cout() << "return value after cast: " << *v << '\n'; } DtoEnclosingHandlers(enclosinghandler, NULL); @@ -165,7 +168,8 @@ llvm::BasicBlock* elsebb = elsebody ? llvm::BasicBlock::Create("else", gIR->topfunc(), endbb) : endbb; if (cond_val->getType() != LLType::Int1Ty) { - Logger::cout() << "if conditional: " << *cond_val << '\n'; + if (Logger::enabled()) + Logger::cout() << "if conditional: " << *cond_val << '\n'; cond_val = DtoBoolean(loc, cond_e); } LLValue* ifgoback = llvm::BranchInst::Create(ifbb, elsebb, cond_val, gIR->scopebb()); @@ -677,8 +681,11 @@ llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, fname); - Logger::cout() << *table->getType() << '\n'; - Logger::cout() << *fn->getFunctionType()->getParamType(0) << '\n'; + if (Logger::enabled()) + { + Logger::cout() << *table->getType() << '\n'; + Logger::cout() << *fn->getFunctionType()->getParamType(0) << '\n'; + } assert(table->getType() == fn->getFunctionType()->getParamType(0)); DValue* val = e->toElem(gIR); diff -r 722630261d62 -r 26fce59fe80a gen/structs.cpp --- a/gen/structs.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/structs.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -29,7 +29,9 @@ DtoResolveDsymbol(si->ad); const llvm::StructType* structtype = isaStruct(ts->ir.type->get()); - Logger::cout() << "llvm struct type: " << *structtype << '\n'; + + if (Logger::enabled()) + Logger::cout() << "llvm struct type: " << *structtype << '\n'; assert(si->value.dim == si->vars.dim); @@ -61,8 +63,11 @@ const LLType* llt = getPtrToType(DtoType(t)); const LLType* st = getPtrToType(DtoType(sd->type)); - Logger::cout() << "ptr = " << *ptr << '\n'; - Logger::cout() << "st = " << *st << '\n'; + if (Logger::enabled()) + { + Logger::cout() << "ptr = " << *ptr << '\n'; + Logger::cout() << "st = " << *st << '\n'; + } if (ptr->getType() != st) { assert(sd->ir.irStruct->hasUnions); diff -r 722630261d62 -r 26fce59fe80a gen/tocall.cpp --- a/gen/tocall.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/tocall.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -76,7 +76,8 @@ else if (type->ty == Tdelegate) { LLValue* dg = fn->getRVal(); - Logger::cout() << "delegate: " << *dg << '\n'; + if (Logger::enabled()) + Logger::cout() << "delegate: " << *dg << '\n'; LLValue* funcptr = DtoGEPi(dg, 0, 1); return DtoLoad(funcptr); } @@ -126,7 +127,10 @@ vtypes.back() = DtoSize_t(); } const LLStructType* vtype = LLStructType::get(vtypes); - Logger::cout() << "d-variadic argument struct type:\n" << *vtype << '\n'; + + if (Logger::enabled()) + Logger::cout() << "d-variadic argument struct type:\n" << *vtype << '\n'; + LLValue* mem = DtoAlloca(vtype,"_argptr_storage"); // store arguments in the struct @@ -147,7 +151,8 @@ llvm::GlobalVariable* typeinfomem = new llvm::GlobalVariable(typeinfoarraytype, true, llvm::GlobalValue::InternalLinkage, NULL, "._arguments.storage", gIR->module); - Logger::cout() << "_arguments storage: " << *typeinfomem << '\n'; + if (Logger::enabled()) + Logger::cout() << "_arguments storage: " << *typeinfomem << '\n'; std::vector vtypeinfos; for (int i=begin,k=0; igetRVal(); if (fnarg) // can fnarg ever be null in this block? { - Logger::cout() << "arg: " << *arg << '\n'; - Logger::cout() << "expects: " << *callableTy->getParamType(j) << '\n'; +// if (Logger::enabled()) +// { +// Logger::cout() << "arg: " << *arg << '\n'; +// Logger::cout() << "expects: " << *callableTy->getParamType(j) << '\n'; +// } if (arg->getType() != callableTy->getParamType(j)) arg = DtoBitCast(arg, callableTy->getParamType(j)); if (fnarg->llvmAttrs) diff -r 722630261d62 -r 26fce59fe80a gen/toir.cpp --- a/gen/toir.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/toir.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -132,7 +132,8 @@ } if (!vd->ir.isSet() || !vd->ir.getIrValue() || DtoType(vd->type)->isAbstract()) { error("global variable %s not resolved", vd->toChars()); - Logger::cout() << "unresolved global had type: " << *DtoType(vd->type) << '\n'; + if (Logger::enabled()) + Logger::cout() << "unresolved global had type: " << *DtoType(vd->type) << '\n'; fatal(); } return new DVarValue(type, vd, vd->ir.getIrValue()); @@ -222,7 +223,8 @@ assert(llvm::isa(t)); LLConstant* c = llvm::ConstantInt::get(t,(uint64_t)value,!type->isunsigned()); assert(c); - Logger::cout() << "value = " << *c << '\n'; + if (Logger::enabled()) + Logger::cout() << "value = " << *c << '\n'; return c; } @@ -353,7 +355,8 @@ assert(0); llvm::GlobalValue::LinkageTypes _linkage = llvm::GlobalValue::InternalLinkage;//WeakLinkage; - Logger::cout() << "type: " << *at << "\ninit: " << *_init << '\n'; + if (Logger::enabled()) + Logger::cout() << "type: " << *at << "\ninit: " << *_init << '\n'; llvm::GlobalVariable* gvar = new llvm::GlobalVariable(at,true,_linkage,_init,".stringliteral",gIR->module); llvm::ConstantInt* zero = llvm::ConstantInt::get(LLType::Int32Ty, 0, false); @@ -588,7 +591,8 @@ if (t1->ty == Tpointer && t2->ty == Tpointer) { LLValue* lv = l->getRVal(); LLValue* rv = r->getRVal(); - Logger::cout() << "lv: " << *lv << " rv: " << *rv << '\n'; + if (Logger::enabled()) + Logger::cout() << "lv: " << *lv << " rv: " << *rv << '\n'; lv = p->ir->CreatePtrToInt(lv, DtoSize_t(), "tmp"); rv = p->ir->CreatePtrToInt(rv, DtoSize_t(), "tmp"); LLValue* diff = p->ir->CreateSub(lv,rv,"tmp"); @@ -869,7 +873,8 @@ } Logger::println("is nothing special"); LLValue* lval = v->getLVal(); - Logger::cout() << "lval: " << *lval << '\n'; + if (Logger::enabled()) + Logger::cout() << "lval: " << *lval << '\n'; return new DImValue(type, DtoBitCast(v->getLVal(), DtoType(type))); } @@ -1009,14 +1014,16 @@ LLValue* zero = llvm::ConstantInt::get(LLType::Int32Ty, 0, false); LLValue* vtblidx = llvm::ConstantInt::get(LLType::Int32Ty, (size_t)fdecl->vtblIndex, false); - Logger::cout() << "vthis: " << *vthis << '\n'; + if (Logger::enabled()) + Logger::cout() << "vthis: " << *vthis << '\n'; funcval = DtoGEP(vthis, zero, zero); funcval = DtoLoad(funcval); funcval = DtoGEP(funcval, zero, vtblidx, toChars()); funcval = DtoLoad(funcval); #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 } // static call @@ -1248,8 +1255,11 @@ { LLValue* a = l->getRVal(); LLValue* b = r->getRVal(); - Logger::cout() << "type 1: " << *a << '\n'; - Logger::cout() << "type 2: " << *b << '\n'; + if (Logger::enabled()) + { + Logger::cout() << "type 1: " << *a << '\n'; + Logger::cout() << "type 2: " << *b << '\n'; + } if (a->getType() != b->getType()) b = DtoBitCast(b, a->getType()); eval = p->ir->CreateICmp(cmpop, a, b, "tmp"); @@ -1871,7 +1881,8 @@ uval = src->getRVal(); } - Logger::cout() << "context = " << *uval << '\n'; + if (Logger::enabled()) + Logger::cout() << "context = " << *uval << '\n'; LLValue* context = DtoGEPi(lval,0,0); LLValue* castcontext = DtoBitCast(uval, int8ptrty); @@ -2160,12 +2171,14 @@ // llvm target type const LLType* llType = DtoType(arrayType); - Logger::cout() << (dyn?"dynamic":"static") << " array literal with length " << len << " of D type: '" << arrayType->toChars() << "' has llvm type: '" << *llType << "'\n"; + if (Logger::enabled()) + Logger::cout() << (dyn?"dynamic":"static") << " array literal with length " << len << " of D type: '" << arrayType->toChars() << "' has llvm type: '" << *llType << "'\n"; // llvm storage type const LLType* llElemType = DtoTypeNotVoid(elemType); const LLType* llStoType = LLArrayType::get(llElemType, len); - Logger::cout() << "llvm storage type: '" << *llStoType << "'\n"; + if (Logger::enabled()) + Logger::cout() << "llvm storage type: '" << *llStoType << "'\n"; // don't allocate storage for zero length dynamic array literals if (dyn && len == 0) @@ -2285,11 +2298,13 @@ const LLStructType* t = LLStructType::get(tys, sd->ir.irStruct->packed); if (t != llt) { if (getABITypeSize(t) != getABITypeSize(llt)) { - Logger::cout() << "got size " << getABITypeSize(t) << ", expected " << getABITypeSize(llt) << '\n'; + if (Logger::enabled()) + Logger::cout() << "got size " << getABITypeSize(t) << ", expected " << getABITypeSize(llt) << '\n'; assert(0 && "type size mismatch"); } sptr = DtoBitCast(sptr, getPtrToType(t)); - Logger::cout() << "sptr type is now: " << *t << '\n'; + if (Logger::enabled()) + Logger::cout() << "sptr type is now: " << *t << '\n'; } } @@ -2300,7 +2315,8 @@ Expression* vx = (Expression*)elements->data[i]; if (!vx) continue; - Logger::cout() << "getting index " << j << " of " << *sptr << '\n'; + if (Logger::enabled()) + Logger::cout() << "getting index " << j << " of " << *sptr << '\n'; LLValue* arrptr = DtoGEPi(sptr,0,j); DValue* darrptr = new DVarValue(vx->type, arrptr); diff -r 722630261d62 -r 26fce59fe80a gen/tollvm.cpp --- a/gen/tollvm.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/tollvm.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -319,7 +319,8 @@ // something else unsupported else { - Logger::cout() << *ptrTy << '|' << *valTy << '\n'; + if (Logger::enabled()) + Logger::cout() << *ptrTy << '|' << *valTy << '\n'; assert(0); } return 0; diff -r 722630261d62 -r 26fce59fe80a gen/toobj.cpp --- a/gen/toobj.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/toobj.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -61,10 +61,10 @@ Logger::enable(); } - Logger::cout() << "Generating module: " << (md ? md->toChars() : toChars()) << '\n'; + Logger::println("Generating module: %s\n", (md ? md->toChars() : toChars())); LOG_SCOPE; - //printf("codegen: %s\n", srcfile->toChars()); + printf("codegen: %s\n", srcfile->toChars()); // start by deleting the old object file deleteObjFile(); @@ -652,7 +652,8 @@ llvm::GlobalVariable* gvar = new llvm::GlobalVariable(_type,_isconst,_linkage,NULL,_name,gIR->module); this->ir.irGlobal->value = gvar; - Logger::cout() << *gvar << '\n'; + if (Logger::enabled()) + Logger::cout() << *gvar << '\n'; if (static_local) DtoConstInitGlobal(this); diff -r 722630261d62 -r 26fce59fe80a gen/typinf.cpp --- a/gen/typinf.cpp Sun Sep 28 21:09:21 2008 +0200 +++ b/gen/typinf.cpp Wed Oct 01 18:32:31 2008 +0200 @@ -369,7 +369,8 @@ DtoForceConstInitDsymbol(base); const LLStructType* stype = isaStruct(base->type->ir.type->get()); - Logger::cout() << "got stype: " << *stype << '\n'; + if (Logger::enabled()) + Logger::cout() << "got stype: " << *stype << '\n'; // vtbl std::vector sinits;