Skip to content

Commit 78c8be9

Browse files
committed
simplify_cfg: rename some passes so that they make more sense
1 parent 35dfc67 commit 78c8be9

File tree

29 files changed

+43
-40
lines changed

29 files changed

+43
-40
lines changed

compiler/rustc_mir_transform/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ fn run_analysis_cleanup_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
507507
let passes: &[&dyn MirPass<'tcx>] = &[
508508
&cleanup_post_borrowck::CleanupPostBorrowck,
509509
&remove_noop_landing_pads::RemoveNoopLandingPads,
510-
&simplify::SimplifyCfg::EarlyOpt,
510+
&simplify::SimplifyCfg::PostAnalysisCleanup,
511511
&deref_separator::Derefer,
512512
];
513513

@@ -544,7 +544,7 @@ fn run_runtime_cleanup_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
544544
let passes: &[&dyn MirPass<'tcx>] = &[
545545
&lower_intrinsics::LowerIntrinsics,
546546
&remove_place_mention::RemovePlaceMention,
547-
&simplify::SimplifyCfg::ElaborateDrops,
547+
&simplify::SimplifyCfg::PreOptimizationCleanup,
548548
];
549549

550550
pm::run_passes(tcx, body, passes, Some(MirPhase::Runtime(RuntimePhase::PostCleanup)));

