about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2018-03-12 21:15:16 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2018-03-25 03:30:06 +0200
commite31addf7c358aba28ce0910e93d009397a72a05f (patch)
treeda2cfad0130f9a2087fbeda65f2a9b0cc2df549c
parent688275a4009a7a87fb211f0b690f386fc2de8740 (diff)
downloadrust-e31addf7c358aba28ce0910e93d009397a72a05f.tar.gz
rust-e31addf7c358aba28ce0910e93d009397a72a05f.zip
librustc_trans: Gate the preinliner with another -Z flag.
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
-rw-r--r--src/librustc/session/config.rs3
-rw-r--r--src/librustc_trans/llvm_util.rs4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 7f92a087ebf..9fd370c54be 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1254,6 +1254,9 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
          location if it's empty."),
     pgo_use: String = (String::new(), parse_string, [TRACKED],
         "Use PGO profile data from the given profile file."),
+    disable_instrumentation_preinliner: bool =
+        (false, parse_bool, [TRACKED], "Disable the instrumentation pre-inliner, \
+        useful for profiling / PGO."),
     relro_level: Option<RelroLevel> = (None, parse_relro_level, [TRACKED],
         "choose which RELRO level to use"),
     nll: bool = (false, parse_bool, [UNTRACKED],
diff --git a/src/librustc_trans/llvm_util.rs b/src/librustc_trans/llvm_util.rs
index 12364b32d11..1c8f09ce7b3 100644
--- a/src/librustc_trans/llvm_util.rs
+++ b/src/librustc_trans/llvm_util.rs
@@ -61,7 +61,9 @@ unsafe fn configure_llvm(sess: &Session) {
         add("rustc"); // fake program name
         if sess.time_llvm_passes() { add("-time-passes"); }
         if sess.print_llvm_passes() { add("-debug-pass=Structure"); }
-        add("-disable-preinline");
+        if sess.opts.debugging_opts.disable_instrumentation_preinliner {
+            add("-disable-preinline");
+        }
 
         for arg in &sess.opts.cg.llvm_args {
             add(&(*arg));