diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs index 9a11b53488786..2864697362057 100644 --- a/compiler/rustc_interface/src/tests.rs +++ b/compiler/rustc_interface/src/tests.rs @@ -566,7 +566,7 @@ fn test_debugging_options_tracking_hash() { tracked!(link_only, true); tracked!(merge_functions, Some(MergeFunctions::Disabled)); tracked!(mir_emit_retag, true); - tracked!(mir_opt_level, 3); + tracked!(mir_opt_level, Some(4)); tracked!(mutable_noalias, true); tracked!(new_llvm_pass_manager, true); tracked!(no_codegen, true); diff --git a/compiler/rustc_mir/src/transform/const_goto.rs b/compiler/rustc_mir/src/transform/const_goto.rs index 3eb2e757644c4..b5c8b4bebc360 100644 --- a/compiler/rustc_mir/src/transform/const_goto.rs +++ b/compiler/rustc_mir/src/transform/const_goto.rs @@ -28,7 +28,7 @@ pub struct ConstGoto; impl<'tcx> MirPass<'tcx> for ConstGoto { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - if tcx.sess.opts.debugging_opts.mir_opt_level < 3 { + if tcx.sess.mir_opt_level() < 4 { return; } trace!("Running ConstGoto on {:?}", body.source); diff --git a/compiler/rustc_mir/src/transform/const_prop.rs b/compiler/rustc_mir/src/transform/const_prop.rs index 2a0e5e2c9c5d2..263df44f4d149 100644 --- a/compiler/rustc_mir/src/transform/const_prop.rs +++ b/compiler/rustc_mir/src/transform/const_prop.rs @@ -725,7 +725,7 @@ impl<'mir, 'tcx> ConstPropagator<'mir, 'tcx> { return None; } - if self.tcx.sess.opts.debugging_opts.mir_opt_level >= 3 { + if self.tcx.sess.mir_opt_level() >= 4 { self.eval_rvalue_with_identities(rvalue, place) } else { self.use_ecx(|this| this.ecx.eval_rvalue_into_place(rvalue, place)) @@ -903,7 +903,7 @@ impl<'mir, 'tcx> ConstPropagator<'mir, 'tcx> { /// Returns `true` if and only if this `op` should be const-propagated into. fn should_const_prop(&mut self, op: &OpTy<'tcx>) -> bool { - let mir_opt_level = self.tcx.sess.opts.debugging_opts.mir_opt_level; + let mir_opt_level = self.tcx.sess.mir_opt_level(); if mir_opt_level == 0 { return false; @@ -1071,9 +1071,9 @@ impl<'mir, 'tcx> MutVisitor<'tcx> for ConstPropagator<'mir, 'tcx> { fn visit_operand(&mut self, operand: &mut Operand<'tcx>, location: Location) { self.super_operand(operand, location); - // Only const prop copies and moves on `mir_opt_level=2` as doing so + // Only const prop copies and moves on `mir_opt_level=3` as doing so // currently slightly increases compile time in some cases. - if self.tcx.sess.opts.debugging_opts.mir_opt_level >= 2 { + if self.tcx.sess.mir_opt_level() >= 3 { self.propagate_operand(operand) } } @@ -1253,7 +1253,7 @@ impl<'mir, 'tcx> MutVisitor<'tcx> for ConstPropagator<'mir, 'tcx> { TerminatorKind::SwitchInt { ref mut discr, .. } => { // FIXME: This is currently redundant with `visit_operand`, but sadly // always visiting operands currently causes a perf regression in LLVM codegen, so - // `visit_operand` currently only runs for propagates places for `mir_opt_level=3`. + // `visit_operand` currently only runs for propagates places for `mir_opt_level=4`. self.propagate_operand(discr) } // None of these have Operands to const-propagate. @@ -1272,7 +1272,7 @@ impl<'mir, 'tcx> MutVisitor<'tcx> for ConstPropagator<'mir, 'tcx> { // Every argument in our function calls have already been propagated in `visit_operand`. // // NOTE: because LLVM codegen gives slight performance regressions with it, so this is - // gated on `mir_opt_level=2`. + // gated on `mir_opt_level=3`. TerminatorKind::Call { .. } => {} } diff --git a/compiler/rustc_mir/src/transform/deduplicate_blocks.rs b/compiler/rustc_mir/src/transform/deduplicate_blocks.rs index 5f09159e91b20..c4b51099f5389 100644 --- a/compiler/rustc_mir/src/transform/deduplicate_blocks.rs +++ b/compiler/rustc_mir/src/transform/deduplicate_blocks.rs @@ -16,7 +16,7 @@ pub struct DeduplicateBlocks; impl<'tcx> MirPass<'tcx> for DeduplicateBlocks { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - if tcx.sess.opts.debugging_opts.mir_opt_level < 3 { + if tcx.sess.mir_opt_level() < 4 { return; } debug!("Running DeduplicateBlocks on `{:?}`", body.source); diff --git a/compiler/rustc_mir/src/transform/dest_prop.rs b/compiler/rustc_mir/src/transform/dest_prop.rs index 46de5dba6e0ed..0822ab73c4c67 100644 --- a/compiler/rustc_mir/src/transform/dest_prop.rs +++ b/compiler/rustc_mir/src/transform/dest_prop.rs @@ -127,9 +127,9 @@ pub struct DestinationPropagation; impl<'tcx> MirPass<'tcx> for DestinationPropagation { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - // Only run at mir-opt-level=2 or higher for now (we don't fix up debuginfo and remove + // Only run at mir-opt-level=3 or higher for now (we don't fix up debuginfo and remove // storage statements at the moment). - if tcx.sess.opts.debugging_opts.mir_opt_level <= 1 { + if tcx.sess.mir_opt_level() < 3 { return; } diff --git a/compiler/rustc_mir/src/transform/early_otherwise_branch.rs b/compiler/rustc_mir/src/transform/early_otherwise_branch.rs index b16a99d7f0dca..821167fd9f05c 100644 --- a/compiler/rustc_mir/src/transform/early_otherwise_branch.rs +++ b/compiler/rustc_mir/src/transform/early_otherwise_branch.rs @@ -26,7 +26,7 @@ pub struct EarlyOtherwiseBranch; impl<'tcx> MirPass<'tcx> for EarlyOtherwiseBranch { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - if tcx.sess.opts.debugging_opts.mir_opt_level < 2 { + if tcx.sess.mir_opt_level() < 3 { return; } trace!("running EarlyOtherwiseBranch on {:?}", body.source); diff --git a/compiler/rustc_mir/src/transform/inline.rs b/compiler/rustc_mir/src/transform/inline.rs index 0a899273efe6c..cf85503b3d54b 100644 --- a/compiler/rustc_mir/src/transform/inline.rs +++ b/compiler/rustc_mir/src/transform/inline.rs @@ -52,7 +52,7 @@ crate fn is_enabled(tcx: TyCtxt<'_>) -> bool { return enabled; } - tcx.sess.opts.debugging_opts.mir_opt_level >= 2 + tcx.sess.mir_opt_level() >= 3 } impl<'tcx> MirPass<'tcx> for Inline { diff --git a/compiler/rustc_mir/src/transform/match_branches.rs b/compiler/rustc_mir/src/transform/match_branches.rs index 92b4ae397ae5b..e254f0553aa59 100644 --- a/compiler/rustc_mir/src/transform/match_branches.rs +++ b/compiler/rustc_mir/src/transform/match_branches.rs @@ -40,7 +40,7 @@ pub struct MatchBranchSimplification; impl<'tcx> MirPass<'tcx> for MatchBranchSimplification { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - if tcx.sess.opts.debugging_opts.mir_opt_level <= 1 { + if tcx.sess.mir_opt_level() < 3 { return; } diff --git a/compiler/rustc_mir/src/transform/mod.rs b/compiler/rustc_mir/src/transform/mod.rs index 9cb8abf75c424..13546442f6652 100644 --- a/compiler/rustc_mir/src/transform/mod.rs +++ b/compiler/rustc_mir/src/transform/mod.rs @@ -475,7 +475,7 @@ fn run_post_borrowck_cleanup_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tc } fn run_optimization_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - let mir_opt_level = tcx.sess.opts.debugging_opts.mir_opt_level; + let mir_opt_level = tcx.sess.mir_opt_level(); // Lowering generator control-flow and variables has to happen before we do anything else // to them. We run some optimizations before that, because they may be harder to do on the state diff --git a/compiler/rustc_mir/src/transform/multiple_return_terminators.rs b/compiler/rustc_mir/src/transform/multiple_return_terminators.rs index 617086622cc1a..4aaa0baa9f46a 100644 --- a/compiler/rustc_mir/src/transform/multiple_return_terminators.rs +++ b/compiler/rustc_mir/src/transform/multiple_return_terminators.rs @@ -10,7 +10,7 @@ pub struct MultipleReturnTerminators; impl<'tcx> MirPass<'tcx> for MultipleReturnTerminators { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - if tcx.sess.opts.debugging_opts.mir_opt_level < 3 { + if tcx.sess.mir_opt_level() < 4 { return; } diff --git a/compiler/rustc_mir/src/transform/nrvo.rs b/compiler/rustc_mir/src/transform/nrvo.rs index ce02fb261df6f..445dc12909c14 100644 --- a/compiler/rustc_mir/src/transform/nrvo.rs +++ b/compiler/rustc_mir/src/transform/nrvo.rs @@ -34,7 +34,7 @@ pub struct RenameReturnPlace; impl<'tcx> MirPass<'tcx> for RenameReturnPlace { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut mir::Body<'tcx>) { - if tcx.sess.opts.debugging_opts.mir_opt_level == 0 { + if tcx.sess.mir_opt_level() == 0 { return; } diff --git a/compiler/rustc_mir/src/transform/unreachable_prop.rs b/compiler/rustc_mir/src/transform/unreachable_prop.rs index e39c8656021b2..658c6b6e9db20 100644 --- a/compiler/rustc_mir/src/transform/unreachable_prop.rs +++ b/compiler/rustc_mir/src/transform/unreachable_prop.rs @@ -12,8 +12,8 @@ pub struct UnreachablePropagation; impl MirPass<'_> for UnreachablePropagation { fn run_pass<'tcx>(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { - if tcx.sess.opts.debugging_opts.mir_opt_level < 3 { - // Enable only under -Zmir-opt-level=3 as in some cases (check the deeply-nested-opt + if tcx.sess.mir_opt_level() < 4 { + // Enable only under -Zmir-opt-level=4 as in some cases (check the deeply-nested-opt // perf benchmark) LLVM may spend quite a lot of time optimizing the generated code. return; } diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs index 77a9a2b227ca0..f25828e21618f 100644 --- a/compiler/rustc_session/src/config.rs +++ b/compiler/rustc_session/src/config.rs @@ -1938,21 +1938,23 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options { Some(SymbolManglingVersion::V0) => {} } - if debugging_opts.mir_opt_level > 1 { - // Functions inlined during MIR transform can, at best, make it impossible to - // effectively cover inlined functions, and, at worst, break coverage map generation - // during LLVM codegen. For example, function counter IDs are only unique within a - // function. Inlining after these counters are injected can produce duplicate counters, - // resulting in an invalid coverage map (and ICE); so this option combination is not - // allowed. - early_warn( - error_format, - &format!( - "`-Z mir-opt-level={}` (or any level > 1) enables function inlining, which \ + if let Some(mir_opt_level) = debugging_opts.mir_opt_level { + if mir_opt_level > 1 { + // Functions inlined during MIR transform can, at best, make it impossible to + // effectively cover inlined functions, and, at worst, break coverage map generation + // during LLVM codegen. For example, function counter IDs are only unique within a + // function. Inlining after these counters are injected can produce duplicate counters, + // resulting in an invalid coverage map (and ICE); so this option combination is not + // allowed. + early_warn( + error_format, + &format!( + "`-Z mir-opt-level={}` (or any level > 1) enables function inlining, which \ is incompatible with `-Z instrument-coverage`. Inlining will be disabled.", - debugging_opts.mir_opt_level, - ), - ); + mir_opt_level, + ), + ); + } } } diff --git a/compiler/rustc_session/src/options.rs b/compiler/rustc_session/src/options.rs index 6e7d39547a143..79bbad8307ba7 100644 --- a/compiler/rustc_session/src/options.rs +++ b/compiler/rustc_session/src/options.rs @@ -999,8 +999,8 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, mir_emit_retag: bool = (false, parse_bool, [TRACKED], "emit Retagging MIR statements, interpreted e.g., by miri; implies -Zmir-opt-level=0 \ (default: no)"), - mir_opt_level: usize = (1, parse_uint, [TRACKED], - "MIR optimization level (0-3; default: 1)"), + mir_opt_level: Option = (None, parse_opt_uint, [TRACKED], + "MIR optimization level (0-4; default: 1 in non optimized builds and 2 in optimized builds)"), mutable_noalias: bool = (false, parse_bool, [TRACKED], "emit noalias metadata for mutable references (default: no)"), new_llvm_pass_manager: bool = (false, parse_bool, [TRACKED], diff --git a/compiler/rustc_session/src/session.rs b/compiler/rustc_session/src/session.rs index 493bbb3a76201..963df0fb4d70b 100644 --- a/compiler/rustc_session/src/session.rs +++ b/compiler/rustc_session/src/session.rs @@ -640,6 +640,12 @@ impl Session { pub fn binary_dep_depinfo(&self) -> bool { self.opts.debugging_opts.binary_dep_depinfo } + pub fn mir_opt_level(&self) -> usize { + self.opts + .debugging_opts + .mir_opt_level + .unwrap_or_else(|| if self.opts.optimize != config::OptLevel::No { 2 } else { 1 }) + } /// Gets the features enabled for the current compilation session. /// DO NOT USE THIS METHOD if there is a TyCtxt available, as it circumvents diff --git a/src/test/codegen/issue-59352.rs b/src/test/codegen/issue-59352.rs index 28bb85912324e..d271fe027e309 100644 --- a/src/test/codegen/issue-59352.rs +++ b/src/test/codegen/issue-59352.rs @@ -5,8 +5,8 @@ // Once the optimizer can do that, mir-opt/issues/issue-59352.rs will need to be updated and this // test case should be removed as it will become redundant. -// mir-opt-level=2 enables inlining and enables LLVM to optimize away the unreachable panic call. -// compile-flags: -O -Z mir-opt-level=2 +// mir-opt-level=3 enables inlining and enables LLVM to optimize away the unreachable panic call. +// compile-flags: -O -Z mir-opt-level=3 #![crate_type = "rlib"] diff --git a/src/test/codegen/naked-noinline.rs b/src/test/codegen/naked-noinline.rs index 2a2208d4fce39..d9e6f6c34ec5a 100644 --- a/src/test/codegen/naked-noinline.rs +++ b/src/test/codegen/naked-noinline.rs @@ -1,5 +1,5 @@ // Checks that naked functions are never inlined. -// compile-flags: -O -Zmir-opt-level=2 +// compile-flags: -O -Zmir-opt-level=3 // ignore-wasm32 #![crate_type = "lib"] #![feature(asm)] diff --git a/src/test/codegen/sanitizer-no-sanitize-inlining.rs b/src/test/codegen/sanitizer-no-sanitize-inlining.rs index be0547afa4cd5..f4af60baefe9d 100644 --- a/src/test/codegen/sanitizer-no-sanitize-inlining.rs +++ b/src/test/codegen/sanitizer-no-sanitize-inlining.rs @@ -4,8 +4,8 @@ // needs-sanitizer-address // needs-sanitizer-leak // revisions: ASAN LSAN -//[ASAN] compile-flags: -Zsanitizer=address -C opt-level=3 -Z mir-opt-level=3 -//[LSAN] compile-flags: -Zsanitizer=leak -C opt-level=3 -Z mir-opt-level=3 +//[ASAN] compile-flags: -Zsanitizer=address -C opt-level=3 -Z mir-opt-level=4 +//[LSAN] compile-flags: -Zsanitizer=leak -C opt-level=3 -Z mir-opt-level=4 #![crate_type="lib"] #![feature(no_sanitize)] diff --git a/src/test/codegen/try_identity.rs b/src/test/codegen/try_identity.rs index d51bd575719d4..81e2435e5b80e 100644 --- a/src/test/codegen/try_identity.rs +++ b/src/test/codegen/try_identity.rs @@ -1,4 +1,4 @@ -// compile-flags: -C no-prepopulate-passes -O -Z mir-opt-level=2 -Zunsound-mir-opts +// compile-flags: -C no-prepopulate-passes -O -Z mir-opt-level=3 -Zunsound-mir-opts // Ensure that `x?` has no overhead on `Result` due to identity `match`es in lowering. // This requires inlining to trigger the MIR optimizations in `SimplifyArmIdentity`. diff --git a/src/test/mir-opt/const_prop/boolean_identities.rs b/src/test/mir-opt/const_prop/boolean_identities.rs index 6dae07dfbd129..57164e3e794d2 100644 --- a/src/test/mir-opt/const_prop/boolean_identities.rs +++ b/src/test/mir-opt/const_prop/boolean_identities.rs @@ -1,4 +1,4 @@ -// compile-flags: -O -Zmir-opt-level=3 +// compile-flags: -O -Zmir-opt-level=4 // EMIT_MIR boolean_identities.test.ConstProp.diff pub fn test(x: bool, y: bool) -> bool { diff --git a/src/test/mir-opt/const_prop/issue-66971.rs b/src/test/mir-opt/const_prop/issue-66971.rs index 986177b5c0adc..81eccae46b97e 100644 --- a/src/test/mir-opt/const_prop/issue-66971.rs +++ b/src/test/mir-opt/const_prop/issue-66971.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // Due to a bug in propagating scalar pairs the assertion below used to fail. In the expected // outputs below, after ConstProp this is how _2 would look like with the bug: diff --git a/src/test/mir-opt/const_prop/issue-67019.rs b/src/test/mir-opt/const_prop/issue-67019.rs index d277bd5869c79..c78b8b971783f 100644 --- a/src/test/mir-opt/const_prop/issue-67019.rs +++ b/src/test/mir-opt/const_prop/issue-67019.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // This used to ICE in const-prop diff --git a/src/test/mir-opt/const_prop/mult_by_zero.rs b/src/test/mir-opt/const_prop/mult_by_zero.rs index 1cb50155b5e77..b0ecdf1818e4d 100644 --- a/src/test/mir-opt/const_prop/mult_by_zero.rs +++ b/src/test/mir-opt/const_prop/mult_by_zero.rs @@ -1,4 +1,4 @@ -// compile-flags: -O -Zmir-opt-level=3 +// compile-flags: -O -Zmir-opt-level=4 // EMIT_MIR mult_by_zero.test.ConstProp.diff fn test(x : i32) -> i32 { diff --git a/src/test/mir-opt/early_otherwise_branch.rs b/src/test/mir-opt/early_otherwise_branch.rs index 77003442080f4..548213ab83caf 100644 --- a/src/test/mir-opt/early_otherwise_branch.rs +++ b/src/test/mir-opt/early_otherwise_branch.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // EMIT_MIR early_otherwise_branch.opt1.EarlyOtherwiseBranch.diff fn opt1(x: Option, y: Option) -> u32 { match (x, y) { diff --git a/src/test/mir-opt/early_otherwise_branch_3_element_tuple.rs b/src/test/mir-opt/early_otherwise_branch_3_element_tuple.rs index 1d6877d67df82..aa304f747f748 100644 --- a/src/test/mir-opt/early_otherwise_branch_3_element_tuple.rs +++ b/src/test/mir-opt/early_otherwise_branch_3_element_tuple.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // EMIT_MIR early_otherwise_branch_3_element_tuple.opt1.EarlyOtherwiseBranch.diff fn opt1(x: Option, y: Option, z: Option) -> u32 { diff --git a/src/test/mir-opt/early_otherwise_branch_68867.rs b/src/test/mir-opt/early_otherwise_branch_68867.rs index b822c58f550b7..e11337643dacb 100644 --- a/src/test/mir-opt/early_otherwise_branch_68867.rs +++ b/src/test/mir-opt/early_otherwise_branch_68867.rs @@ -1,5 +1,5 @@ // ignore-tidy-linelength -// compile-flags: -Z mir-opt-level=3 -Zunsound-mir-opts +// compile-flags: -Z mir-opt-level=4 -Zunsound-mir-opts // example from #68867 type CSSFloat = f32; diff --git a/src/test/mir-opt/early_otherwise_branch_noopt.rs b/src/test/mir-opt/early_otherwise_branch_noopt.rs index bd15f520dfcd4..aa9ddf485b5aa 100644 --- a/src/test/mir-opt/early_otherwise_branch_noopt.rs +++ b/src/test/mir-opt/early_otherwise_branch_noopt.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // must not optimize as it does not follow the pattern of // left and right hand side being the same variant diff --git a/src/test/mir-opt/inline/inline-into-box-place.rs b/src/test/mir-opt/inline/inline-into-box-place.rs index 57298605b1873..049a97816f68b 100644 --- a/src/test/mir-opt/inline/inline-into-box-place.rs +++ b/src/test/mir-opt/inline/inline-into-box-place.rs @@ -1,6 +1,6 @@ // ignore-endian-big // ignore-wasm32-bare compiled with panic=abort by default -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // EMIT_MIR_FOR_EACH_BIT_WIDTH #![feature(box_syntax)] // EMIT_MIR inline_into_box_place.main.Inline.diff diff --git a/src/test/mir-opt/inline/inline-trait-method_2.rs b/src/test/mir-opt/inline/inline-trait-method_2.rs index 6e5de8315a1cb..378e71a25673f 100644 --- a/src/test/mir-opt/inline/inline-trait-method_2.rs +++ b/src/test/mir-opt/inline/inline-trait-method_2.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z span_free_formats -Z mir-opt-level=3 +// compile-flags: -Z span_free_formats -Z mir-opt-level=4 // EMIT_MIR inline_trait_method_2.test2.Inline.after.mir fn test2(x: &dyn X) -> bool { diff --git a/src/test/mir-opt/issues/issue-59352.rs b/src/test/mir-opt/issues/issue-59352.rs index 9e59337a01d5c..1e0045555ab84 100644 --- a/src/test/mir-opt/issues/issue-59352.rs +++ b/src/test/mir-opt/issues/issue-59352.rs @@ -7,7 +7,7 @@ // removed. // EMIT_MIR issue_59352.num_to_digit.PreCodegen.after.mir -// compile-flags: -Z mir-opt-level=2 -Z span_free_formats +// compile-flags: -Z mir-opt-level=3 -Z span_free_formats pub fn num_to_digit(num: char) -> u32 { // CHECK-NOT: panic diff --git a/src/test/mir-opt/multiple_return_terminators.rs b/src/test/mir-opt/multiple_return_terminators.rs index b73a51d483561..a2b902d148363 100644 --- a/src/test/mir-opt/multiple_return_terminators.rs +++ b/src/test/mir-opt/multiple_return_terminators.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // EMIT_MIR multiple_return_terminators.test.MultipleReturnTerminators.diff fn test(x: bool) { diff --git a/src/test/mir-opt/simplify-arm-identity.rs b/src/test/mir-opt/simplify-arm-identity.rs index 0a59032e87ba0..bedc86bbacb8c 100644 --- a/src/test/mir-opt/simplify-arm-identity.rs +++ b/src/test/mir-opt/simplify-arm-identity.rs @@ -1,7 +1,7 @@ // Checks that `SimplifyArmIdentity` is not applied if enums have incompatible layouts. // Regression test for issue #66856. // -// compile-flags: -Zmir-opt-level=2 +// compile-flags: -Zmir-opt-level=3 // EMIT_MIR_FOR_EACH_BIT_WIDTH enum Src { diff --git a/src/test/mir-opt/simplify-arm.rs b/src/test/mir-opt/simplify-arm.rs index a7df786357b35..50b5147e0cf65 100644 --- a/src/test/mir-opt/simplify-arm.rs +++ b/src/test/mir-opt/simplify-arm.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 -Zunsound-mir-opts +// compile-flags: -Z mir-opt-level=3 -Zunsound-mir-opts // EMIT_MIR simplify_arm.id.SimplifyArmIdentity.diff // EMIT_MIR simplify_arm.id.SimplifyBranchSame.diff // EMIT_MIR simplify_arm.id_result.SimplifyArmIdentity.diff diff --git a/src/test/ui/const-generics/issues/issue-75299.rs b/src/test/ui/const-generics/issues/issue-75299.rs index 23f30a1eea073..9d3f25b3b47f8 100644 --- a/src/test/ui/const-generics/issues/issue-75299.rs +++ b/src/test/ui/const-generics/issues/issue-75299.rs @@ -1,4 +1,4 @@ -// compile-flags: -Zmir-opt-level=3 +// compile-flags: -Zmir-opt-level=4 // run-pass #![feature(const_generics)] diff --git a/src/test/ui/const_prop/inline_spans.rs b/src/test/ui/const_prop/inline_spans.rs index 32902b49d0284..adc7874104ae6 100644 --- a/src/test/ui/const_prop/inline_spans.rs +++ b/src/test/ui/const_prop/inline_spans.rs @@ -1,5 +1,5 @@ // build-fail -// compile-flags: -Zmir-opt-level=2 +// compile-flags: -Zmir-opt-level=3 #![deny(warnings)] diff --git a/src/test/ui/const_prop/inline_spans_lint_attribute.rs b/src/test/ui/const_prop/inline_spans_lint_attribute.rs index 656ff02dc67ef..1db53d77193f2 100644 --- a/src/test/ui/const_prop/inline_spans_lint_attribute.rs +++ b/src/test/ui/const_prop/inline_spans_lint_attribute.rs @@ -1,6 +1,6 @@ // Must be build-pass, because check-pass will not run const prop and thus not emit the lint anyway. // build-pass -// compile-flags: -Zmir-opt-level=2 +// compile-flags: -Zmir-opt-level=3 #![deny(warnings)] diff --git a/src/test/ui/consts/issue-66345.rs b/src/test/ui/consts/issue-66345.rs index 7d0de73007c8c..4971d96476f43 100644 --- a/src/test/ui/consts/issue-66345.rs +++ b/src/test/ui/consts/issue-66345.rs @@ -1,8 +1,8 @@ // run-pass -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // Checks that the compiler does not ICE when passing references to field of by-value struct -// with -Z mir-opt-level=3 +// with -Z mir-opt-level=4 fn do_nothing(_: &()) {} diff --git a/src/test/ui/consts/issue-67529.rs b/src/test/ui/consts/issue-67529.rs index df4bc668bee17..dd24c2d27e27a 100644 --- a/src/test/ui/consts/issue-67529.rs +++ b/src/test/ui/consts/issue-67529.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // run-pass struct Baz { diff --git a/src/test/ui/consts/issue-67640.rs b/src/test/ui/consts/issue-67640.rs index bc0ee8d386f0a..4c71a2e022446 100644 --- a/src/test/ui/consts/issue-67640.rs +++ b/src/test/ui/consts/issue-67640.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // run-pass struct X { diff --git a/src/test/ui/consts/issue-67641.rs b/src/test/ui/consts/issue-67641.rs index f50fba287a231..e5a74f15654c4 100644 --- a/src/test/ui/consts/issue-67641.rs +++ b/src/test/ui/consts/issue-67641.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // run-pass use std::cell::Cell; diff --git a/src/test/ui/consts/issue-67862.rs b/src/test/ui/consts/issue-67862.rs index 84f72154d262f..b9e96a87f1472 100644 --- a/src/test/ui/consts/issue-67862.rs +++ b/src/test/ui/consts/issue-67862.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // run-pass fn e220() -> (i64, i64) { diff --git a/src/test/ui/consts/trait_specialization.rs b/src/test/ui/consts/trait_specialization.rs index 3adbbb5304634..c581ef6b0f7bb 100644 --- a/src/test/ui/consts/trait_specialization.rs +++ b/src/test/ui/consts/trait_specialization.rs @@ -1,5 +1,5 @@ // ignore-wasm32-bare which doesn't support `std::process:exit()` -// compile-flags: -Zmir-opt-level=2 +// compile-flags: -Zmir-opt-level=3 // run-pass // Tests that specialization does not cause optimizations running on polymorphic MIR to resolve diff --git a/src/test/ui/dest-prop/skeptic-miscompile.rs b/src/test/ui/dest-prop/skeptic-miscompile.rs index c27a1f04532e7..4bb61dbc7f400 100644 --- a/src/test/ui/dest-prop/skeptic-miscompile.rs +++ b/src/test/ui/dest-prop/skeptic-miscompile.rs @@ -1,6 +1,6 @@ // run-pass -// compile-flags: -Zmir-opt-level=2 +// compile-flags: -Zmir-opt-level=3 trait IterExt: Iterator { fn fold_ex(mut self, init: B, mut f: F) -> B diff --git a/src/test/ui/issues/issue-50411.rs b/src/test/ui/issues/issue-50411.rs index 1bf1270781747..cd728b15256e9 100644 --- a/src/test/ui/issues/issue-50411.rs +++ b/src/test/ui/issues/issue-50411.rs @@ -3,7 +3,7 @@ // elaborate-drops invoked on it) and then try to elaboate drops a // second time. Uncool. -// compile-flags:-Zmir-opt-level=3 +// compile-flags:-Zmir-opt-level=4 // build-pass fn main() { diff --git a/src/test/ui/issues/issue-50865-private-impl-trait/auxiliary/lib.rs b/src/test/ui/issues/issue-50865-private-impl-trait/auxiliary/lib.rs index fb4bf2b8b44e7..1e20a54606955 100644 --- a/src/test/ui/issues/issue-50865-private-impl-trait/auxiliary/lib.rs +++ b/src/test/ui/issues/issue-50865-private-impl-trait/auxiliary/lib.rs @@ -1,5 +1,5 @@ // revisions: default miropt -//[miropt]compile-flags: -Z mir-opt-level=2 +//[miropt]compile-flags: -Z mir-opt-level=3 // ~^ This flag is for #77668, it used to be ICE. #![crate_type = "lib"] diff --git a/src/test/ui/issues/issue-77002.rs b/src/test/ui/issues/issue-77002.rs index c7dd3cf810938..0c37346eaf803 100644 --- a/src/test/ui/issues/issue-77002.rs +++ b/src/test/ui/issues/issue-77002.rs @@ -1,4 +1,4 @@ -// compile-flags: -Zmir-opt-level=2 -Copt-level=0 +// compile-flags: -Zmir-opt-level=3 -Copt-level=0 // run-pass type M = [i64; 2]; diff --git a/src/test/ui/mir/auxiliary/issue_76375_aux.rs b/src/test/ui/mir/auxiliary/issue_76375_aux.rs index 72f32ecf7ea22..90f4df739f12a 100644 --- a/src/test/ui/mir/auxiliary/issue_76375_aux.rs +++ b/src/test/ui/mir/auxiliary/issue_76375_aux.rs @@ -1,5 +1,5 @@ // edition:2018 -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 #[inline(always)] pub fn copy_prop(s: bool) -> String { diff --git a/src/test/ui/mir/issue-66851.rs b/src/test/ui/mir/issue-66851.rs index 72d62a30a337a..878ad4e475a1e 100644 --- a/src/test/ui/mir/issue-66851.rs +++ b/src/test/ui/mir/issue-66851.rs @@ -2,7 +2,7 @@ // did not check that the types matched up in the `Ok(r)` branch. // // run-pass -// compile-flags: -Zmir-opt-level=2 +// compile-flags: -Zmir-opt-level=3 #[derive(Debug, PartialEq, Eq)] enum SpecialsRes { Res(u64) } diff --git a/src/test/ui/mir/issue-67639-normalization-ice.rs b/src/test/ui/mir/issue-67639-normalization-ice.rs index 21851a725254f..71150a80bc0a1 100644 --- a/src/test/ui/mir/issue-67639-normalization-ice.rs +++ b/src/test/ui/mir/issue-67639-normalization-ice.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 // build-pass // This used to ICE in const-prop due diff --git a/src/test/ui/mir/issue-67710-inline-projection.rs b/src/test/ui/mir/issue-67710-inline-projection.rs index 37d8f2eac9be1..1ff6b4d628c8b 100644 --- a/src/test/ui/mir/issue-67710-inline-projection.rs +++ b/src/test/ui/mir/issue-67710-inline-projection.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // build-pass // This used to ICE due to the inling pass not examining projections diff --git a/src/test/ui/mir/issue-68841.rs b/src/test/ui/mir/issue-68841.rs index 14884a97fabcb..550bd452a8093 100644 --- a/src/test/ui/mir/issue-68841.rs +++ b/src/test/ui/mir/issue-68841.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // edition:2018 // build-pass diff --git a/src/test/ui/mir/issue-71793-inline-args-storage.rs b/src/test/ui/mir/issue-71793-inline-args-storage.rs index 87b2806d4e208..18f2e38d14c4a 100644 --- a/src/test/ui/mir/issue-71793-inline-args-storage.rs +++ b/src/test/ui/mir/issue-71793-inline-args-storage.rs @@ -4,7 +4,7 @@ // // check-pass // edition:2018 -// compile-args: -Zmir-opt-level=2 +// compile-args: -Zmir-opt-level=3 #![crate_type = "lib"] diff --git a/src/test/ui/mir/issue-75053.rs b/src/test/ui/mir/issue-75053.rs index 6e7211c2ee60e..d54e23169c4d3 100644 --- a/src/test/ui/mir/issue-75053.rs +++ b/src/test/ui/mir/issue-75053.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // build-pass #![feature(type_alias_impl_trait)] diff --git a/src/test/ui/mir/issue-76248.rs b/src/test/ui/mir/issue-76248.rs index b01a9727852cd..18473e79e86a5 100644 --- a/src/test/ui/mir/issue-76248.rs +++ b/src/test/ui/mir/issue-76248.rs @@ -3,7 +3,7 @@ // Regression test for #76248. // // build-pass -// compile-flags: -Zmir-opt-level=2 +// compile-flags: -Zmir-opt-level=3 const N: usize = 1; diff --git a/src/test/ui/mir/issue-76375.rs b/src/test/ui/mir/issue-76375.rs index a7772cb1fe68d..e635caca9fdf4 100644 --- a/src/test/ui/mir/issue-76375.rs +++ b/src/test/ui/mir/issue-76375.rs @@ -2,7 +2,7 @@ // // edition:2018 // build-pass -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // aux-build:issue_76375_aux.rs #![crate_type = "lib"] diff --git a/src/test/ui/mir/issue-76740-copy-propagation.rs b/src/test/ui/mir/issue-76740-copy-propagation.rs index 90999a3e5564b..1d4ec11762afd 100644 --- a/src/test/ui/mir/issue-76740-copy-propagation.rs +++ b/src/test/ui/mir/issue-76740-copy-propagation.rs @@ -1,6 +1,6 @@ // Regression test for issue #76740. // run-pass -// compile-flags: -Zmir-opt-level=3 +// compile-flags: -Zmir-opt-level=4 #[derive(Copy, Clone)] pub struct V([usize; 4]); diff --git a/src/test/ui/mir/issue-77911.rs b/src/test/ui/mir/issue-77911.rs index fff303495e75b..acf4c20542d72 100644 --- a/src/test/ui/mir/issue-77911.rs +++ b/src/test/ui/mir/issue-77911.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // build-pass use std::fs::File; diff --git a/src/test/ui/mir/issue-78496.rs b/src/test/ui/mir/issue-78496.rs index 1b0687cfac3f6..a0d1f5a780e0e 100644 --- a/src/test/ui/mir/issue-78496.rs +++ b/src/test/ui/mir/issue-78496.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags: -Z mir-opt-level=2 -C opt-level=0 +// compile-flags: -Z mir-opt-level=3 -C opt-level=0 // example from #78496 pub enum E<'a> { diff --git a/src/test/ui/mir/issue66339.rs b/src/test/ui/mir/issue66339.rs index 98e178c055146..2507af38cdf73 100644 --- a/src/test/ui/mir/issue66339.rs +++ b/src/test/ui/mir/issue66339.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // build-pass // This used to ICE in const-prop diff --git a/src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs b/src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs index eec0a4599c30c..e36e8bd746d90 100644 --- a/src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs +++ b/src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs @@ -2,7 +2,7 @@ // Regression test for issue #79269. // // build-pass -// compile-flags: -Zmir-opt-level=2 -Zvalidate-mir +// compile-flags: -Zmir-opt-level=3 -Zvalidate-mir #[derive(Clone)] struct Array([T; N]); diff --git a/src/test/ui/mir/mir-inlining/ice-issue-45493.rs b/src/test/ui/mir/mir-inlining/ice-issue-45493.rs index 1bd16dc43e135..04a23212e7b9f 100644 --- a/src/test/ui/mir/mir-inlining/ice-issue-45493.rs +++ b/src/test/ui/mir/mir-inlining/ice-issue-45493.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags:-Zmir-opt-level=2 +// compile-flags:-Zmir-opt-level=3 trait Array { type Item; diff --git a/src/test/ui/mir/mir-inlining/ice-issue-45885.rs b/src/test/ui/mir/mir-inlining/ice-issue-45885.rs index e930a4d1ccd1f..09b1279ef34e1 100644 --- a/src/test/ui/mir/mir-inlining/ice-issue-45885.rs +++ b/src/test/ui/mir/mir-inlining/ice-issue-45885.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags:-Zmir-opt-level=2 +// compile-flags:-Zmir-opt-level=3 pub enum Enum { A, diff --git a/src/test/ui/mir/mir-inlining/ice-issue-68347.rs b/src/test/ui/mir/mir-inlining/ice-issue-68347.rs index 88b80bc3333c1..7c135250940dc 100644 --- a/src/test/ui/mir/mir-inlining/ice-issue-68347.rs +++ b/src/test/ui/mir/mir-inlining/ice-issue-68347.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags:-Zmir-opt-level=2 +// compile-flags:-Zmir-opt-level=3 pub fn main() { let _x: fn() = handle_debug_column; } diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs b/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs index 4d083bf232155..ef05ff9ce03b9 100644 --- a/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs +++ b/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags:-Zmir-opt-level=2 +// compile-flags:-Zmir-opt-level=3 // Previously ICEd because we did not normalize during inlining, // see https://github.com/rust-lang/rust/pull/77306 for more discussion. diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs b/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs index a346d450586bb..cb208401313e9 100644 --- a/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs +++ b/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags:-Zmir-opt-level=2 +// compile-flags:-Zmir-opt-level=3 struct Cursor {} struct TokenTree {} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77564.rs b/src/test/ui/mir/mir-inlining/ice-issue-77564.rs index 262402df2cc5a..0d3fbfe5d1a06 100644 --- a/src/test/ui/mir/mir-inlining/ice-issue-77564.rs +++ b/src/test/ui/mir/mir-inlining/ice-issue-77564.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags:-Zmir-opt-level=2 +// compile-flags:-Zmir-opt-level=3 use std::mem::MaybeUninit; const N: usize = 2; diff --git a/src/test/ui/mir/mir-inlining/inline-instrument-coverage-fail.rs b/src/test/ui/mir/mir-inlining/inline-instrument-coverage-fail.rs index 2437155d9810a..8ed7f25d2bbdb 100644 --- a/src/test/ui/mir/mir-inlining/inline-instrument-coverage-fail.rs +++ b/src/test/ui/mir/mir-inlining/inline-instrument-coverage-fail.rs @@ -1,9 +1,9 @@ -// Ensures -Zmir-opt-level=2 (specifically, inlining) is not allowed with -Zinstrument-coverage. +// Ensures -Zmir-opt-level=3 (specifically, inlining) is not allowed with -Zinstrument-coverage. // Regression test for issue #80060. // // needs-profiler-support // build-pass -// compile-flags: -Zmir-opt-level=2 -Zinstrument-coverage +// compile-flags: -Zmir-opt-level=3 -Zinstrument-coverage #[inline(never)] fn foo() {} diff --git a/src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs b/src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs index 8f570dbd4ad74..8b3cb703dc0de 100644 --- a/src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs +++ b/src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags:-Zmir-opt-level=2 +// compile-flags:-Zmir-opt-level=3 pub trait Foo { fn bar(&self) -> usize { 2 } } diff --git a/src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs b/src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs index 23cc114880c63..e2620682679b2 100644 --- a/src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs +++ b/src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags: -Z mir-opt-level=2 -C opt-level=0 -C debuginfo=2 +// compile-flags: -Z mir-opt-level=3 -C opt-level=0 -C debuginfo=2 #[inline(never)] pub fn foo(bar: usize) -> usize { diff --git a/src/test/ui/mir/mir_const_prop_tuple_field_reorder.rs b/src/test/ui/mir/mir_const_prop_tuple_field_reorder.rs index 629b50dec65f9..b66a85d07d3b9 100644 --- a/src/test/ui/mir/mir_const_prop_tuple_field_reorder.rs +++ b/src/test/ui/mir/mir_const_prop_tuple_field_reorder.rs @@ -1,4 +1,4 @@ -// compile-flags: -Z mir-opt-level=2 +// compile-flags: -Z mir-opt-level=3 // build-pass #![crate_type="lib"] diff --git a/src/test/ui/mir/ssa-analysis-regression-50041.rs b/src/test/ui/mir/ssa-analysis-regression-50041.rs index c818f2976e1cf..1892807253ae3 100644 --- a/src/test/ui/mir/ssa-analysis-regression-50041.rs +++ b/src/test/ui/mir/ssa-analysis-regression-50041.rs @@ -1,5 +1,5 @@ // build-pass -// compile-flags: -Z mir-opt-level=3 +// compile-flags: -Z mir-opt-level=4 #![crate_type="lib"] #![feature(lang_items)] diff --git a/src/test/ui/polymorphization/promoted-function-3.rs b/src/test/ui/polymorphization/promoted-function-3.rs index 1c84df13e10b0..bbd991e36ccaf 100644 --- a/src/test/ui/polymorphization/promoted-function-3.rs +++ b/src/test/ui/polymorphization/promoted-function-3.rs @@ -1,5 +1,5 @@ // run-pass -// compile-flags: -Zpolymorphize=on -Zmir-opt-level=3 +// compile-flags: -Zpolymorphize=on -Zmir-opt-level=4 fn caller() -> &'static usize { callee::() diff --git a/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs b/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs index b2ed8a0d7da68..e5754d355d9cb 100644 --- a/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs +++ b/src/test/ui/rfc-2091-track-caller/caller-location-intrinsic.rs @@ -1,6 +1,6 @@ // run-pass // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 #[inline(never)] #[track_caller] diff --git a/src/test/ui/rfc-2091-track-caller/const-caller-location.rs b/src/test/ui/rfc-2091-track-caller/const-caller-location.rs index 89a42acafba78..89b0b69f38dc0 100644 --- a/src/test/ui/rfc-2091-track-caller/const-caller-location.rs +++ b/src/test/ui/rfc-2091-track-caller/const-caller-location.rs @@ -1,6 +1,6 @@ // run-pass // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 #![feature(const_caller_location, const_fn)] diff --git a/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs b/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs index d072fb76f10d8..87e52881c152f 100644 --- a/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs +++ b/src/test/ui/rfc-2091-track-caller/intrinsic-wrapper.rs @@ -1,6 +1,6 @@ // run-pass // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 macro_rules! caller_location_from_macro { () => (core::panic::Location::caller()); diff --git a/src/test/ui/rfc-2091-track-caller/pass.rs b/src/test/ui/rfc-2091-track-caller/pass.rs index 4d548d4f0aa39..1b13ea3e93c89 100644 --- a/src/test/ui/rfc-2091-track-caller/pass.rs +++ b/src/test/ui/rfc-2091-track-caller/pass.rs @@ -1,6 +1,6 @@ // run-pass // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 #[track_caller] fn f() {} diff --git a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs index 0d7a5c42532f1..84b7c6701e5e1 100644 --- a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs +++ b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs @@ -1,7 +1,7 @@ // run-pass // ignore-wasm32-bare compiled with panic=abort by default // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 #![feature(option_expect_none, option_unwrap_none)] #![allow(unconditional_panic)] diff --git a/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs b/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs index 43135ebbf65df..9d28eb9de095c 100644 --- a/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs +++ b/src/test/ui/rfc-2091-track-caller/track-caller-attribute.rs @@ -1,6 +1,6 @@ // run-pass // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 use std::panic::Location; diff --git a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs index 2122a4ca21925..65881257815ac 100644 --- a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs +++ b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs @@ -1,6 +1,6 @@ // run-pass // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 fn pass_to_ptr_call(f: fn(T), x: T) { f(x); diff --git a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs index 922d2d7b7021a..8bb4dd288f054 100644 --- a/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs +++ b/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr.rs @@ -1,6 +1,6 @@ // run-pass // revisions: default mir-opt -//[mir-opt] compile-flags: -Zmir-opt-level=3 +//[mir-opt] compile-flags: -Zmir-opt-level=4 fn ptr_call(f: fn()) { f(); diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557-ice.rs b/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557-ice.rs index 4c09ae25c5f3e..4be6818305010 100644 --- a/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557-ice.rs +++ b/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557-ice.rs @@ -2,7 +2,7 @@ // passed the wrong Instance, causing issues with inlining. See #67557. // // run-pass -// compile-flags: -Zmir-opt-level=3 +// compile-flags: -Zmir-opt-level=4 #![feature(platform_intrinsics, repr_simd)] extern "platform-intrinsic" { diff --git a/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557.rs b/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557.rs index 7a0d955686bb6..67556829815b3 100644 --- a/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557.rs +++ b/src/test/ui/simd-intrinsic/simd-intrinsic-inlining-issue67557.rs @@ -2,7 +2,7 @@ // the wrong Instance, causing issues with inlining. See #67557. // // run-pass -// compile-flags: -Zmir-opt-level=3 +// compile-flags: -Zmir-opt-level=4 #![feature(platform_intrinsics, repr_simd)] extern "platform-intrinsic" { diff --git a/src/tools/clippy/src/driver.rs b/src/tools/clippy/src/driver.rs index d5143e1438ee0..94af21568ee80 100644 --- a/src/tools/clippy/src/driver.rs +++ b/src/tools/clippy/src/driver.rs @@ -83,7 +83,7 @@ impl rustc_driver::Callbacks for ClippyCallbacks { // run on the unoptimized MIR. On the other hand this results in some false negatives. If // MIR passes can be enabled / disabled separately, we should figure out, what passes to // use for Clippy. - config.opts.debugging_opts.mir_opt_level = 0; + config.opts.debugging_opts.mir_opt_level = Some(0); } } diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 2e7b42b6c7cf2..9a82591e5a75a 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -1960,7 +1960,7 @@ impl<'test> TestCx<'test> { rustc.args(&[ "-Copt-level=1", "-Zdump-mir=all", - "-Zmir-opt-level=3", + "-Zmir-opt-level=4", "-Zvalidate-mir", "-Zdump-mir-exclude-pass-number", ]);