Mercurial > projects > ldc
diff gen/toobj.cpp @ 125:c42d245468ea trunk
[svn r129] Started AA literals.
Fixed #15, passing -O will now invoke the optimizer before writing bitcode.
author | lindquist |
---|---|
date | Wed, 28 Nov 2007 04:52:35 +0100 |
parents | 9c79b61fb638 |
children | 8096ba7082db |
line wrap: on
line diff
--- a/gen/toobj.cpp Wed Nov 28 03:34:37 2007 +0100 +++ b/gen/toobj.cpp Wed Nov 28 04:52:35 2007 +0100 @@ -43,8 +43,12 @@ ////////////////////////////////////////////////////////////////////////////////////////// -void -Module::genobjfile() +// in gen/optimize.cpp +void llvmdc_optimize_module(llvm::Module* m, char lvl, bool doinline); + +////////////////////////////////////////////////////////////////////////////////////////// + +void Module::genobjfile() { Logger::cout() << "Generating module: " << (md ? md->toChars() : toChars()) << '\n'; LOG_SCOPE; @@ -112,8 +116,6 @@ // do this again as moduleinfo might have pulled something in! DtoEmptyAllLists(); - gTargetData = 0; - // emit the llvm main function if necessary if (ir.emitMain) { DtoMain(); @@ -134,8 +136,10 @@ } } - // run passes - // TODO + // run optimizer + if (global.params.optimize) { + llvmdc_optimize_module(ir.module, global.params.optimizeLevel, global.params.useInline); + } // write bytecode { @@ -152,6 +156,7 @@ } delete ir.module; + gTargetData = 0; gIR = NULL; }