Mercurial > projects > ldc
diff gen/toobj.cpp @ 605:e235b80c92bc
Removed useless assert in ArrayLiteralExp::toConstElem
Added second verification pass after optimization
Commented an optimization pass out from lvl2, it turns the IR invalid, see llvm PR 2800
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 16 Sep 2008 16:06:39 +0200 |
parents | 12bda38ea366 |
children | 26fce59fe80a |
line wrap: on
line diff
--- a/gen/toobj.cpp Tue Sep 16 09:00:05 2008 +0200 +++ b/gen/toobj.cpp Tue Sep 16 16:06:39 2008 +0200 @@ -154,6 +154,21 @@ // run optimizer llvmdc_optimize_module(ir.module, global.params.optimizeLevel, global.params.llvmInline); + // verify the llvm + if (!global.params.novalidate && (global.params.optimizeLevel >= 0 || global.params.llvmInline)) { + std::string verifyErr; + Logger::println("Verifying module... again..."); + LOG_SCOPE; + if (llvm::verifyModule(*ir.module,llvm::ReturnStatusAction,&verifyErr)) + { + error("%s", verifyErr.c_str()); + fatal(); + } + else { + Logger::println("Verification passed!"); + } + } + // eventually do our own path stuff, dmd's is a bit strange. typedef llvm::sys::Path LLPath; LLPath bcpath = LLPath(objfile->name->toChars());