diff options
| author | Patrick Walton <[email protected]> | 2011-04-26 18:48:02 -0700 |
|---|---|---|
| committer | Patrick Walton <[email protected]> | 2011-04-26 19:01:24 -0700 |
| commit | 532a65485dc2f6a18a81c513c3abfbb34cb88e65 (patch) | |
| tree | 86ffccb362de2f9e293eebc8d3b9691fc47058c7 /src/comp | |
| parent | Fix the interaction between various flags in #fmt (diff) | |
| download | rust-532a65485dc2f6a18a81c513c3abfbb34cb88e65.tar.xz rust-532a65485dc2f6a18a81c513c3abfbb34cb88e65.zip | |
rustc: Actually write the optimized bitcode when --save-temps is on
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/middle/trans.rs | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index d14bb86c..a36821a7 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -7110,18 +7110,6 @@ fn run_passes(ModuleRef llmod, bool opt, bool verify, bool save_temps, llvm.LLVMAddStripDeadPrototypesPass(pm.llpm); llvm.LLVMAddDeadTypeEliminationPass(pm.llpm); llvm.LLVMAddConstantMergePass(pm.llpm); - - // Generate a post-optimization intermediate file if -save-temps was - // specified. - if (save_temps) { - alt (ot) { - case (output_type_bitcode) { /* nothing to do */ } - case (_) { - auto filename = mk_intermediate_name(output, "opt.bc"); - llvm.LLVMWriteBitcodeToFile(llmod, _str.buf(filename)); - } - } - } } if (verify) { @@ -7140,6 +7128,19 @@ fn run_passes(ModuleRef llmod, bool opt, bool verify, bool save_temps, FileType = LLVMAssemblyFile; } + // Write optimized bitcode if --save-temps was on. + if (save_temps) { + alt (ot) { + case (output_type_bitcode) { /* nothing to do */ } + case (_) { + auto filename = mk_intermediate_name(output, "opt.bc"); + llvm.LLVMRunPassManager(pm.llpm, llmod); + llvm.LLVMWriteBitcodeToFile(llmod, _str.buf(filename)); + pm = mk_pass_manager(); + } + } + } + llvm.LLVMRustWriteOutputFile(pm.llpm, llmod, _str.buf(x86.get_target_triple()), _str.buf(output), |