about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2023-12-02 20:17:04 +0000
committerCamille GILLOT <gillot.camille@gmail.com>2023-12-02 20:17:04 +0000
commit6564bac53254ae68fd5788bb0ce4b83f9ba4f8e4 (patch)
tree879b8d02fdfe0becc463e08ed84709e97a70ade6
parent378abbc604897945cf86a9eb0c16371ebd571b54 (diff)
downloadrust-6564bac53254ae68fd5788bb0ce4b83f9ba4f8e4.tar.gz
rust-6564bac53254ae68fd5788bb0ce4b83f9ba4f8e4.zip
FileCheck aggregate.
-rw-r--r--tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-abort.mir49
-rw-r--r--tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-unwind.mir49
-rw-r--r--tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-abort.mir36
-rw-r--r--tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-unwind.mir36
-rw-r--r--tests/mir-opt/const_prop/aggregate.rs18
5 files changed, 14 insertions, 174 deletions
diff --git a/tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-abort.mir b/tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-abort.mir
deleted file mode 100644
index b9c5859cade..00000000000
--- a/tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-abort.mir
+++ /dev/null
@@ -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;
-    }
-}
diff --git a/tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-unwind.mir
deleted file mode 100644
index b9c5859cade..00000000000
--- a/tests/mir-opt/const_prop/aggregate.foo.PreCodegen.after.panic-unwind.mir
+++ /dev/null
@@ -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;
-    }
-}
diff --git a/tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-abort.mir b/tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-abort.mir
deleted file mode 100644
index 44a85a5636b..00000000000
--- a/tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-abort.mir
+++ /dev/null
@@ -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;
-    }
-}
diff --git a/tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-unwind.mir
deleted file mode 100644
index 2c7bdbb5055..00000000000
--- a/tests/mir-opt/const_prop/aggregate.main.PreCodegen.after.panic-unwind.mir
+++ /dev/null
@@ -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;
-    }
-}
diff --git a/tests/mir-opt/const_prop/aggregate.rs b/tests/mir-opt/const_prop/aggregate.rs
index 2e043af08bf..fa716b0843d 100644
--- a/tests/mir-opt/const_prop/aggregate.rs
+++ b/tests/mir-opt/const_prop/aggregate.rs
@@ -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;
 }