From d82c8068a3243a9f021e7aa7cf5c4f0c1d2bd89c Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Sun, 12 Oct 2008 15:33:14 +0200 Subject: [PATCH] Always run SimplifyCFG to workaround LLVM bug 2613. --- gen/toobj.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gen/toobj.cpp b/gen/toobj.cpp index 41a68724..5fe2a2c2 100644 --- a/gen/toobj.cpp +++ b/gen/toobj.cpp @@ -20,6 +20,7 @@ #include "llvm/Module.h" #include "llvm/ModuleProvider.h" #include "llvm/PassManager.h" +#include "llvm/LinkAllPasses.h" #include "llvm/System/Program.h" #include "llvm/System/Path.h" #include "llvm/Support/raw_ostream.h" @@ -162,6 +163,12 @@ void Module::genobjfile(int multiobj, char** envp) } } + // always run this pass to eliminate dead code that breaks debug info + llvm::PassManager pm; + pm.add(new llvm::TargetData(ir.module)); + pm.add(llvm::createCFGSimplificationPass()); + pm.run(*ir.module); + // run optimizer ldc_optimize_module(ir.module, global.params.optimizeLevel, global.params.llvmInline);