Added regression test for literal propagation and for scalar pair propagation
This commit is contained in:
parent
2d03399f53
commit
6316601ec4
4 changed files with 121 additions and 0 deletions
|
|
@ -0,0 +1,8 @@
|
|||
// EMIT_MIR rustc.main.ConstProp.diff
|
||||
fn main() {
|
||||
let x = 1;
|
||||
consume(x);
|
||||
}
|
||||
|
||||
#[inline(never)]
|
||||
fn consume(_: u32) { }
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
- // MIR for `main` before ConstProp
|
||||
+ // MIR for `main` after ConstProp
|
||||
|
||||
fn main() -> () {
|
||||
let mut _0: (); // return place in scope 0 at $DIR/scalar_literal_propagation.rs:2:11: 2:11
|
||||
let _1: u32; // in scope 0 at $DIR/scalar_literal_propagation.rs:3:9: 3:10
|
||||
let _2: (); // in scope 0 at $DIR/scalar_literal_propagation.rs:4:5: 4:15
|
||||
let mut _3: u32; // in scope 0 at $DIR/scalar_literal_propagation.rs:4:13: 4:14
|
||||
scope 1 {
|
||||
debug x => _1; // in scope 1 at $DIR/scalar_literal_propagation.rs:3:9: 3:10
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_1); // scope 0 at $DIR/scalar_literal_propagation.rs:3:9: 3:10
|
||||
_1 = const 1u32; // scope 0 at $DIR/scalar_literal_propagation.rs:3:13: 3:14
|
||||
// ty::Const
|
||||
// + ty: u32
|
||||
// + val: Value(Scalar(0x00000001))
|
||||
// mir::Constant
|
||||
// + span: $DIR/scalar_literal_propagation.rs:3:13: 3:14
|
||||
// + literal: Const { ty: u32, val: Value(Scalar(0x00000001)) }
|
||||
StorageLive(_2); // scope 1 at $DIR/scalar_literal_propagation.rs:4:5: 4:15
|
||||
StorageLive(_3); // scope 1 at $DIR/scalar_literal_propagation.rs:4:13: 4:14
|
||||
_3 = _1; // scope 1 at $DIR/scalar_literal_propagation.rs:4:13: 4:14
|
||||
_2 = const consume(move _3) -> bb1; // scope 1 at $DIR/scalar_literal_propagation.rs:4:5: 4:15
|
||||
// ty::Const
|
||||
// + ty: fn(u32) {consume}
|
||||
// + val: Value(Scalar(<ZST>))
|
||||
// mir::Constant
|
||||
// + span: $DIR/scalar_literal_propagation.rs:4:5: 4:12
|
||||
// + literal: Const { ty: fn(u32) {consume}, val: Value(Scalar(<ZST>)) }
|
||||
}
|
||||
|
||||
bb1: {
|
||||
StorageDead(_3); // scope 1 at $DIR/scalar_literal_propagation.rs:4:14: 4:15
|
||||
StorageDead(_2); // scope 1 at $DIR/scalar_literal_propagation.rs:4:15: 4:16
|
||||
_0 = const (); // scope 0 at $DIR/scalar_literal_propagation.rs:2:11: 5:2
|
||||
// ty::Const
|
||||
// + ty: ()
|
||||
// + val: Value(Scalar(<ZST>))
|
||||
// mir::Constant
|
||||
// + span: $DIR/scalar_literal_propagation.rs:2:11: 5:2
|
||||
// + literal: Const { ty: (), val: Value(Scalar(<ZST>)) }
|
||||
StorageDead(_1); // scope 0 at $DIR/scalar_literal_propagation.rs:5:1: 5:2
|
||||
return; // scope 0 at $DIR/scalar_literal_propagation.rs:5:2: 5:2
|
||||
}
|
||||
}
|
||||
|
||||
9
src/test/mir-opt/const_prop/tuple_literal_propagation.rs
Normal file
9
src/test/mir-opt/const_prop/tuple_literal_propagation.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// EMIT_MIR rustc.main.ConstProp.diff
|
||||
fn main() {
|
||||
let x = (1, 2);
|
||||
|
||||
consume(x);
|
||||
}
|
||||
|
||||
#[inline(never)]
|
||||
fn consume(_: (u32, u32)) { }
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
- // MIR for `main` before ConstProp
|
||||
+ // MIR for `main` after ConstProp
|
||||
|
||||
fn main() -> () {
|
||||
let mut _0: (); // return place in scope 0 at $DIR/tuple_literal_propagation.rs:2:11: 2:11
|
||||
let _1: (u32, u32); // in scope 0 at $DIR/tuple_literal_propagation.rs:3:9: 3:10
|
||||
let _2: (); // in scope 0 at $DIR/tuple_literal_propagation.rs:5:5: 5:15
|
||||
let mut _3: (u32, u32); // in scope 0 at $DIR/tuple_literal_propagation.rs:5:13: 5:14
|
||||
scope 1 {
|
||||
debug x => _1; // in scope 1 at $DIR/tuple_literal_propagation.rs:3:9: 3:10
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_1); // scope 0 at $DIR/tuple_literal_propagation.rs:3:9: 3:10
|
||||
_1 = (const 1u32, const 2u32); // scope 0 at $DIR/tuple_literal_propagation.rs:3:13: 3:19
|
||||
// ty::Const
|
||||
// + ty: u32
|
||||
// + val: Value(Scalar(0x00000001))
|
||||
// mir::Constant
|
||||
- // + span: $DIR/tuple_literal_propagation.rs:3:14: 3:15
|
||||
+ // + span: $DIR/tuple_literal_propagation.rs:3:13: 3:19
|
||||
// + literal: Const { ty: u32, val: Value(Scalar(0x00000001)) }
|
||||
// ty::Const
|
||||
// + ty: u32
|
||||
// + val: Value(Scalar(0x00000002))
|
||||
// mir::Constant
|
||||
- // + span: $DIR/tuple_literal_propagation.rs:3:17: 3:18
|
||||
+ // + span: $DIR/tuple_literal_propagation.rs:3:13: 3:19
|
||||
// + literal: Const { ty: u32, val: Value(Scalar(0x00000002)) }
|
||||
StorageLive(_2); // scope 1 at $DIR/tuple_literal_propagation.rs:5:5: 5:15
|
||||
StorageLive(_3); // scope 1 at $DIR/tuple_literal_propagation.rs:5:13: 5:14
|
||||
_3 = _1; // scope 1 at $DIR/tuple_literal_propagation.rs:5:13: 5:14
|
||||
_2 = const consume(move _3) -> bb1; // scope 1 at $DIR/tuple_literal_propagation.rs:5:5: 5:15
|
||||
// ty::Const
|
||||
// + ty: fn((u32, u32)) {consume}
|
||||
// + val: Value(Scalar(<ZST>))
|
||||
// mir::Constant
|
||||
// + span: $DIR/tuple_literal_propagation.rs:5:5: 5:12
|
||||
// + literal: Const { ty: fn((u32, u32)) {consume}, val: Value(Scalar(<ZST>)) }
|
||||
}
|
||||
|
||||
bb1: {
|
||||
StorageDead(_3); // scope 1 at $DIR/tuple_literal_propagation.rs:5:14: 5:15
|
||||
StorageDead(_2); // scope 1 at $DIR/tuple_literal_propagation.rs:5:15: 5:16
|
||||
_0 = const (); // scope 0 at $DIR/tuple_literal_propagation.rs:2:11: 6:2
|
||||
// ty::Const
|
||||
// + ty: ()
|
||||
// + val: Value(Scalar(<ZST>))
|
||||
// mir::Constant
|
||||
// + span: $DIR/tuple_literal_propagation.rs:2:11: 6:2
|
||||
// + literal: Const { ty: (), val: Value(Scalar(<ZST>)) }
|
||||
StorageDead(_1); // scope 0 at $DIR/tuple_literal_propagation.rs:6:1: 6:2
|
||||
return; // scope 0 at $DIR/tuple_literal_propagation.rs:6:2: 6:2
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue