diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2016-09-21 12:17:56 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2016-09-24 10:47:33 -0700 |
| commit | 79cb2dbfac51c79f08f823519c2cc69bf5382f6f (patch) | |
| tree | 204d1d8f2387df1a37b7aa3e42860fba466ef6e9 /src/test | |
| parent | bdad70213b32454837c0ed16dbbac3954325feea (diff) | |
| download | rust-79cb2dbfac51c79f08f823519c2cc69bf5382f6f.tar.gz rust-79cb2dbfac51c79f08f823519c2cc69bf5382f6f.zip | |
librustc_mir: Propagate constants during copy propagation.
This optimization kicks in a lot when bootstrapping the compiler.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/codegen/refs.rs | 4 | ||||
| -rw-r--r-- | src/test/mir-opt/storage_ranges.rs | 16 |
2 files changed, 10 insertions, 10 deletions
diff --git a/src/test/codegen/refs.rs b/src/test/codegen/refs.rs index 891ca03cc4d..49ed2229fcd 100644 --- a/src/test/codegen/refs.rs +++ b/src/test/codegen/refs.rs @@ -23,9 +23,9 @@ fn helper(_: usize) { pub fn ref_dst(s: &[u8]) { // We used to generate an extra alloca and memcpy to ref the dst, so check that we copy // directly to the alloca for "x" -// CHECK: [[X0:%[0-9]+]] = getelementptr {{.*}} { i8*, [[USIZE]] }* %s, i32 0, i32 0 +// CHECK: [[X0:%[0-9]+]] = getelementptr {{.*}} { i8*, [[USIZE]] }* %x, i32 0, i32 0 // CHECK: store i8* %0, i8** [[X0]] -// CHECK: [[X1:%[0-9]+]] = getelementptr {{.*}} { i8*, [[USIZE]] }* %s, i32 0, i32 1 +// CHECK: [[X1:%[0-9]+]] = getelementptr {{.*}} { i8*, [[USIZE]] }* %x, i32 0, i32 1 // CHECK: store [[USIZE]] %1, [[USIZE]]* [[X1]] let x = &*s; diff --git a/src/test/mir-opt/storage_ranges.rs b/src/test/mir-opt/storage_ranges.rs index 8782dcf8898..4ed0c8bc9ff 100644 --- a/src/test/mir-opt/storage_ranges.rs +++ b/src/test/mir-opt/storage_ranges.rs @@ -19,17 +19,17 @@ fn main() { } // END RUST SOURCE -// START rustc.node4.PreTrans.after.mir +// START rustc.node4.TypeckMir.before.mir // bb0: { -// nop; // scope 0 at storage_ranges.rs:14:9: 14:10 +// StorageLive(var0); // scope 0 at storage_ranges.rs:14:9: 14:10 // var0 = const 0i32; // scope 0 at storage_ranges.rs:14:13: 14:14 // StorageLive(var1); // scope 1 at storage_ranges.rs:16:13: 16:14 // StorageLive(tmp1); // scope 1 at storage_ranges.rs:16:18: 16:25 -// nop; // scope 1 at storage_ranges.rs:16:23: 16:24 -// nop; // scope 1 at storage_ranges.rs:16:23: 16:24 -// tmp1 = std::option::Option<i32>::Some(var0,); // scope 1 at storage_ranges.rs:16:18: 16:25 +// StorageLive(tmp2); // scope 1 at storage_ranges.rs:16:23: 16:24 +// tmp2 = var0; // scope 1 at storage_ranges.rs:16:23: 16:24 +// tmp1 = std::option::Option<i32>::Some(tmp2,); // scope 1 at storage_ranges.rs:16:18: 16:25 // var1 = &tmp1; // scope 1 at storage_ranges.rs:16:17: 16:25 -// nop; // scope 1 at storage_ranges.rs:16:23: 16:24 +// StorageDead(tmp2); // scope 1 at storage_ranges.rs:16:23: 16:24 // tmp0 = (); // scope 2 at storage_ranges.rs:15:5: 17:6 // StorageDead(tmp1); // scope 1 at storage_ranges.rs:16:18: 16:25 // StorageDead(var1); // scope 1 at storage_ranges.rs:16:13: 16:14 @@ -37,11 +37,11 @@ fn main() { // var2 = const 1i32; // scope 1 at storage_ranges.rs:18:13: 18:14 // return = (); // scope 3 at storage_ranges.rs:13:11: 19:2 // StorageDead(var2); // scope 1 at storage_ranges.rs:18:9: 18:10 -// nop; // scope 0 at storage_ranges.rs:14:9: 14:10 +// StorageDead(var0); // scope 0 at storage_ranges.rs:14:9: 14:10 // goto -> bb1; // scope 0 at storage_ranges.rs:13:1: 19:2 // } // // bb1: { // return; // scope 0 at storage_ranges.rs:13:1: 19:2 // } -// END rustc.node4.PreTrans.after.mir +// END rustc.node4.TypeckMir.before.mir |
