Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.

Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
This commit is contained in:
Tomas Lindquist Olsen
2008-08-10 08:37:38 +02:00
parent b2d860374b
commit 9d7f16b967
39 changed files with 693 additions and 455 deletions

View File

@@ -55,9 +55,17 @@ void llvmdc_optimize_module(llvm::Module* m, char lvl, bool doinline);
void Module::genobjfile(int multiobj)
{
bool logenabled = Logger::enabled();
if (llvmForceLogging && !logenabled)
{
Logger::enable();
}
Logger::cout() << "Generating module: " << (md ? md->toChars() : toChars()) << '\n';
LOG_SCOPE;
//printf("codegen: %s\n", srcfile->toChars());
// start by deleting the old object file
deleteObjFile();
@@ -161,10 +169,10 @@ void Module::genobjfile(int multiobj)
if (global.params.fqnPaths)
{
bcpath = LLPath(md->toChars());
bcpath = LLPath(mname);
bcpath.appendSuffix("bc");
llpath = LLPath(md->toChars());
llpath = LLPath(mname);
llpath.appendSuffix("ll");
}
else
@@ -190,6 +198,11 @@ void Module::genobjfile(int multiobj)
delete ir.module;
gTargetData = 0;
gIR = NULL;
if (llvmForceLogging && !logenabled)
{
Logger::disable();
}
}
/* ================================================================== */