Skip to content

Commit 1e233a0

Browse files
committed
Add config option
1 parent e32eab5 commit 1e233a0

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

src/librustc_codegen_llvm/back/write.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,7 @@ pub(crate) unsafe fn optimize(
339339
}
340340

341341
if let Some(opt_level) = config.opt_level {
342-
let use_new_pm = true;
343-
if use_new_pm {
342+
if config.new_llvm_pass_manager {
344343
let unroll_loops =
345344
opt_level != config::OptLevel::Size && opt_level != config::OptLevel::SizeMin;
346345
let prepare_for_thin_lto = cgcx.lto == Lto::Thin

src/librustc_codegen_ssa/back/write.rs

+3
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ pub struct ModuleConfig {
8585
pub vectorize_slp: bool,
8686
pub merge_functions: bool,
8787
pub inline_threshold: Option<usize>,
88+
pub new_llvm_pass_manager: bool,
8889
// Instead of creating an object file by doing LLVM codegen, just
8990
// make the object file bitcode. Provides easy compatibility with
9091
// emscripten's ecc compiler, when used as the linker.
@@ -129,6 +130,7 @@ impl ModuleConfig {
129130
vectorize_slp: false,
130131
merge_functions: false,
131132
inline_threshold: None,
133+
new_llvm_pass_manager: false,
132134
}
133135
}
134136

@@ -137,6 +139,7 @@ impl ModuleConfig {
137139
self.no_prepopulate_passes = sess.opts.cg.no_prepopulate_passes;
138140
self.no_builtins = no_builtins || sess.target.target.options.no_builtins;
139141
self.inline_threshold = sess.opts.cg.inline_threshold;
142+
self.new_llvm_pass_manager = sess.opts.debugging_opts.new_llvm_pass_manager;
140143
self.obj_is_bitcode =
141144
sess.target.target.options.obj_is_bitcode || sess.opts.cg.linker_plugin_lto.enabled();
142145
let embed_bitcode =

src/librustc_session/options.rs

+2
Original file line numberDiff line numberDiff line change
@@ -948,4 +948,6 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
948948
(such as entering an empty infinite loop) by inserting llvm.sideeffect"),
949949
deduplicate_diagnostics: Option<bool> = (None, parse_opt_bool, [UNTRACKED],
950950
"deduplicate identical diagnostics"),
951+
new_llvm_pass_manager: bool = (true, parse_bool, [TRACKED],
952+
"use new LLVM pass manager"),
951953
}

0 commit comments

Comments
 (0)