mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-08 21:13:55 +00:00
FileCheck aggregate.
This commit is contained in:
parent
378abbc604
commit
6564bac532
@ -1,49 +0,0 @@
|
||||
// MIR for `foo` after PreCodegen
|
||||
|
||||
fn foo(_1: u8) -> () {
|
||||
debug x => _1;
|
||||
let mut _0: ();
|
||||
let _2: i32;
|
||||
let mut _3: i32;
|
||||
let mut _4: (i32, u8);
|
||||
let mut _5: u8;
|
||||
let mut _7: i32;
|
||||
let mut _8: (u8, i32);
|
||||
let mut _9: u8;
|
||||
scope 1 {
|
||||
debug first => _2;
|
||||
let _6: i32;
|
||||
scope 2 {
|
||||
debug second => _6;
|
||||
}
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_2);
|
||||
StorageLive(_3);
|
||||
StorageLive(_4);
|
||||
StorageLive(_5);
|
||||
_5 = _1;
|
||||
_4 = (const 0_i32, move _5);
|
||||
StorageDead(_5);
|
||||
_3 = const 0_i32;
|
||||
_2 = const 1_i32;
|
||||
StorageDead(_3);
|
||||
StorageDead(_4);
|
||||
StorageLive(_6);
|
||||
StorageLive(_7);
|
||||
StorageLive(_8);
|
||||
StorageLive(_9);
|
||||
_9 = _1;
|
||||
_8 = (move _9, const 1_i32);
|
||||
StorageDead(_9);
|
||||
_7 = const 1_i32;
|
||||
_6 = const 3_i32;
|
||||
StorageDead(_7);
|
||||
StorageDead(_8);
|
||||
_0 = const ();
|
||||
StorageDead(_6);
|
||||
StorageDead(_2);
|
||||
return;
|
||||
}
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
// MIR for `foo` after PreCodegen
|
||||
|
||||
fn foo(_1: u8) -> () {
|
||||
debug x => _1;
|
||||
let mut _0: ();
|
||||
let _2: i32;
|
||||
let mut _3: i32;
|
||||
let mut _4: (i32, u8);
|
||||
let mut _5: u8;
|
||||
let mut _7: i32;
|
||||
let mut _8: (u8, i32);
|
||||
let mut _9: u8;
|
||||
scope 1 {
|
||||
debug first => _2;
|
||||
let _6: i32;
|
||||
scope 2 {
|
||||
debug second => _6;
|
||||
}
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_2);
|
||||
StorageLive(_3);
|
||||
StorageLive(_4);
|
||||
StorageLive(_5);
|
||||
_5 = _1;
|
||||
_4 = (const 0_i32, move _5);
|
||||
StorageDead(_5);
|
||||
_3 = const 0_i32;
|
||||
_2 = const 1_i32;
|
||||
StorageDead(_3);
|
||||
StorageDead(_4);
|
||||
StorageLive(_6);
|
||||
StorageLive(_7);
|
||||
StorageLive(_8);
|
||||
StorageLive(_9);
|
||||
_9 = _1;
|
||||
_8 = (move _9, const 1_i32);
|
||||
StorageDead(_9);
|
||||
_7 = const 1_i32;
|
||||
_6 = const 3_i32;
|
||||
StorageDead(_7);
|
||||
StorageDead(_8);
|
||||
_0 = const ();
|
||||
StorageDead(_6);
|
||||
StorageDead(_2);
|
||||
return;
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
// MIR for `main` after PreCodegen
|
||||
|
||||
fn main() -> () {
|
||||
let mut _0: ();
|
||||
let _1: u8;
|
||||
let mut _2: u8;
|
||||
let mut _3: (i32, u8, i32);
|
||||
let _4: ();
|
||||
let mut _5: u8;
|
||||
scope 1 {
|
||||
debug x => _1;
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_1);
|
||||
StorageLive(_2);
|
||||
StorageLive(_3);
|
||||
_3 = (const 0_i32, const 1_u8, const 2_i32);
|
||||
_2 = const 1_u8;
|
||||
_1 = const 1_u8;
|
||||
StorageDead(_2);
|
||||
StorageDead(_3);
|
||||
StorageLive(_4);
|
||||
StorageLive(_5);
|
||||
_5 = const 1_u8;
|
||||
_4 = foo(const 1_u8) -> [return: bb1, unwind unreachable];
|
||||
}
|
||||
|
||||
bb1: {
|
||||
StorageDead(_5);
|
||||
StorageDead(_4);
|
||||
_0 = const ();
|
||||
StorageDead(_1);
|
||||
return;
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
// MIR for `main` after PreCodegen
|
||||
|
||||
fn main() -> () {
|
||||
let mut _0: ();
|
||||
let _1: u8;
|
||||
let mut _2: u8;
|
||||
let mut _3: (i32, u8, i32);
|
||||
let _4: ();
|
||||
let mut _5: u8;
|
||||
scope 1 {
|
||||
debug x => _1;
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_1);
|
||||
StorageLive(_2);
|
||||
StorageLive(_3);
|
||||
_3 = (const 0_i32, const 1_u8, const 2_i32);
|
||||
_2 = const 1_u8;
|
||||
_1 = const 1_u8;
|
||||
StorageDead(_2);
|
||||
StorageDead(_3);
|
||||
StorageLive(_4);
|
||||
StorageLive(_5);
|
||||
_5 = const 1_u8;
|
||||
_4 = foo(const 1_u8) -> [return: bb1, unwind continue];
|
||||
}
|
||||
|
||||
bb1: {
|
||||
StorageDead(_5);
|
||||
StorageDead(_4);
|
||||
_0 = const ();
|
||||
StorageDead(_1);
|
||||
return;
|
||||
}
|
||||
}
|
@ -1,19 +1,29 @@
|
||||
// skip-filecheck
|
||||
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
|
||||
// unit-test: ConstProp
|
||||
// compile-flags: -O
|
||||
|
||||
// EMIT_MIR aggregate.main.ConstProp.diff
|
||||
// EMIT_MIR aggregate.main.PreCodegen.after.mir
|
||||
fn main() {
|
||||
// CHECK-LABEL: fn main(
|
||||
// CHECK: debug x => [[x:_.*]];
|
||||
// CHECK-NOT: = Add(
|
||||
// CHECK: [[x]] = const 1_u8;
|
||||
// CHECK-NOT: = Add(
|
||||
// CHECK: foo(const 1_u8)
|
||||
let x = (0, 1, 2).1 + 0;
|
||||
foo(x);
|
||||
}
|
||||
|
||||
// Verify that we still propagate if part of the aggregate is not known.
|
||||
// EMIT_MIR aggregate.foo.ConstProp.diff
|
||||
// EMIT_MIR aggregate.foo.PreCodegen.after.mir
|
||||
fn foo(x: u8) {
|
||||
// Verify that we still propagate if part of the aggregate is not known.
|
||||
// CHECK-LABEL: fn foo(
|
||||
// CHECK: debug first => [[first:_.*]];
|
||||
// CHECK: debug second => [[second:_.*]];
|
||||
// CHECK-NOT: = Add(
|
||||
// CHECK: [[first]] = const 1_i32;
|
||||
// CHECK-NOT: = Add(
|
||||
// CHECK: [[second]] = const 3_i32;
|
||||
let first = (0, x).0 + 1;
|
||||
let second = (x, 1).1 + 2;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user