Mercurial > projects > ldc
diff gen/arrays.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 | 83ca663ecc20 |
children | df196c8dea26 |
line wrap: on
line diff
--- 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<LLValue*, 3> 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 {