Mercurial > projects > ldc
comparison gen/toobj.cpp @ 689:06c05906b054
Always run SimplifyCFG to workaround LLVM bug 2613.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 12 Oct 2008 15:33:14 +0200 |
parents | 363bb6c0cc80 |
children | 931333ea35c6 |
comparison
equal
deleted
inserted
replaced
688:9d6d32b969d7 | 689:06c05906b054 |
---|---|
18 #include "llvm/Target/TargetMachine.h" | 18 #include "llvm/Target/TargetMachine.h" |
19 #include "llvm/Target/TargetMachineRegistry.h" | 19 #include "llvm/Target/TargetMachineRegistry.h" |
20 #include "llvm/Module.h" | 20 #include "llvm/Module.h" |
21 #include "llvm/ModuleProvider.h" | 21 #include "llvm/ModuleProvider.h" |
22 #include "llvm/PassManager.h" | 22 #include "llvm/PassManager.h" |
23 #include "llvm/LinkAllPasses.h" | |
23 #include "llvm/System/Program.h" | 24 #include "llvm/System/Program.h" |
24 #include "llvm/System/Path.h" | 25 #include "llvm/System/Path.h" |
25 #include "llvm/Support/raw_ostream.h" | 26 #include "llvm/Support/raw_ostream.h" |
26 | 27 |
27 #include "mars.h" | 28 #include "mars.h" |
159 } | 160 } |
160 else { | 161 else { |
161 Logger::println("Verification passed!"); | 162 Logger::println("Verification passed!"); |
162 } | 163 } |
163 } | 164 } |
165 | |
166 // always run this pass to eliminate dead code that breaks debug info | |
167 llvm::PassManager pm; | |
168 pm.add(new llvm::TargetData(ir.module)); | |
169 pm.add(llvm::createCFGSimplificationPass()); | |
170 pm.run(*ir.module); | |
164 | 171 |
165 // run optimizer | 172 // run optimizer |
166 ldc_optimize_module(ir.module, global.params.optimizeLevel, global.params.llvmInline); | 173 ldc_optimize_module(ir.module, global.params.optimizeLevel, global.params.llvmInline); |
167 | 174 |
168 // verify the llvm | 175 // verify the llvm |