Created
September 19, 2022 09:06
-
-
Save Amanieu/183f034864c71a580b2f3347abc5b83d to your computer and use it in GitHub Desktop.
This gist exceeds the recommended number of files (~10).
To access all files, please clone this gist.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` after AddMovesForPackedDrops | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` before AddMovesForPackedDrops | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` after Derefer | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` before Derefer | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` after RemoveNoopLandingPads | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` before RemoveNoopLandingPads | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` after SimplifyCfg-make_shim | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` before SimplifyCfg-make_shim | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` after AddCallGuards | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` before AddCallGuards | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` after AbortUnwindingCalls | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` before AbortUnwindingCalls | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` after PhaseChange-Runtime(Optimized) | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `call_once` before PhaseChange-Runtime(Optimized) | |
fn call_once(_1: fn(), _2: ()) -> <fn() as FnOnce<()>>::Output { | |
let mut _0: <fn() as std::ops::FnOnce<()>>::Output; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
bb0: { | |
_0 = move _1() -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ops/function.rs:248:5: 248:71 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` after AddMovesForPackedDrops | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
goto -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` before AddMovesForPackedDrops | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
goto -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` after Derefer | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
goto -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` before Derefer | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
goto -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` after RemoveNoopLandingPads | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
goto -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` before RemoveNoopLandingPads | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
goto -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` after SimplifyCfg-make_shim | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` before SimplifyCfg-make_shim | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
goto -> bb1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb1: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` after AddCallGuards | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` before AddCallGuards | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` after AbortUnwindingCalls | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` before AbortUnwindingCalls | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` after PhaseChange-Runtime(Optimized) | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `std::ptr::drop_in_place` before PhaseChange-Runtime(Optimized) | |
fn std::ptr::drop_in_place(_1: *mut T) -> () { | |
let mut _0: (); // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
bb0: { | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/ptr/mod.rs:487:1: 487:56 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` 0 mir_map | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` 0 nll | |
| Free Region Mapping | |
| '_#0r | Global | ['_#0r, '_#1r] | |
| '_#1r | Local | ['_#1r] | |
| | |
| Inferred Region Values | |
| '_#0r | U0 | {bb0[0..=8], bb1[0..=8], bb2[0], '_#0r, '_#1r} | |
| '_#1r | U0 | {bb0[0..=8], bb1[0..=8], bb2[0], '_#1r} | |
| '_#2r | U0 | {} | |
| | |
| Inference Constraints | |
| '_#0r live at {bb0[0..=8], bb1[0..=8], bb2[0]} | |
| '_#1r live at {bb0[0..=8], bb1[0..=8], bb2[0]} | |
| | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph RegionInferenceContext { | |
r0[label="\'_#0r"][shape="box"]; | |
r1[label="\'_#1r"][shape="box"]; | |
r2[label="\'_#2r"][shape="box"]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph RegionInferenceContext { | |
r0[label="ConstraintSccIndex(0) = [\'_#1r]"][shape="box"]; | |
r1[label="ConstraintSccIndex(1) = [\'_#2r]"][shape="box"]; | |
r2[label="ConstraintSccIndex(2) = [\'_#0r]"][shape="box"]; | |
r2 -> r0[label=""]; | |
r2 -> r1[label=""]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` 0 renumber | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after PromoteTemps | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before PromoteTemps | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyCfg-initial | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyCfg-initial | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SanityCheck | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SanityCheck | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyCfg-promote-consts | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyCfg-promote-consts | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RemoveFalseEdges | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RemoveFalseEdges | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyConstCondition-initial | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyConstCondition-initial | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RemoveNoopLandingPads | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RemoveNoopLandingPads | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> [success: bb1, unwind: bb2]; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after CleanupNonCodegenStatements | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
nop; // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before CleanupNonCodegenStatements | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
FakeRead(ForLet(None), _2); // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyCfg-early-opt | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyCfg-early-opt | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
nop; // scope 0 at test.rs:3:9: 3:16 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after Derefer | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before Derefer | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after PhaseChange-Analysis(PostCleanup) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before PhaseChange-Analysis(PostCleanup) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after AddCallGuards | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before AddCallGuards | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after ElaborateDrops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before ElaborateDrops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after AbortUnwindingCalls | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before AbortUnwindingCalls | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after AddMovesForPackedDrops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before AddMovesForPackedDrops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after ElaborateBoxDerefs | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before ElaborateBoxDerefs | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after StateTransform | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before StateTransform | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after Deaggregator | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before Deaggregator | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after PhaseChange-Runtime(Initial) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before PhaseChange-Runtime(Initial) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after ElaborateBoxDerefs | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before ElaborateBoxDerefs | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after LowerIntrinsics | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before LowerIntrinsics | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyCfg-elaborate-drops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyCfg-elaborate-drops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after PhaseChange-Runtime(PostCleanup) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before PhaseChange-Runtime(PostCleanup) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RevealAll | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RevealAll | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after LowerSliceLenCalls | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before LowerSliceLenCalls | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after UnreachablePropagation | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before UnreachablePropagation | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after UninhabitedEnumBranching | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before UninhabitedEnumBranching | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyCfg-after-uninhabited-enum-branching | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyCfg-after-uninhabited-enum-branching | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after Inline | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before Inline | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RemoveStorageMarkers | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RemoveStorageMarkers | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RemoveZsts | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RemoveZsts | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RemoveUnneededDrops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RemoveUnneededDrops | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after InstCombine | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before InstCombine | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after ConstProp | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before ConstProp | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyConstCondition-after-const-prop | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyConstCondition-after-const-prop | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyComparisonIntegral | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyComparisonIntegral | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyArmIdentity | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyArmIdentity | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyBranchSame | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyBranchSame | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after DeadStoreElimination | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before DeadStoreElimination | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyConstCondition-final | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyConstCondition-final | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RemoveNoopLandingPads | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RemoveNoopLandingPads | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyCfg-final | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyCfg-final | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
bb2 (cleanup): { | |
resume; // scope 0 at test.rs:2:1: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after RenameReturnPlace | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before RenameReturnPlace | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:2:24: 2:27 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _2; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:3:9: 3:16 | |
_2 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_2 = BitOr(_2, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = _2; // scope 1 at test.rs:5:5: 5:8 | |
StorageDead(_2); // scope 0 at test.rs:6:1: 6:2 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after SimplifyLocals | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _4: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _5: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_2); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_4); // scope 1 at test.rs:4:13: 4:14 | |
_4 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_5 = CheckedShr(_4, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_5.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_3 = move (_5.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_4); // scope 1 at test.rs:4:19: 4:20 | |
_2 = BitAnd(move _3, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _2); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_2); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before SimplifyLocals | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:3:9: 3:16 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _4: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _5: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _6: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_4); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_5); // scope 1 at test.rs:4:13: 4:14 | |
_5 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_6 = CheckedShr(_5, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_6.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_4 = move (_6.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_5); // scope 1 at test.rs:4:19: 4:20 | |
_3 = BitAnd(move _4, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_4); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _3); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after AddCallGuards | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _4: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _5: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_2); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_4); // scope 1 at test.rs:4:13: 4:14 | |
_4 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_5 = CheckedShr(_4, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_5.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_3 = move (_5.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_4); // scope 1 at test.rs:4:19: 4:20 | |
_2 = BitAnd(move _3, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _2); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_2); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before AddCallGuards | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _4: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _5: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_2); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_4); // scope 1 at test.rs:4:13: 4:14 | |
_4 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_5 = CheckedShr(_4, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_5.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_3 = move (_5.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_4); // scope 1 at test.rs:4:19: 4:20 | |
_2 = BitAnd(move _3, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _2); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_2); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after PhaseChange-Runtime(Optimized) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _4: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _5: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_2); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_4); // scope 1 at test.rs:4:13: 4:14 | |
_4 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_5 = CheckedShr(_4, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_5.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_3 = move (_5.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_4); // scope 1 at test.rs:4:19: 4:20 | |
_2 = BitAnd(move _3, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _2); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_2); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before PhaseChange-Runtime(Optimized) | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _4: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _5: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_2); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_4); // scope 1 at test.rs:4:13: 4:14 | |
_4 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_5 = CheckedShr(_4, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_5.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_3 = move (_5.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_4); // scope 1 at test.rs:4:19: 4:20 | |
_2 = BitAnd(move _3, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _2); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_2); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` after PreCodegen | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _4: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _5: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_2); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_4); // scope 1 at test.rs:4:13: 4:14 | |
_4 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_5 = CheckedShr(_4, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_5.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_3 = move (_5.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_4); // scope 1 at test.rs:4:19: 4:20 | |
_2 = BitAnd(move _3, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _2); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_2); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `imm8` before PreCodegen | |
fn imm8(_1: u32) -> u32 { | |
debug x => _1; // in scope 0 at test.rs:2:13: 2:14 | |
let mut _0: u32; // return place in scope 0 at test.rs:3:9: 3:16 | |
let mut _2: u32; // in scope 0 at test.rs:4:12: 4:27 | |
let mut _3: u32; // in scope 0 at test.rs:4:12: 4:20 | |
let mut _4: u32; // in scope 0 at test.rs:4:13: 4:14 | |
let mut _5: (u32, bool); // in scope 0 at test.rs:4:12: 4:20 | |
scope 1 { | |
debug out => _0; // in scope 1 at test.rs:3:9: 3:16 | |
} | |
bb0: { | |
_0 = const 0_u32; // scope 0 at test.rs:3:19: 3:23 | |
StorageLive(_2); // scope 1 at test.rs:4:12: 4:27 | |
StorageLive(_3); // scope 1 at test.rs:4:12: 4:20 | |
StorageLive(_4); // scope 1 at test.rs:4:13: 4:14 | |
_4 = _1; // scope 1 at test.rs:4:13: 4:14 | |
_5 = CheckedShr(_4, const 0_i32); // scope 1 at test.rs:4:12: 4:20 | |
assert(!move (_5.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb1; // scope 1 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_3 = move (_5.0: u32); // scope 1 at test.rs:4:12: 4:20 | |
StorageDead(_4); // scope 1 at test.rs:4:19: 4:20 | |
_2 = BitAnd(move _3, const 255_u32); // scope 1 at test.rs:4:12: 4:27 | |
StorageDead(_3); // scope 1 at test.rs:4:26: 4:27 | |
_0 = BitOr(_0, move _2); // scope 1 at test.rs:4:5: 4:27 | |
StorageDead(_2); // scope 1 at test.rs:4:26: 4:27 | |
return; // scope 0 at test.rs:6:2: 6:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` 0 mir_map | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` 0 nll | |
| Free Region Mapping | |
| '_#0r | Global | ['_#0r, '_#1r] | |
| '_#1r | Local | ['_#1r] | |
| | |
| Inferred Region Values | |
| '_#0r | U0 | {bb0[0..=5], bb1[0..=7], bb2[0..=5], bb3[0..=2], bb4[0..=6], bb5[0], '_#0r, '_#1r} | |
| '_#1r | U0 | {bb0[0..=5], bb1[0..=7], bb2[0..=5], bb3[0..=2], bb4[0..=6], bb5[0], '_#1r} | |
| '_#2r | U0 | {} | |
| | |
| Inference Constraints | |
| '_#0r live at {bb0[0..=5], bb1[0..=7], bb2[0..=5], bb3[0..=2], bb4[0..=6], bb5[0]} | |
| '_#1r live at {bb0[0..=5], bb1[0..=7], bb2[0..=5], bb3[0..=2], bb4[0..=6], bb5[0]} | |
| | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph RegionInferenceContext { | |
r0[label="\'_#0r"][shape="box"]; | |
r1[label="\'_#1r"][shape="box"]; | |
r2[label="\'_#2r"][shape="box"]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph RegionInferenceContext { | |
r0[label="ConstraintSccIndex(0) = [\'_#1r]"][shape="box"]; | |
r1[label="ConstraintSccIndex(1) = [\'_#2r]"][shape="box"]; | |
r2[label="ConstraintSccIndex(2) = [\'_#0r]"][shape="box"]; | |
r2 -> r0[label=""]; | |
r2 -> r1[label=""]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` 0 renumber | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after PromoteTemps | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before PromoteTemps | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyCfg-initial | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyCfg-initial | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SanityCheck | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SanityCheck | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyCfg-promote-consts | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyCfg-promote-consts | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RemoveFalseEdges | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RemoveFalseEdges | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyConstCondition-initial | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyConstCondition-initial | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RemoveNoopLandingPads | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RemoveNoopLandingPads | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> [return: bb1, unwind: bb5]; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> [success: bb2, unwind: bb5]; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> [success: bb3, unwind: bb5]; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> [return: bb4, unwind: bb5]; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after CleanupNonCodegenStatements | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before CleanupNonCodegenStatements | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyCfg-early-opt | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyCfg-early-opt | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after Derefer | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before Derefer | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after PhaseChange-Analysis(PostCleanup) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before PhaseChange-Analysis(PostCleanup) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after AddCallGuards | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before AddCallGuards | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after ElaborateDrops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before ElaborateDrops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after AbortUnwindingCalls | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before AbortUnwindingCalls | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after AddMovesForPackedDrops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before AddMovesForPackedDrops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after ElaborateBoxDerefs | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before ElaborateBoxDerefs | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after StateTransform | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before StateTransform | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after Deaggregator | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before Deaggregator | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after PhaseChange-Runtime(Initial) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before PhaseChange-Runtime(Initial) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after ElaborateBoxDerefs | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before ElaborateBoxDerefs | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after LowerIntrinsics | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before LowerIntrinsics | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyCfg-elaborate-drops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyCfg-elaborate-drops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after PhaseChange-Runtime(PostCleanup) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before PhaseChange-Runtime(PostCleanup) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RevealAll | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RevealAll | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after LowerSliceLenCalls | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before LowerSliceLenCalls | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after UnreachablePropagation | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before UnreachablePropagation | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after UninhabitedEnumBranching | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before UninhabitedEnumBranching | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyCfg-after-uninhabited-enum-branching | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyCfg-after-uninhabited-enum-branching | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after Inline | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before Inline | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = imm8(move _5) -> bb1; // scope 0 at test.rs:10:5: 10:17 | |
// mir::Constant | |
// + span: test.rs:10:5: 10:9 | |
// + literal: Const { ty: fn(u32) -> u32 {imm8}, val: Value(<ZST>) } | |
} | |
bb1: { | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb2; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb2: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb3; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb3: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
_3 = core::num::<impl u32>::rotate_right(move _4, move _6) -> bb4; // scope 0 at test.rs:10:5: 10:58 | |
// mir::Constant | |
// + span: test.rs:10:18: 10:30 | |
// + literal: Const { ty: fn(u32, u32) -> u32 {core::num::<impl u32>::rotate_right}, val: Value(<ZST>) } | |
} | |
bb4: { | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RemoveStorageMarkers | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RemoveStorageMarkers | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RemoveZsts | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RemoveZsts | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RemoveUnneededDrops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RemoveUnneededDrops | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after InstCombine | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before InstCombine | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after ConstProp | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before ConstProp | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = _4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyConstCondition-after-const-prop | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyConstCondition-after-const-prop | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyComparisonIntegral | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyComparisonIntegral | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyArmIdentity | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyArmIdentity | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyBranchSame | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyBranchSame | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after DeadStoreElimination | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
nop; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
nop; // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
nop; // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
nop; // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before DeadStoreElimination | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
_4 = const 0_u32; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
_13 = move (_15.0: u32); // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
_12 = BitAnd(move _13, const 255_u32); // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
_4 = BitOr(_4, move _12); // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyConstCondition-final | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
nop; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
nop; // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
nop; // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
nop; // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyConstCondition-final | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
nop; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
nop; // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
nop; // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
nop; // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RemoveNoopLandingPads | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
nop; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
nop; // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
nop; // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
nop; // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RemoveNoopLandingPads | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
nop; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
nop; // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
nop; // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
nop; // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyCfg-final | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyCfg-final | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
nop; // scope 1 at test.rs:3:19: 3:23 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
nop; // scope 2 at test.rs:4:12: 4:20 | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
nop; // scope 2 at test.rs:4:12: 4:27 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
nop; // scope 2 at test.rs:4:5: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
bb5 (cleanup): { | |
resume; // scope 0 at test.rs:9:1: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after RenameReturnPlace | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before RenameReturnPlace | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after SimplifyLocals | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _13: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _14: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _15: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:13: 4:14 | |
_12 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_13 = CheckedShr(_12, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_13.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_14 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_15 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _14, move _15) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_12); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before SimplifyLocals | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:12: 4:27 | |
let mut _13: u32; // in scope 1 at test.rs:4:12: 4:20 | |
let mut _14: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _15: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _16: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _17: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:12: 4:27 | |
StorageLive(_13); // scope 2 at test.rs:4:12: 4:20 | |
StorageLive(_14); // scope 2 at test.rs:4:13: 4:14 | |
_14 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_15 = CheckedShr(_14, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_15.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_16 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_17 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _16, move _17) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_14); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_13); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_12); // scope 2 at test.rs:4:26: 4:27 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_17); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_16); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after AddCallGuards | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _13: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _14: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _15: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:13: 4:14 | |
_12 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_13 = CheckedShr(_12, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_13.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_14 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_15 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _14, move _15) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_12); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before AddCallGuards | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _13: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _14: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _15: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:13: 4:14 | |
_12 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_13 = CheckedShr(_12, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_13.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_14 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_15 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _14, move _15) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_12); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after PhaseChange-Runtime(Optimized) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _13: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _14: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _15: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:13: 4:14 | |
_12 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_13 = CheckedShr(_12, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_13.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_14 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_15 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _14, move _15) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_12); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before PhaseChange-Runtime(Optimized) | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _13: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _14: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _15: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:13: 4:14 | |
_12 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_13 = CheckedShr(_12, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_13.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_14 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_15 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _14, move _15) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_12); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` after PreCodegen | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _13: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _14: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _15: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:13: 4:14 | |
_12 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_13 = CheckedShr(_12, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_13.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_14 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_15 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _14, move _15) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_12); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `inner` before PreCodegen | |
fn inner(_1: u32) -> i64 { | |
debug fields => _1; // in scope 0 at test.rs:9:14: 9:20 | |
let mut _0: i64; // return place in scope 0 at test.rs:9:30: 9:33 | |
let mut _2: i32; // in scope 0 at test.rs:10:5: 10:65 | |
let mut _3: u32; // in scope 0 at test.rs:10:5: 10:58 | |
let mut _4: u32; // in scope 0 at test.rs:10:5: 10:17 | |
let mut _5: u32; // in scope 0 at test.rs:10:10: 10:16 | |
let mut _6: u32; // in scope 0 at test.rs:10:31: 10:57 | |
let mut _7: u32; // in scope 0 at test.rs:10:31: 10:52 | |
let mut _8: u32; // in scope 0 at test.rs:10:32: 10:45 | |
let mut _9: u32; // in scope 0 at test.rs:10:33: 10:39 | |
let mut _10: (u32, bool); // in scope 0 at test.rs:10:32: 10:45 | |
let mut _11: (u32, bool); // in scope 0 at test.rs:10:31: 10:57 | |
scope 1 (inlined imm8) { // at test.rs:10:5: 10:17 | |
debug x => _5; // in scope 1 at test.rs:2:13: 2:14 | |
let mut _12: u32; // in scope 1 at test.rs:4:13: 4:14 | |
let mut _13: (u32, bool); // in scope 1 at test.rs:4:12: 4:20 | |
scope 2 { | |
debug out => _4; // in scope 2 at test.rs:3:9: 3:16 | |
} | |
} | |
scope 3 (inlined core::num::<impl u32>::rotate_right) { // at test.rs:10:5: 10:58 | |
debug self => _4; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:35: 237:39 | |
debug n => _6; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:237:41: 237:42 | |
let mut _14: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
let mut _15: u32; // in scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
} | |
bb0: { | |
StorageLive(_2); // scope 0 at test.rs:10:5: 10:65 | |
StorageLive(_3); // scope 0 at test.rs:10:5: 10:58 | |
StorageLive(_4); // scope 0 at test.rs:10:5: 10:17 | |
StorageLive(_5); // scope 0 at test.rs:10:10: 10:16 | |
_5 = _1; // scope 0 at test.rs:10:10: 10:16 | |
StorageLive(_12); // scope 2 at test.rs:4:13: 4:14 | |
_12 = _5; // scope 2 at test.rs:4:13: 4:14 | |
_13 = CheckedShr(_12, const 0_i32); // scope 2 at test.rs:4:12: 4:20 | |
assert(!move (_13.1: bool), "attempt to shift right by `{}`, which would overflow", const 0_i32) -> bb3; // scope 2 at test.rs:4:12: 4:20 | |
} | |
bb1: { | |
_8 = move (_10.0: u32); // scope 0 at test.rs:10:32: 10:45 | |
StorageDead(_9); // scope 0 at test.rs:10:44: 10:45 | |
_7 = BitAnd(move _8, const 15_u32); // scope 0 at test.rs:10:31: 10:52 | |
StorageDead(_8); // scope 0 at test.rs:10:51: 10:52 | |
_11 = CheckedShl(_7, const 1_i32); // scope 0 at test.rs:10:31: 10:57 | |
assert(!move (_11.1: bool), "attempt to shift left by `{}`, which would overflow", const 1_i32) -> bb2; // scope 0 at test.rs:10:31: 10:57 | |
} | |
bb2: { | |
_6 = move (_11.0: u32); // scope 0 at test.rs:10:31: 10:57 | |
StorageDead(_7); // scope 0 at test.rs:10:56: 10:57 | |
StorageLive(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
_14 = const 0_u32; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:38: 238:42 | |
StorageLive(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_15 = _6; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:44: 238:45 | |
_3 = rotate_right::<u32>(move _14, move _15) -> bb4; // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:56 | |
// mir::Constant | |
// + span: /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:13: 238:37 | |
// + literal: Const { ty: extern "rust-intrinsic" fn(u32, u32) -> u32 {rotate_right::<u32>}, val: Value(<ZST>) } | |
} | |
bb3: { | |
StorageDead(_12); // scope 2 at test.rs:4:19: 4:20 | |
StorageDead(_5); // scope 0 at test.rs:10:16: 10:17 | |
StorageLive(_6); // scope 0 at test.rs:10:31: 10:57 | |
StorageLive(_7); // scope 0 at test.rs:10:31: 10:52 | |
StorageLive(_8); // scope 0 at test.rs:10:32: 10:45 | |
StorageLive(_9); // scope 0 at test.rs:10:33: 10:39 | |
_9 = _1; // scope 0 at test.rs:10:33: 10:39 | |
_10 = CheckedShr(_9, const 8_i32); // scope 0 at test.rs:10:32: 10:45 | |
assert(!move (_10.1: bool), "attempt to shift right by `{}`, which would overflow", const 8_i32) -> bb1; // scope 0 at test.rs:10:32: 10:45 | |
} | |
bb4: { | |
StorageDead(_15); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_14); // scope 3 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/core/src/num/uint_macros.rs:238:55: 238:56 | |
StorageDead(_6); // scope 0 at test.rs:10:57: 10:58 | |
StorageDead(_4); // scope 0 at test.rs:10:57: 10:58 | |
_2 = move _3 as i32 (Misc); // scope 0 at test.rs:10:5: 10:65 | |
StorageDead(_3); // scope 0 at test.rs:10:64: 10:65 | |
_0 = move _2 as i64 (Misc); // scope 0 at test.rs:10:5: 10:72 | |
StorageDead(_2); // scope 0 at test.rs:10:71: 10:72 | |
return; // scope 0 at test.rs:11:2: 11:2 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after RemoveFalseEdges | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before RemoveFalseEdges | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after SimplifyConstCondition-initial | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before SimplifyConstCondition-initial | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after RemoveNoopLandingPads | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before RemoveNoopLandingPads | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after CleanupNonCodegenStatements | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before CleanupNonCodegenStatements | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after SimplifyCfg-early-opt | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before SimplifyCfg-early-opt | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after Derefer | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before Derefer | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after PhaseChange-Analysis(PostCleanup) | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before PhaseChange-Analysis(PostCleanup) | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after AddCallGuards | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before AddCallGuards | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after ElaborateDrops | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before ElaborateDrops | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after AbortUnwindingCalls | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before AbortUnwindingCalls | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after AddMovesForPackedDrops | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before AddMovesForPackedDrops | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after ElaborateBoxDerefs | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before ElaborateBoxDerefs | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after StateTransform | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before StateTransform | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after Deaggregator | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before Deaggregator | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
_4 = std::fmt::rt::v1::Alignment::Unknown; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_5 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_6 = Implied; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_3 = FormatSpec { fill: const ' ', align: move _4, flags: const 4_u32, precision: move _5, width: move _6 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_2 = Argument { position: const 0_usize, format: move _3 }; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after PhaseChange-Runtime(Initial) | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before PhaseChange-Runtime(Initial) | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after ElaborateBoxDerefs | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before ElaborateBoxDerefs | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after LowerIntrinsics | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before LowerIntrinsics | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after SimplifyCfg-elaborate-drops | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before SimplifyCfg-elaborate-drops | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` after PhaseChange-Runtime(PostCleanup) | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[0]` before PhaseChange-Runtime(PostCleanup) | |
promoted[0] in main: &[Argument; 1] = { | |
let mut _0: &[std::fmt::rt::v1::Argument; 1]; // return place in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _1: [std::fmt::rt::v1::Argument; 1]; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _2: std::fmt::rt::v1::Argument; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _3: std::fmt::rt::v1::FormatSpec; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _4: std::fmt::rt::v1::Alignment; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _5: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
let mut _6: std::fmt::rt::v1::Count; // in scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
bb0: { | |
Deinit(_4); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_4) = 3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_5); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_5) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_6); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
discriminant(_6) = 2; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_3); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.0: char) = const ' '; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.1: std::fmt::rt::v1::Alignment) = move _4; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.2: u32) = const 4_u32; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.3: std::fmt::rt::v1::Count) = move _5; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_3.4: std::fmt::rt::v1::Count) = move _6; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
Deinit(_2); // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.0: usize) = const 0_usize; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
(_2.1: std::fmt::rt::v1::FormatSpec) = move _3; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_1 = [move _2]; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
_0 = &_1; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
return; // scope 0 at /rustc/b44197abb0b3ffe4908892e1e08ab1cd721ff3b9/library/std/src/macros.rs:130:28: 130:61 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after RemoveFalseEdges | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before RemoveFalseEdges | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after SimplifyConstCondition-initial | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before SimplifyConstCondition-initial | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after RemoveNoopLandingPads | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before RemoveNoopLandingPads | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after CleanupNonCodegenStatements | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before CleanupNonCodegenStatements | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after SimplifyCfg-early-opt | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before SimplifyCfg-early-opt | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after Derefer | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before Derefer | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after PhaseChange-Analysis(PostCleanup) | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before PhaseChange-Analysis(PostCleanup) | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after AddCallGuards | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before AddCallGuards | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after ElaborateDrops | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before ElaborateDrops | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after AbortUnwindingCalls | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before AbortUnwindingCalls | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
bb1 (cleanup): { | |
resume; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after AddMovesForPackedDrops | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before AddMovesForPackedDrops | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after ElaborateBoxDerefs | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before ElaborateBoxDerefs | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after StateTransform | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before StateTransform | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after Deaggregator | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before Deaggregator | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after PhaseChange-Runtime(Initial) | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before PhaseChange-Runtime(Initial) | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after ElaborateBoxDerefs | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before ElaborateBoxDerefs | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after LowerIntrinsics | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before LowerIntrinsics | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` after SimplifyCfg-elaborate-drops | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MIR for `main::promoted[1]` before SimplifyCfg-elaborate-drops | |
promoted[1] in main: &[&str; 2] = { | |
let mut _0: &[&str; 2]; // return place in scope 0 at test.rs:15:14: 15:24 | |
let mut _1: [&str; 2]; // in scope 0 at test.rs:15:14: 15:24 | |
bb0: { | |
_1 = [const "", const "\n"]; // scope 0 at test.rs:15:14: 15:24 | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
// mir::Constant | |
// + span: test.rs:15:14: 15:24 | |
// + literal: Const { ty: &str, val: Value(Slice(..)) } | |
_0 = &_1; // scope 0 at test.rs:15:14: 15:24 | |
return; // scope 0 at test.rs:15:14: 15:24 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment