mirror of https://github.com/rust-lang/rust.git
30 lines
745 B
Rust
30 lines
745 B
Rust
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
|
|
// This is a copy of the `dead_stores_79191` test, except that we turn on DSE. This demonstrates
|
|
// that that pass enables this one to do more optimizations.
|
|
|
|
//@ test-mir-pass: DestinationPropagation
|
|
//@ compile-flags: -Zmir-enable-passes=+DeadStoreElimination
|
|
|
|
fn id<T>(x: T) -> T {
|
|
x
|
|
}
|
|
|
|
// EMIT_MIR dead_stores_better.f.DestinationPropagation.after.mir
|
|
pub fn f(mut a: usize) -> usize {
|
|
// CHECK-LABEL: fn f(
|
|
// CHECK: debug a => [[a:_.*]];
|
|
// CHECK: debug b => [[b:_.*]];
|
|
// CHECK: [[b]] = copy [[a]];
|
|
// CHECK: [[a]] = const 5_usize;
|
|
// CHECK: [[a]] = move [[b]];
|
|
// CHECK: id::<usize>(move [[a]])
|
|
let b = a;
|
|
a = 5;
|
|
a = b;
|
|
id(a)
|
|
}
|
|
|
|
fn main() {
|
|
f(0);
|
|
}
|