compiler/rustc_mir_transform/src/simplify.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,11 @@ pub enum SimplifyCfg {
3737
Initial,
3838
PromoteConsts,
3939
RemoveFalseEdges,
40-
EarlyOpt,
41-
ElaborateDrops,
40+
/// Some cleanup at the beginning of "analysis to runtime" lowering, *before* drop elaboration.
41+
PostAnalysisCleanup,
42+
/// Some cleanup at the end of "analysis to runtime" lowering, *after* drop elaboration.
43+
/// This is before the main optimization passes on runtime MIR kick in.
44+
PreOptimizationCleanup,
4245
Final,
4346
MakeShim,
4447
AfterUninhabitedEnumBranching,
@@ -50,8 +53,8 @@ impl SimplifyCfg {
5053
SimplifyCfg::Initial => "SimplifyCfg-initial",
5154
SimplifyCfg::PromoteConsts => "SimplifyCfg-promote-consts",
5255
SimplifyCfg::RemoveFalseEdges => "SimplifyCfg-remove-false-edges",
53-
SimplifyCfg::EarlyOpt => "SimplifyCfg-early-opt",
54-
SimplifyCfg::ElaborateDrops => "SimplifyCfg-elaborate-drops",
56+
SimplifyCfg::PostAnalysisCleanup => "SimplifyCfg-post-analysis",
57+
SimplifyCfg::PreOptimizationCleanup => "SimplifyCfg-pre-optimizations",
5558
SimplifyCfg::Final => "SimplifyCfg-final",
5659
SimplifyCfg::MakeShim => "SimplifyCfg-make_shim",
5760
SimplifyCfg::AfterUninhabitedEnumBranching => {

tests/mir-opt/array_index_is_temporary.main.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main` after SimplifyCfg-elaborate-drops
1+
// MIR for `main` after SimplifyCfg-pre-optimizations
22

33
fn main() -> () {
44
let mut _0: ();

tests/mir-opt/array_index_is_temporary.main.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main` after SimplifyCfg-elaborate-drops
1+
// MIR for `main` after SimplifyCfg-pre-optimizations
22

33
fn main() -> () {
44
let mut _0: ();

tests/mir-opt/array_index_is_temporary.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//@ unit-test: SimplifyCfg-elaborate-drops
1+
//@ unit-test: SimplifyCfg-pre-optimizations
22
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
33
// Retagging (from Stacked Borrows) relies on the array index being a fresh
44
// temporary, so that side-effects cannot change it.
@@ -10,7 +10,7 @@ unsafe fn foo(z: *mut usize) -> u32 {
1010
}
1111

1212

13-
// EMIT_MIR array_index_is_temporary.main.SimplifyCfg-elaborate-drops.after.mir
13+
// EMIT_MIR array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.mir
1414
fn main() {
1515
// CHECK-LABEL: fn main(
1616
// CHECK: debug x => [[x:_.*]];

tests/mir-opt/byte_slice.main.SimplifyCfg-elaborate-drops.after.mir renamed to tests/mir-opt/byte_slice.main.SimplifyCfg-pre-optimizations.after.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main` after SimplifyCfg-elaborate-drops
1+
// MIR for `main` after SimplifyCfg-pre-optimizations
22

33
fn main() -> () {
44
let mut _0: ();

tests/mir-opt/byte_slice.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// skip-filecheck
22
//@ compile-flags: -Z mir-opt-level=0
33

4-
// EMIT_MIR byte_slice.main.SimplifyCfg-elaborate-drops.after.mir
4+
// EMIT_MIR byte_slice.main.SimplifyCfg-pre-optimizations.after.mir
55
fn main() {
66
let x = b"foo";
77
let y = [5u8, b'x'];

tests/mir-opt/const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-elaborate-drops.after.mir renamed to tests/mir-opt/const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-pre-optimizations.after.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `BAR::promoted[0]` after SimplifyCfg-elaborate-drops
1+
// MIR for `BAR::promoted[0]` after SimplifyCfg-pre-optimizations
22

33
const BAR::promoted[0]: &[&i32; 1] = {
44
let mut _0: &[&i32; 1];

tests/mir-opt/const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-elaborate-drops.after.mir renamed to tests/mir-opt/const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-pre-optimizations.after.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `FOO::promoted[0]` after SimplifyCfg-elaborate-drops
1+
// MIR for `FOO::promoted[0]` after SimplifyCfg-pre-optimizations
22

33
const FOO::promoted[0]: &[&i32; 1] = {
44
let mut _0: &[&i32; 1];

tests/mir-opt/const_promotion_extern_static.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ extern "C" {
66
static Y: i32 = 42;
77

88
// EMIT_MIR const_promotion_extern_static.BAR.PromoteTemps.diff
9-
// EMIT_MIR const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-elaborate-drops.after.mir
9+
// EMIT_MIR const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-pre-optimizations.after.mir
1010
static mut BAR: *const &i32 = [&Y].as_ptr();
1111

1212
// EMIT_MIR const_promotion_extern_static.FOO.PromoteTemps.diff
13-
// EMIT_MIR const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-elaborate-drops.after.mir
13+
// EMIT_MIR const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-pre-optimizations.after.mir
1414
static mut FOO: *const &i32 = [unsafe { &X }].as_ptr();
1515

1616
// EMIT_MIR const_promotion_extern_static.BOP.built.after.mir

tests/mir-opt/no_drop_for_inactive_variant.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// Ensure that there are no drop terminators in `unwrap<T>` (except the one along the cleanup
55
// path).
66

7-
// EMIT_MIR no_drop_for_inactive_variant.unwrap.SimplifyCfg-elaborate-drops.after.mir
7+
// EMIT_MIR no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.mir
88
fn unwrap<T>(opt: Option<T>) -> T {
99
match opt {
1010
Some(x) => x,

tests/mir-opt/no_drop_for_inactive_variant.unwrap.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `unwrap` after SimplifyCfg-elaborate-drops
1+
// MIR for `unwrap` after SimplifyCfg-pre-optimizations
22

33
fn unwrap(_1: Option<T>) -> T {
44
debug opt => _1;

tests/mir-opt/no_drop_for_inactive_variant.unwrap.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `unwrap` after SimplifyCfg-elaborate-drops
1+
// MIR for `unwrap` after SimplifyCfg-pre-optimizations
22

33
fn unwrap(_1: Option<T>) -> T {
44
debug opt => _1;

tests/mir-opt/packed_struct_drop_aligned.main.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main` after SimplifyCfg-elaborate-drops
1+
// MIR for `main` after SimplifyCfg-pre-optimizations
22

33
fn main() -> () {
44
let mut _0: ();

tests/mir-opt/packed_struct_drop_aligned.main.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main` after SimplifyCfg-elaborate-drops
1+
// MIR for `main` after SimplifyCfg-pre-optimizations
22

33
fn main() -> () {
44
let mut _0: ();

tests/mir-opt/packed_struct_drop_aligned.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
33

44

5-
// EMIT_MIR packed_struct_drop_aligned.main.SimplifyCfg-elaborate-drops.after.mir
5+
// EMIT_MIR packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.mir
66
fn main() {
77
let mut x = Packed(Aligned(Droppy(0)));
88
x.0 = Aligned(Droppy(0));

tests/mir-opt/retag.array_casts.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `array_casts` after SimplifyCfg-elaborate-drops
1+
// MIR for `array_casts` after SimplifyCfg-pre-optimizations
22

33
fn array_casts() -> () {
44
let mut _0: ();

tests/mir-opt/retag.array_casts.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `array_casts` after SimplifyCfg-elaborate-drops
1+
// MIR for `array_casts` after SimplifyCfg-pre-optimizations
22

33
fn array_casts() -> () {
44
let mut _0: ();

tests/mir-opt/retag.main-{closure#0}.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main::{closure#0}` after SimplifyCfg-elaborate-drops
1+
// MIR for `main::{closure#0}` after SimplifyCfg-pre-optimizations
22

33
fn main::{closure#0}(_1: &{closure@main::{closure#0}}, _2: &i32) -> &i32 {
44
debug x => _2;

tests/mir-opt/retag.main-{closure#0}.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main::{closure#0}` after SimplifyCfg-elaborate-drops
1+
// MIR for `main::{closure#0}` after SimplifyCfg-pre-optimizations
22

33
fn main::{closure#0}(_1: &{closure@main::{closure#0}}, _2: &i32) -> &i32 {
44
debug x => _2;

tests/mir-opt/retag.main.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/retag.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main` after SimplifyCfg-elaborate-drops
1+
// MIR for `main` after SimplifyCfg-pre-optimizations
22

33
fn main() -> () {
44
let mut _0: ();

tests/mir-opt/retag.main.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/retag.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `main` after SimplifyCfg-elaborate-drops
1+
// MIR for `main` after SimplifyCfg-pre-optimizations
22

33
fn main() -> () {
44
let mut _0: ();

tests/mir-opt/retag.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
struct Test(i32);
1010

11-
// EMIT_MIR retag.{impl#0}-foo.SimplifyCfg-elaborate-drops.after.mir
12-
// EMIT_MIR retag.{impl#0}-foo_shr.SimplifyCfg-elaborate-drops.after.mir
11+
// EMIT_MIR retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.mir
12+
// EMIT_MIR retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.mir
1313
impl Test {
1414
// Make sure we run the pass on a method, not just on bare functions.
1515
fn foo<'x>(&self, x: &'x mut i32) -> &'x mut i32 {
@@ -26,8 +26,8 @@ impl Drop for Test {
2626
fn drop(&mut self) {}
2727
}
2828

29-
// EMIT_MIR retag.main.SimplifyCfg-elaborate-drops.after.mir
30-
// EMIT_MIR retag.main-{closure#0}.SimplifyCfg-elaborate-drops.after.mir
29+
// EMIT_MIR retag.main.SimplifyCfg-pre-optimizations.after.mir
30+
// EMIT_MIR retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.mir
3131
pub fn main() {
3232
let mut x = 0;
3333
{
@@ -55,7 +55,7 @@ pub fn main() {
5555
}
5656

5757
/// Casting directly to an array should also go through `&raw` and thus add appropriate retags.
58-
// EMIT_MIR retag.array_casts.SimplifyCfg-elaborate-drops.after.mir
58+
// EMIT_MIR retag.array_casts.SimplifyCfg-pre-optimizations.after.mir
5959
fn array_casts() {
6060
let mut x: [usize; 2] = [0, 0];
6161
let p = &mut x as *mut usize;

tests/mir-opt/retag.{impl#0}-foo.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo` after SimplifyCfg-elaborate-drops
1+
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo` after SimplifyCfg-pre-optimizations
22

33
fn <impl at $DIR/retag.rs:13:1: 13:10>::foo(_1: &Test, _2: &mut i32) -> &mut i32 {
44
debug self => _1;

tests/mir-opt/retag.{impl#0}-foo.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo` after SimplifyCfg-elaborate-drops
1+
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo` after SimplifyCfg-pre-optimizations
22

33
fn <impl at $DIR/retag.rs:13:1: 13:10>::foo(_1: &Test, _2: &mut i32) -> &mut i32 {
44
debug self => _1;

tests/mir-opt/retag.{impl#0}-foo_shr.SimplifyCfg-elaborate-drops.after.panic-abort.mir renamed to tests/mir-opt/retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.panic-abort.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo_shr` after SimplifyCfg-elaborate-drops
1+
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo_shr` after SimplifyCfg-pre-optimizations
22

33
fn <impl at $DIR/retag.rs:13:1: 13:10>::foo_shr(_1: &Test, _2: &i32) -> &i32 {
44
debug self => _1;

tests/mir-opt/retag.{impl#0}-foo_shr.SimplifyCfg-elaborate-drops.after.panic-unwind.mir renamed to tests/mir-opt/retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.panic-unwind.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo_shr` after SimplifyCfg-elaborate-drops
1+
// MIR for `<impl at $DIR/retag.rs:13:1: 13:10>::foo_shr` after SimplifyCfg-pre-optimizations
22

33
fn <impl at $DIR/retag.rs:13:1: 13:10>::foo_shr(_1: &Test, _2: &i32) -> &i32 {
44
debug self => _1;

tests/mir-opt/simplify_cfg.main.SimplifyCfg-early-opt.diff renamed to tests/mir-opt/simplify_cfg.main.SimplifyCfg-post-analysis.diff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
- // MIR for `main` before SimplifyCfg-early-opt
2-
+ // MIR for `main` after SimplifyCfg-early-opt
1+
- // MIR for `main` before SimplifyCfg-post-analysis
2+
+ // MIR for `main` after SimplifyCfg-post-analysis
33

44
fn main() -> () {
55
let mut _0: ();

tests/mir-opt/simplify_cfg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//@ no-prefer-dynamic
55

66
// EMIT_MIR simplify_cfg.main.SimplifyCfg-initial.diff
7-
// EMIT_MIR simplify_cfg.main.SimplifyCfg-early-opt.diff
7+
// EMIT_MIR simplify_cfg.main.SimplifyCfg-post-analysis.diff
88
fn main() {
99
loop {
1010
if bar() {

0 commit comments

Comments
 (0)