aboutsummaryrefslogtreecommitdiff
path: root/src/comp
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2011-04-26 18:48:02 -0700
committerPatrick Walton <[email protected]>2011-04-26 19:01:24 -0700
commit532a65485dc2f6a18a81c513c3abfbb34cb88e65 (patch)
tree86ffccb362de2f9e293eebc8d3b9691fc47058c7 /src/comp
parentFix the interaction between various flags in #fmt (diff)
downloadrust-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.rs25
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),