about summary refs log tree commit diff
path: root/src/librustc_codegen_ssa
diff options
context:
space:
mode:
authorSimonas Kazlauskas <git@kazlauskas.me>2019-02-20 22:27:00 +0200
committerSimonas Kazlauskas <git@kazlauskas.me>2019-03-27 04:03:42 +0200
commit8d4afbe4136933b47082dd1efa9c1132a31dfb0d (patch)
tree6d73dd5ad453677b17d88c4dccf1d4c7b1da27e2 /src/librustc_codegen_ssa
parent54479c624cc24bb852291d83e11cc19389dcb21b (diff)
downloadrust-8d4afbe4136933b47082dd1efa9c1132a31dfb0d.tar.gz
rust-8d4afbe4136933b47082dd1efa9c1132a31dfb0d.zip
Use informational target machine for metadata
Since there is nothing to optimise there...
Diffstat (limited to 'src/librustc_codegen_ssa')
-rw-r--r--src/librustc_codegen_ssa/back/write.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/librustc_codegen_ssa/back/write.rs b/src/librustc_codegen_ssa/back/write.rs
index 859dfb99d92..55b7855ac08 100644
--- a/src/librustc_codegen_ssa/back/write.rs
+++ b/src/librustc_codegen_ssa/back/write.rs
@@ -1075,7 +1075,13 @@ fn start_executing_work<B: ExtraBackendMethods>(
         None
     };
 
-    let ol = tcx.backend_optimization_level(LOCAL_CRATE);
+    let ol = if tcx.sess.opts.debugging_opts.no_codegen
+             || !tcx.sess.opts.output_types.should_codegen() {
+        // If we know that we won’t be doing codegen, create target machines without optimisation.
+        config::OptLevel::No
+    } else {
+        tcx.backend_optimization_level(LOCAL_CRATE)
+    };
     let cgcx = CodegenContext::<B> {
         backend: backend.clone(),
         crate_types: sess.crate_types.borrow().clone(),