Auto merge of #71911 - wesleywiser:const_prop_small_cleanups, r=oli-obk

[mir-opt] Small ConstProp cleanup
This commit is contained in:
bors 2020-06-21 05:56:26 +00:00
commit 38bd83df88
8 changed files with 88 additions and 45 deletions

View file

@ -23,13 +23,15 @@
// + ty: i32
// + val: Value(Scalar(0x0000002a))
// mir::Constant
// + span: $DIR/mutable_variable_aggregate_mut_ref.rs:5:18: 5:20
- // + span: $DIR/mutable_variable_aggregate_mut_ref.rs:5:18: 5:20
+ // + span: $DIR/mutable_variable_aggregate_mut_ref.rs:5:17: 5:25
// + literal: Const { ty: i32, val: Value(Scalar(0x0000002a)) }
// ty::Const
// + ty: i32
// + val: Value(Scalar(0x0000002b))
// mir::Constant
// + span: $DIR/mutable_variable_aggregate_mut_ref.rs:5:22: 5:24
- // + span: $DIR/mutable_variable_aggregate_mut_ref.rs:5:22: 5:24
+ // + span: $DIR/mutable_variable_aggregate_mut_ref.rs:5:17: 5:25
// + literal: Const { ty: i32, val: Value(Scalar(0x0000002b)) }
StorageLive(_2); // scope 1 at $DIR/mutable_variable_aggregate_mut_ref.rs:6:9: 6:10
_2 = &mut _1; // scope 1 at $DIR/mutable_variable_aggregate_mut_ref.rs:6:13: 6:19

View file

@ -39,14 +39,13 @@
}
bb1: {
((_2 as Foo).0: u8) = const 0u8; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
_2 = const Dst::Foo(0u8); // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
// ty::Const
// + ty: u8
// + ty: Dst
// + val: Value(Scalar(0x00))
// mir::Constant
// + span: $DIR/simplify-arm-identity.rs:21:30: 21:31
// + literal: Const { ty: u8, val: Value(Scalar(0x00)) }
discriminant(_2) = 0; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
// + span: $DIR/simplify-arm-identity.rs:21:21: 21:32
// + literal: Const { ty: Dst, val: Value(Scalar(0x00)) }
goto -> bb4; // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
}

View file

@ -39,14 +39,13 @@
}
bb1: {
((_2 as Foo).0: u8) = const 0u8; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
_2 = const Dst::Foo(0u8); // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
// ty::Const
// + ty: u8
// + ty: Dst
// + val: Value(Scalar(0x00))
// mir::Constant
// + span: $DIR/simplify-arm-identity.rs:21:30: 21:31
// + literal: Const { ty: u8, val: Value(Scalar(0x00)) }
discriminant(_2) = 0; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
// + span: $DIR/simplify-arm-identity.rs:21:21: 21:32
// + literal: Const { ty: Dst, val: Value(Scalar(0x00)) }
goto -> bb4; // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
}

View file

@ -33,15 +33,14 @@
}
bb1: {
((_2 as Foo).0: u8) = const 0u8; // scope 1 at $DIR/simplify-arm-identity.rs:20:21: 20:32
_2 = const Dst::Foo(0u8); // bb1[0]: scope 1 at $DIR/simplify-arm-identity.rs:20:21: 20:32
// ty::Const
// + ty: u8
// + ty: Dst
// + val: Value(Scalar(0x00))
// mir::Constant
// + span: $DIR/simplify-arm-identity.rs:20:30: 20:31
// + literal: Const { ty: u8, val: Value(Scalar(0x00)) }
discriminant(_2) = 0; // scope 1 at $DIR/simplify-arm-identity.rs:20:21: 20:32
goto -> bb4; // scope 1 at $DIR/simplify-arm-identity.rs:18:18: 21:6
// + span: $DIR/simplify-arm-identity.rs:20:21: 20:32
// + literal: Const { ty: Dst, val: Value(Scalar(0x00)) }
goto -> bb4; // bb1[1]: scope 1 at $DIR/simplify-arm-identity.rs:18:18: 21:6
}
bb2: {

View file

@ -9,4 +9,5 @@ fn main() {
map(None);
}
// EMIT_MIR_FOR_EACH_BIT_WIDTH
// EMIT_MIR rustc.map.SimplifyLocals.diff

View file

@ -24,7 +24,13 @@
}
bb2: {
discriminant(_0) = 0; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:17: 3:21
_0 = const std::option::Option::<std::boxed::Box<()>>::None; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:17: 3:21
// ty::Const
// + ty: std::option::Option<std::boxed::Box<()>>
// + val: Value(Scalar(0x00000000))
// mir::Constant
// + span: $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:17: 3:21
// + literal: Const { ty: std::option::Option<std::boxed::Box<()>>, val: Value(Scalar(0x00000000)) }
goto -> bb3; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:2:5: 5:6
}

View file

@ -0,0 +1,42 @@
- // MIR for `map` before SimplifyLocals
+ // MIR for `map` after SimplifyLocals
fn map(_1: std::option::Option<std::boxed::Box<()>>) -> std::option::Option<std::boxed::Box<()>> {
debug x => _1; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:1:8: 1:9
let mut _0: std::option::Option<std::boxed::Box<()>>; // return place in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:1:31: 1:46
let mut _2: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
let _3: std::boxed::Box<()>; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:14: 4:15
- let mut _4: std::boxed::Box<()>; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:25: 4:26
- let mut _5: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
- let mut _6: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
scope 1 {
debug x => _3; // in scope 1 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:14: 4:15
}
bb0: {
_2 = discriminant(_1); // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
switchInt(move _2) -> [0isize: bb2, otherwise: bb1]; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
}
bb1: {
_0 = move _1; // scope 1 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:20: 4:27
goto -> bb3; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:2:5: 5:6
}
bb2: {
_0 = const std::option::Option::<std::boxed::Box<()>>::None; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:17: 3:21
// ty::Const
// + ty: std::option::Option<std::boxed::Box<()>>
// + val: Value(Scalar(0x0000000000000000))
// mir::Constant
// + span: $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:17: 3:21
// + literal: Const { ty: std::option::Option<std::boxed::Box<()>>, val: Value(Scalar(0x0000000000000000)) }
goto -> bb3; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:2:5: 5:6
}
bb3: {
- _5 = discriminant(_1); // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
return; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:2: 6:2
}
}