mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 00:34:06 +00:00
change inline_retag to after.mir
This commit is contained in:
parent
1ec10ec77f
commit
2fcb4d92b0
59
tests/mir-opt/inline/inline_retag.bar.Inline.after.mir
Normal file
59
tests/mir-opt/inline/inline_retag.bar.Inline.after.mir
Normal file
@ -0,0 +1,59 @@
|
||||
// MIR for `bar` after Inline
|
||||
|
||||
fn bar() -> bool {
|
||||
let mut _0: bool;
|
||||
let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo};
|
||||
let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo};
|
||||
let mut _3: &i32;
|
||||
let _4: &i32;
|
||||
let _5: i32;
|
||||
let mut _6: &i32;
|
||||
let _7: &i32;
|
||||
let _8: i32;
|
||||
scope 1 {
|
||||
debug f => _1;
|
||||
let mut _9: &i32;
|
||||
let mut _10: &i32;
|
||||
scope 2 (inlined foo) {
|
||||
debug x => _3;
|
||||
debug y => _6;
|
||||
let mut _11: i32;
|
||||
let mut _12: i32;
|
||||
}
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_1);
|
||||
_1 = foo;
|
||||
StorageLive(_2);
|
||||
_2 = _1;
|
||||
StorageLive(_3);
|
||||
StorageLive(_4);
|
||||
_10 = const _;
|
||||
Retag(_10);
|
||||
_4 = &(*_10);
|
||||
_3 = &(*_4);
|
||||
StorageLive(_6);
|
||||
StorageLive(_7);
|
||||
_9 = const _;
|
||||
Retag(_9);
|
||||
_7 = &(*_9);
|
||||
_6 = &(*_7);
|
||||
Retag(_3);
|
||||
Retag(_6);
|
||||
StorageLive(_11);
|
||||
_11 = (*_3);
|
||||
StorageLive(_12);
|
||||
_12 = (*_6);
|
||||
_0 = Eq(move _11, move _12);
|
||||
StorageDead(_12);
|
||||
StorageDead(_11);
|
||||
StorageDead(_6);
|
||||
StorageDead(_3);
|
||||
StorageDead(_2);
|
||||
StorageDead(_1);
|
||||
StorageDead(_7);
|
||||
StorageDead(_4);
|
||||
return;
|
||||
}
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
- // MIR for `bar` before Inline
|
||||
+ // MIR for `bar` after Inline
|
||||
|
||||
fn bar() -> bool {
|
||||
let mut _0: bool;
|
||||
let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo};
|
||||
let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo};
|
||||
let mut _3: &i32;
|
||||
let _4: &i32;
|
||||
let _5: i32;
|
||||
let mut _6: &i32;
|
||||
let _7: &i32;
|
||||
let _8: i32;
|
||||
scope 1 {
|
||||
debug f => _1;
|
||||
let mut _9: &i32;
|
||||
let mut _10: &i32;
|
||||
+ scope 2 (inlined foo) {
|
||||
+ debug x => _3;
|
||||
+ debug y => _6;
|
||||
+ let mut _11: i32;
|
||||
+ let mut _12: i32;
|
||||
+ }
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_1);
|
||||
_1 = foo;
|
||||
StorageLive(_2);
|
||||
_2 = _1;
|
||||
StorageLive(_3);
|
||||
StorageLive(_4);
|
||||
_10 = const _;
|
||||
Retag(_10);
|
||||
_4 = &(*_10);
|
||||
_3 = &(*_4);
|
||||
StorageLive(_6);
|
||||
StorageLive(_7);
|
||||
_9 = const _;
|
||||
Retag(_9);
|
||||
_7 = &(*_9);
|
||||
_6 = &(*_7);
|
||||
- _0 = move _2(move _3, move _6) -> [return: bb1, unwind continue];
|
||||
- }
|
||||
-
|
||||
- bb1: {
|
||||
+ Retag(_3);
|
||||
+ Retag(_6);
|
||||
+ StorageLive(_11);
|
||||
+ _11 = (*_3);
|
||||
+ StorageLive(_12);
|
||||
+ _12 = (*_6);
|
||||
+ _0 = Eq(move _11, move _12);
|
||||
+ StorageDead(_12);
|
||||
+ StorageDead(_11);
|
||||
StorageDead(_6);
|
||||
StorageDead(_3);
|
||||
StorageDead(_2);
|
||||
StorageDead(_1);
|
||||
StorageDead(_7);
|
||||
StorageDead(_4);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ fn main() {
|
||||
println!("{}", bar());
|
||||
}
|
||||
|
||||
// EMIT_MIR inline_retag.bar.Inline.diff
|
||||
// EMIT_MIR inline_retag.bar.Inline.after.mir
|
||||
fn bar() -> bool {
|
||||
// CHECK-LABEL: fn bar(
|
||||
// CHECK: (inlined foo)
|
||||
|
Loading…
Reference in New Issue
Block a user