1
Fork 0

Enable by default.

This commit is contained in:
Camille GILLOT 2023-01-18 17:57:50 +00:00
parent f4cfd87202
commit e132cac3c4
12 changed files with 370 additions and 582 deletions

View file

@ -60,7 +60,7 @@ const MAX_PLACES: usize = 100;
impl<'tcx> MirPass<'tcx> for JumpThreading { impl<'tcx> MirPass<'tcx> for JumpThreading {
fn is_enabled(&self, sess: &rustc_session::Session) -> bool { fn is_enabled(&self, sess: &rustc_session::Session) -> bool {
sess.mir_opt_level() >= 4 sess.mir_opt_level() >= 2
} }
#[instrument(skip_all level = "debug")] #[instrument(skip_all level = "debug")]

View file

@ -33,20 +33,16 @@ Number of file 0 mappings: 24
- Code(Expression(1, Add)) at (prev + 1, 5) to (start + 3, 2) - Code(Expression(1, Add)) at (prev + 1, 5) to (start + 3, 2)
= (c1 + (c0 - c1)) = (c1 + (c0 - c1))
Function name: closure::main::{closure#0} Function name: closure::main::{closure#0} (unused)
Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 28, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 07, 01, 09, 01, 06] Raw bytes (24): 0x[01, 01, 00, 04, 00, 28, 05, 02, 14, 00, 02, 15, 02, 0a, 00, 02, 0a, 00, 0b, 00, 01, 09, 01, 06]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 2 Number of expressions: 0
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
- expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub)
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 40, 5) to (start + 2, 20) - Code(Zero) at (prev + 40, 5) to (start + 2, 20)
- Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10) - Code(Zero) at (prev + 2, 21) to (start + 2, 10)
- Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11) - Code(Zero) at (prev + 2, 10) to (start + 0, 11)
= (c0 - c1) - Code(Zero) at (prev + 1, 9) to (start + 1, 6)
- Code(Expression(1, Add)) at (prev + 1, 9) to (start + 1, 6)
= (c1 + (c0 - c1))
Function name: closure::main::{closure#10} (unused) Function name: closure::main::{closure#10} (unused)
Raw bytes (10): 0x[01, 01, 00, 01, 00, 9b, 01, 07, 00, 21] Raw bytes (10): 0x[01, 01, 00, 01, 00, 9b, 01, 07, 00, 21]
@ -148,20 +144,16 @@ Number of file 0 mappings: 6
- Code(Expression(0, Add)) at (prev + 2, 9) to (start + 0, 10) - Code(Expression(0, Add)) at (prev + 2, 9) to (start + 0, 10)
= (c1 + (c0 - c1)) = (c1 + (c0 - c1))
Function name: closure::main::{closure#18} Function name: closure::main::{closure#18} (unused)
Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 19, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 12, 00, 13, 07, 01, 11, 01, 0e] Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 0d, 02, 1c, 00, 02, 1d, 02, 12, 00, 02, 12, 00, 13, 00, 01, 11, 01, 0e]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 2 Number of expressions: 0
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
- expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub)
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 25, 13) to (start + 2, 28) - Code(Zero) at (prev + 25, 13) to (start + 2, 28)
- Code(Counter(1)) at (prev + 2, 29) to (start + 2, 18) - Code(Zero) at (prev + 2, 29) to (start + 2, 18)
- Code(Expression(0, Sub)) at (prev + 2, 18) to (start + 0, 19) - Code(Zero) at (prev + 2, 18) to (start + 0, 19)
= (c0 - c1) - Code(Zero) at (prev + 1, 17) to (start + 1, 14)
- Code(Expression(1, Add)) at (prev + 1, 17) to (start + 1, 14)
= (c1 + (c0 - c1))
Function name: closure::main::{closure#19} Function name: closure::main::{closure#19}
Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 43, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 12, 00, 13, 07, 01, 11, 01, 0e] Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 43, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 12, 00, 13, 07, 01, 11, 01, 0e]

View file

@ -77,7 +77,7 @@ Number of file 0 mappings: 1
- Code(Counter(0)) at (prev + 167, 9) to (start + 2, 10) - Code(Counter(0)) at (prev + 167, 9) to (start + 2, 10)
Function name: issue_84561::test3 Function name: issue_84561::test3
Raw bytes (436): 0x[01, 01, 41, 05, 09, 0d, 00, 15, 19, 12, 00, 15, 19, 21, 00, 1e, 00, 21, 00, 31, 00, 3d, 41, 2e, 45, 3d, 41, 42, 49, 45, 00, 3f, 51, 42, 49, 45, 00, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 92, 01, 55, 51, 00, 8f, 01, 5d, 92, 01, 55, 51, 00, 87, 01, 61, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 82, 01, 65, 87, 01, 61, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 75, f6, 01, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, 71, fe, 01, 82, 02, 71, 69, 6d, 69, 6d, 82, 02, 71, 69, 6d, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, f3, 01, 7d, 75, f6, 01, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, ee, 01, 00, f3, 01, 7d, 75, f6, 01, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, 33, 01, 08, 01, 03, 1c, 05, 04, 09, 01, 1c, 02, 02, 05, 04, 1f, 0d, 05, 05, 00, 1f, 06, 01, 05, 00, 1f, 15, 01, 09, 01, 1c, 12, 02, 05, 00, 1f, 0e, 01, 05, 00, 0f, 00, 00, 20, 00, 30, 21, 01, 05, 03, 0f, 00, 03, 20, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 1e, 01, 05, 00, 0f, 00, 05, 09, 03, 10, 00, 05, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 1a, 04, 09, 05, 06, 31, 06, 05, 03, 06, 22, 04, 05, 03, 06, 3d, 04, 09, 04, 06, 2e, 05, 08, 00, 0f, 45, 01, 09, 03, 0a, 2a, 05, 09, 03, 0a, 3f, 05, 08, 00, 0f, 51, 01, 09, 00, 13, 00, 03, 0d, 00, 1d, 3a, 03, 09, 00, 13, 00, 03, 0d, 00, 1d, 87, 01, 03, 05, 00, 0f, 8f, 01, 01, 0c, 00, 13, 5d, 01, 0d, 00, 13, 8a, 01, 02, 0d, 00, 13, 82, 01, 04, 05, 02, 13, 65, 03, 0d, 00, 13, 7e, 02, 0d, 00, 13, f3, 01, 03, 05, 00, 0f, 69, 01, 0c, 00, 13, 6d, 01, 0d, 03, 0e, 75, 04, 0d, 00, 13, fb, 01, 02, 0d, 00, 17, 82, 02, 01, 14, 00, 1b, 71, 01, 15, 00, 1b, fe, 01, 02, 15, 00, 1b, f6, 01, 04, 0d, 00, 13, 7d, 03, 09, 00, 19, ee, 01, 02, 05, 00, 0f, ea, 01, 03, 09, 00, 22, 00, 02, 05, 00, 0f, 00, 03, 09, 00, 2c, 00, 02, 01, 00, 02] Raw bytes (436): 0x[01, 01, 41, 05, 09, 0d, 00, 15, 19, 12, 00, 15, 19, 21, 00, 1e, 00, 21, 00, 31, 00, 3d, 41, 2e, 45, 3d, 41, 42, 49, 45, 00, 3f, 51, 42, 49, 45, 00, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 92, 01, 55, 51, 00, 8f, 01, 5d, 92, 01, 55, 51, 00, 87, 01, 61, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 82, 01, 65, 87, 01, 61, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 75, f6, 01, fb, 01, 79, 00, fe, 01, 82, 02, 00, 69, 6d, 00, fe, 01, 82, 02, 00, 69, 6d, 69, 6d, 82, 02, 00, 69, 6d, fb, 01, 79, 00, fe, 01, 82, 02, 00, 69, 6d, f3, 01, 7d, 75, f6, 01, fb, 01, 79, 00, fe, 01, 82, 02, 00, 69, 6d, ee, 01, 00, f3, 01, 7d, 75, f6, 01, fb, 01, 79, 00, fe, 01, 82, 02, 00, 69, 6d, 33, 01, 08, 01, 03, 1c, 05, 04, 09, 01, 1c, 02, 02, 05, 04, 1f, 0d, 05, 05, 00, 1f, 06, 01, 05, 00, 1f, 15, 01, 09, 01, 1c, 12, 02, 05, 00, 1f, 0e, 01, 05, 00, 0f, 00, 00, 20, 00, 30, 21, 01, 05, 03, 0f, 00, 03, 20, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 1e, 01, 05, 00, 0f, 00, 05, 09, 03, 10, 00, 05, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 1a, 04, 09, 05, 06, 31, 06, 05, 03, 06, 22, 04, 05, 03, 06, 3d, 04, 09, 04, 06, 2e, 05, 08, 00, 0f, 45, 01, 09, 03, 0a, 2a, 05, 09, 03, 0a, 3f, 05, 08, 00, 0f, 51, 01, 09, 00, 13, 00, 03, 0d, 00, 1d, 3a, 03, 09, 00, 13, 00, 03, 0d, 00, 1d, 87, 01, 03, 05, 00, 0f, 8f, 01, 01, 0c, 00, 13, 5d, 01, 0d, 00, 13, 8a, 01, 02, 0d, 00, 13, 82, 01, 04, 05, 02, 13, 65, 03, 0d, 00, 13, 7e, 02, 0d, 00, 13, f3, 01, 03, 05, 00, 0f, 69, 01, 0c, 00, 13, 6d, 01, 0d, 03, 0e, 75, 04, 0d, 00, 13, fb, 01, 02, 0d, 00, 17, 82, 02, 01, 14, 00, 1b, 00, 01, 15, 00, 1b, fe, 01, 02, 15, 00, 1b, f6, 01, 04, 0d, 00, 13, 7d, 03, 09, 00, 19, ee, 01, 02, 05, 00, 0f, ea, 01, 03, 09, 00, 22, 00, 02, 05, 00, 0f, 00, 03, 09, 00, 2c, 00, 02, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 65 Number of expressions: 65
@ -120,31 +120,31 @@ Number of expressions: 65
- expression 36 operands: lhs = Counter(20), rhs = Zero - expression 36 operands: lhs = Counter(20), rhs = Zero
- expression 37 operands: lhs = Counter(29), rhs = Expression(61, Sub) - expression 37 operands: lhs = Counter(29), rhs = Expression(61, Sub)
- expression 38 operands: lhs = Expression(62, Add), rhs = Counter(30) - expression 38 operands: lhs = Expression(62, Add), rhs = Counter(30)
- expression 39 operands: lhs = Counter(28), rhs = Expression(63, Sub) - expression 39 operands: lhs = Zero, rhs = Expression(63, Sub)
- expression 40 operands: lhs = Expression(64, Sub), rhs = Counter(28) - expression 40 operands: lhs = Expression(64, Sub), rhs = Zero
- expression 41 operands: lhs = Counter(26), rhs = Counter(27) - expression 41 operands: lhs = Counter(26), rhs = Counter(27)
- expression 42 operands: lhs = Counter(28), rhs = Expression(63, Sub) - expression 42 operands: lhs = Zero, rhs = Expression(63, Sub)
- expression 43 operands: lhs = Expression(64, Sub), rhs = Counter(28) - expression 43 operands: lhs = Expression(64, Sub), rhs = Zero
- expression 44 operands: lhs = Counter(26), rhs = Counter(27) - expression 44 operands: lhs = Counter(26), rhs = Counter(27)
- expression 45 operands: lhs = Counter(26), rhs = Counter(27) - expression 45 operands: lhs = Counter(26), rhs = Counter(27)
- expression 46 operands: lhs = Expression(64, Sub), rhs = Counter(28) - expression 46 operands: lhs = Expression(64, Sub), rhs = Zero
- expression 47 operands: lhs = Counter(26), rhs = Counter(27) - expression 47 operands: lhs = Counter(26), rhs = Counter(27)
- expression 48 operands: lhs = Expression(62, Add), rhs = Counter(30) - expression 48 operands: lhs = Expression(62, Add), rhs = Counter(30)
- expression 49 operands: lhs = Counter(28), rhs = Expression(63, Sub) - expression 49 operands: lhs = Zero, rhs = Expression(63, Sub)
- expression 50 operands: lhs = Expression(64, Sub), rhs = Counter(28) - expression 50 operands: lhs = Expression(64, Sub), rhs = Zero
- expression 51 operands: lhs = Counter(26), rhs = Counter(27) - expression 51 operands: lhs = Counter(26), rhs = Counter(27)
- expression 52 operands: lhs = Expression(60, Add), rhs = Counter(31) - expression 52 operands: lhs = Expression(60, Add), rhs = Counter(31)
- expression 53 operands: lhs = Counter(29), rhs = Expression(61, Sub) - expression 53 operands: lhs = Counter(29), rhs = Expression(61, Sub)
- expression 54 operands: lhs = Expression(62, Add), rhs = Counter(30) - expression 54 operands: lhs = Expression(62, Add), rhs = Counter(30)
- expression 55 operands: lhs = Counter(28), rhs = Expression(63, Sub) - expression 55 operands: lhs = Zero, rhs = Expression(63, Sub)
- expression 56 operands: lhs = Expression(64, Sub), rhs = Counter(28) - expression 56 operands: lhs = Expression(64, Sub), rhs = Zero
- expression 57 operands: lhs = Counter(26), rhs = Counter(27) - expression 57 operands: lhs = Counter(26), rhs = Counter(27)
- expression 58 operands: lhs = Expression(59, Sub), rhs = Zero - expression 58 operands: lhs = Expression(59, Sub), rhs = Zero
- expression 59 operands: lhs = Expression(60, Add), rhs = Counter(31) - expression 59 operands: lhs = Expression(60, Add), rhs = Counter(31)
- expression 60 operands: lhs = Counter(29), rhs = Expression(61, Sub) - expression 60 operands: lhs = Counter(29), rhs = Expression(61, Sub)
- expression 61 operands: lhs = Expression(62, Add), rhs = Counter(30) - expression 61 operands: lhs = Expression(62, Add), rhs = Counter(30)
- expression 62 operands: lhs = Counter(28), rhs = Expression(63, Sub) - expression 62 operands: lhs = Zero, rhs = Expression(63, Sub)
- expression 63 operands: lhs = Expression(64, Sub), rhs = Counter(28) - expression 63 operands: lhs = Expression(64, Sub), rhs = Zero
- expression 64 operands: lhs = Counter(26), rhs = Counter(27) - expression 64 operands: lhs = Counter(26), rhs = Counter(27)
Number of file 0 mappings: 51 Number of file 0 mappings: 51
- Code(Counter(0)) at (prev + 8, 1) to (start + 3, 28) - Code(Counter(0)) at (prev + 8, 1) to (start + 3, 28)
@ -200,24 +200,24 @@ Number of file 0 mappings: 51
- Code(Expression(31, Sub)) at (prev + 2, 13) to (start + 0, 19) - Code(Expression(31, Sub)) at (prev + 2, 13) to (start + 0, 19)
= (((c23 + (((c20 - Zero) + c21) - c23)) - c24) - c25) = (((c23 + (((c20 - Zero) + c21) - c23)) - c24) - c25)
- Code(Expression(60, Add)) at (prev + 3, 5) to (start + 0, 15) - Code(Expression(60, Add)) at (prev + 3, 5) to (start + 0, 15)
= (c29 + ((c28 + ((c26 - c27) - c28)) - c30)) = (c29 + ((Zero + ((c26 - c27) - Zero)) - c30))
- Code(Counter(26)) at (prev + 1, 12) to (start + 0, 19) - Code(Counter(26)) at (prev + 1, 12) to (start + 0, 19)
- Code(Counter(27)) at (prev + 1, 13) to (start + 3, 14) - Code(Counter(27)) at (prev + 1, 13) to (start + 3, 14)
- Code(Counter(29)) at (prev + 4, 13) to (start + 0, 19) - Code(Counter(29)) at (prev + 4, 13) to (start + 0, 19)
- Code(Expression(62, Add)) at (prev + 2, 13) to (start + 0, 23) - Code(Expression(62, Add)) at (prev + 2, 13) to (start + 0, 23)
= (c28 + ((c26 - c27) - c28)) = (Zero + ((c26 - c27) - Zero))
- Code(Expression(64, Sub)) at (prev + 1, 20) to (start + 0, 27) - Code(Expression(64, Sub)) at (prev + 1, 20) to (start + 0, 27)
= (c26 - c27) = (c26 - c27)
- Code(Counter(28)) at (prev + 1, 21) to (start + 0, 27) - Code(Zero) at (prev + 1, 21) to (start + 0, 27)
- Code(Expression(63, Sub)) at (prev + 2, 21) to (start + 0, 27) - Code(Expression(63, Sub)) at (prev + 2, 21) to (start + 0, 27)
= ((c26 - c27) - c28) = ((c26 - c27) - Zero)
- Code(Expression(61, Sub)) at (prev + 4, 13) to (start + 0, 19) - Code(Expression(61, Sub)) at (prev + 4, 13) to (start + 0, 19)
= ((c28 + ((c26 - c27) - c28)) - c30) = ((Zero + ((c26 - c27) - Zero)) - c30)
- Code(Counter(31)) at (prev + 3, 9) to (start + 0, 25) - Code(Counter(31)) at (prev + 3, 9) to (start + 0, 25)
- Code(Expression(59, Sub)) at (prev + 2, 5) to (start + 0, 15) - Code(Expression(59, Sub)) at (prev + 2, 5) to (start + 0, 15)
= ((c29 + ((c28 + ((c26 - c27) - c28)) - c30)) - c31) = ((c29 + ((Zero + ((c26 - c27) - Zero)) - c30)) - c31)
- Code(Expression(58, Sub)) at (prev + 3, 9) to (start + 0, 34) - Code(Expression(58, Sub)) at (prev + 3, 9) to (start + 0, 34)
= (((c29 + ((c28 + ((c26 - c27) - c28)) - c30)) - c31) - Zero) = (((c29 + ((Zero + ((c26 - c27) - Zero)) - c30)) - c31) - Zero)
- Code(Zero) at (prev + 2, 5) to (start + 0, 15) - Code(Zero) at (prev + 2, 5) to (start + 0, 15)
- Code(Zero) at (prev + 3, 9) to (start + 0, 44) - Code(Zero) at (prev + 3, 9) to (start + 0, 44)
- Code(Zero) at (prev + 2, 1) to (start + 0, 2) - Code(Zero) at (prev + 2, 1) to (start + 0, 2)

View file

@ -59,162 +59,131 @@ Number of file 0 mappings: 4
= (c1 + (c0 - c1)) = (c1 + (c0 - c1))
Function name: try_error_result::test1 Function name: try_error_result::test1
Raw bytes (77): 0x[01, 01, 09, 01, 07, 05, 09, 03, 0d, 1d, 11, 16, 1d, 03, 0d, 1f, 0d, 23, 19, 11, 15, 0b, 01, 0d, 01, 02, 17, 03, 07, 09, 00, 0e, 16, 02, 09, 04, 1a, 1d, 06, 0d, 00, 29, 11, 00, 29, 00, 2a, 0e, 01, 0d, 00, 2a, 15, 00, 2a, 00, 2b, 12, 04, 0d, 00, 2a, 19, 00, 2a, 00, 2b, 0d, 03, 05, 00, 0b, 1b, 01, 01, 00, 02] Raw bytes (75): 0x[01, 01, 08, 01, 07, 00, 09, 03, 0d, 12, 1d, 03, 0d, 1b, 0d, 1f, 00, 11, 00, 0b, 01, 0d, 01, 02, 17, 03, 07, 09, 00, 0e, 12, 02, 09, 04, 1a, 1d, 06, 0d, 00, 29, 11, 00, 29, 00, 2a, 00, 01, 0d, 00, 2a, 00, 00, 2a, 00, 2b, 0e, 04, 0d, 00, 2a, 00, 00, 2a, 00, 2b, 0d, 03, 05, 00, 0b, 17, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 9 Number of expressions: 8
- expression 0 operands: lhs = Counter(0), rhs = Expression(1, Add) - expression 0 operands: lhs = Counter(0), rhs = Expression(1, Add)
- expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 1 operands: lhs = Zero, rhs = Counter(2)
- expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 3 operands: lhs = Counter(7), rhs = Counter(4) - expression 3 operands: lhs = Expression(4, Sub), rhs = Counter(7)
- expression 4 operands: lhs = Expression(5, Sub), rhs = Counter(7) - expression 4 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 5 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 5 operands: lhs = Expression(6, Add), rhs = Counter(3)
- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(3) - expression 6 operands: lhs = Expression(7, Add), rhs = Zero
- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(6) - expression 7 operands: lhs = Counter(4), rhs = Zero
- expression 8 operands: lhs = Counter(4), rhs = Counter(5)
Number of file 0 mappings: 11 Number of file 0 mappings: 11
- Code(Counter(0)) at (prev + 13, 1) to (start + 2, 23) - Code(Counter(0)) at (prev + 13, 1) to (start + 2, 23)
- Code(Expression(0, Add)) at (prev + 7, 9) to (start + 0, 14) - Code(Expression(0, Add)) at (prev + 7, 9) to (start + 0, 14)
= (c0 + (c1 + c2)) = (c0 + (Zero + c2))
- Code(Expression(5, Sub)) at (prev + 2, 9) to (start + 4, 26) - Code(Expression(4, Sub)) at (prev + 2, 9) to (start + 4, 26)
= ((c0 + (c1 + c2)) - c3) = ((c0 + (Zero + c2)) - c3)
- Code(Counter(7)) at (prev + 6, 13) to (start + 0, 41) - Code(Counter(7)) at (prev + 6, 13) to (start + 0, 41)
- Code(Counter(4)) at (prev + 0, 41) to (start + 0, 42) - Code(Counter(4)) at (prev + 0, 41) to (start + 0, 42)
- Code(Expression(3, Sub)) at (prev + 1, 13) to (start + 0, 42) - Code(Zero) at (prev + 1, 13) to (start + 0, 42)
= (c7 - c4) - Code(Zero) at (prev + 0, 42) to (start + 0, 43)
- Code(Counter(5)) at (prev + 0, 42) to (start + 0, 43) - Code(Expression(3, Sub)) at (prev + 4, 13) to (start + 0, 42)
- Code(Expression(4, Sub)) at (prev + 4, 13) to (start + 0, 42) = (((c0 + (Zero + c2)) - c3) - c7)
= (((c0 + (c1 + c2)) - c3) - c7) - Code(Zero) at (prev + 0, 42) to (start + 0, 43)
- Code(Counter(6)) at (prev + 0, 42) to (start + 0, 43)
- Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11) - Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11)
- Code(Expression(6, Add)) at (prev + 1, 1) to (start + 0, 2) - Code(Expression(5, Add)) at (prev + 1, 1) to (start + 0, 2)
= (((c4 + c5) + c6) + c3) = (((c4 + Zero) + Zero) + c3)
Function name: try_error_result::test2 Function name: try_error_result::test2
Raw bytes (358): 0x[01, 01, 3b, 01, 07, 05, 09, 03, 0d, 41, 11, 4a, 15, 41, 11, 42, 1d, 46, 19, 4a, 15, 41, 11, 4a, 15, 41, 11, 46, 19, 4a, 15, 41, 11, 42, 1d, 46, 19, 4a, 15, 41, 11, 5e, 25, 49, 21, 49, 21, 5e, 25, 49, 21, 8a, 01, 2d, 8e, 01, 29, 92, 01, 41, 03, 0d, 92, 01, 41, 03, 0d, 8e, 01, 29, 92, 01, 41, 03, 0d, 8a, 01, 2d, 8e, 01, 29, 92, 01, 41, 03, 0d, a6, 01, 35, 45, 31, 45, 31, a6, 01, 35, 45, 31, ba, 01, 3d, 4d, 39, 4d, 39, ba, 01, 3d, 4d, 39, c3, 01, 0d, c7, 01, db, 01, cb, 01, cf, 01, 11, 15, d3, 01, d7, 01, 19, 1d, 21, 25, df, 01, e3, 01, 29, 2d, e7, 01, eb, 01, 31, 35, 39, 3d, 28, 01, 3e, 01, 03, 17, 03, 08, 09, 00, 0e, 92, 01, 02, 09, 04, 1a, 41, 06, 0d, 00, 2f, 11, 00, 2f, 00, 30, 4a, 00, 31, 03, 35, 15, 04, 11, 00, 12, 46, 02, 11, 04, 12, 3e, 05, 11, 00, 14, 46, 00, 17, 00, 41, 19, 00, 41, 00, 42, 42, 00, 43, 00, 5f, 1d, 00, 5f, 00, 60, 3e, 01, 0d, 00, 20, 5a, 01, 11, 00, 14, 49, 00, 17, 00, 41, 21, 00, 41, 00, 42, 5e, 00, 43, 00, 60, 25, 00, 60, 00, 61, 5a, 01, 0d, 00, 20, 86, 01, 04, 11, 00, 14, 8e, 01, 00, 17, 00, 42, 29, 00, 42, 00, 43, 8a, 01, 00, 44, 00, 61, 2d, 00, 61, 00, 62, 86, 01, 01, 0d, 00, 20, a2, 01, 01, 11, 00, 14, 45, 00, 17, 01, 36, 31, 01, 36, 00, 37, a6, 01, 01, 12, 00, 2f, 35, 00, 2f, 00, 30, a2, 01, 01, 0d, 00, 20, b6, 01, 01, 11, 00, 14, 4d, 00, 17, 01, 36, 39, 02, 11, 00, 12, ba, 01, 01, 12, 00, 2f, 3d, 01, 11, 00, 12, b6, 01, 02, 0d, 00, 20, 0d, 03, 05, 00, 0b, bf, 01, 01, 01, 00, 02] Raw bytes (280): 0x[01, 01, 24, 01, 07, 00, 09, 03, 0d, 41, 00, 1e, 00, 41, 00, 1e, 00, 41, 00, 4a, 00, 4e, 00, 52, 41, 03, 0d, 52, 41, 03, 0d, 4e, 00, 52, 41, 03, 0d, 4a, 00, 4e, 00, 52, 41, 03, 0d, 66, 00, 45, 00, 45, 00, 66, 00, 45, 00, 7a, 00, 4d, 00, 4d, 00, 7a, 00, 4d, 00, 83, 01, 0d, 87, 01, 00, 00, 8b, 01, 8f, 01, 00, 19, 00, 28, 01, 3e, 01, 03, 17, 03, 08, 09, 00, 0e, 52, 02, 09, 04, 1a, 41, 06, 0d, 00, 2f, 00, 00, 2f, 00, 30, 1e, 00, 31, 03, 35, 00, 04, 11, 00, 12, 1a, 02, 11, 04, 12, 00, 05, 11, 00, 14, 1a, 00, 17, 00, 41, 19, 00, 41, 00, 42, 00, 00, 43, 00, 5f, 00, 00, 5f, 00, 60, 00, 01, 0d, 00, 20, 00, 01, 11, 00, 14, 00, 00, 17, 00, 41, 00, 00, 41, 00, 42, 00, 00, 43, 00, 60, 00, 00, 60, 00, 61, 00, 01, 0d, 00, 20, 46, 04, 11, 00, 14, 4e, 00, 17, 00, 42, 00, 00, 42, 00, 43, 4a, 00, 44, 00, 61, 00, 00, 61, 00, 62, 46, 01, 0d, 00, 20, 62, 01, 11, 00, 14, 45, 00, 17, 01, 36, 00, 01, 36, 00, 37, 66, 01, 12, 00, 2f, 00, 00, 2f, 00, 30, 62, 01, 0d, 00, 20, 76, 01, 11, 00, 14, 4d, 00, 17, 01, 36, 00, 02, 11, 00, 12, 7a, 01, 12, 00, 2f, 00, 01, 11, 00, 12, 76, 02, 0d, 00, 20, 0d, 03, 05, 00, 0b, 7f, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 59 Number of expressions: 36
- expression 0 operands: lhs = Counter(0), rhs = Expression(1, Add) - expression 0 operands: lhs = Counter(0), rhs = Expression(1, Add)
- expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 1 operands: lhs = Zero, rhs = Counter(2)
- expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 3 operands: lhs = Counter(16), rhs = Counter(4) - expression 3 operands: lhs = Counter(16), rhs = Zero
- expression 4 operands: lhs = Expression(18, Sub), rhs = Counter(5) - expression 4 operands: lhs = Expression(7, Sub), rhs = Zero
- expression 5 operands: lhs = Counter(16), rhs = Counter(4) - expression 5 operands: lhs = Counter(16), rhs = Zero
- expression 6 operands: lhs = Expression(16, Sub), rhs = Counter(7) - expression 6 operands: lhs = Expression(7, Sub), rhs = Zero
- expression 7 operands: lhs = Expression(17, Sub), rhs = Counter(6) - expression 7 operands: lhs = Counter(16), rhs = Zero
- expression 8 operands: lhs = Expression(18, Sub), rhs = Counter(5) - expression 8 operands: lhs = Expression(18, Sub), rhs = Zero
- expression 9 operands: lhs = Counter(16), rhs = Counter(4) - expression 9 operands: lhs = Expression(19, Sub), rhs = Zero
- expression 10 operands: lhs = Expression(18, Sub), rhs = Counter(5) - expression 10 operands: lhs = Expression(20, Sub), rhs = Counter(16)
- expression 11 operands: lhs = Counter(16), rhs = Counter(4) - expression 11 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 12 operands: lhs = Expression(17, Sub), rhs = Counter(6) - expression 12 operands: lhs = Expression(20, Sub), rhs = Counter(16)
- expression 13 operands: lhs = Expression(18, Sub), rhs = Counter(5) - expression 13 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 14 operands: lhs = Counter(16), rhs = Counter(4) - expression 14 operands: lhs = Expression(19, Sub), rhs = Zero
- expression 15 operands: lhs = Expression(16, Sub), rhs = Counter(7) - expression 15 operands: lhs = Expression(20, Sub), rhs = Counter(16)
- expression 16 operands: lhs = Expression(17, Sub), rhs = Counter(6) - expression 16 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 17 operands: lhs = Expression(18, Sub), rhs = Counter(5) - expression 17 operands: lhs = Expression(18, Sub), rhs = Zero
- expression 18 operands: lhs = Counter(16), rhs = Counter(4) - expression 18 operands: lhs = Expression(19, Sub), rhs = Zero
- expression 19 operands: lhs = Expression(23, Sub), rhs = Counter(9) - expression 19 operands: lhs = Expression(20, Sub), rhs = Counter(16)
- expression 20 operands: lhs = Counter(18), rhs = Counter(8) - expression 20 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 21 operands: lhs = Counter(18), rhs = Counter(8) - expression 21 operands: lhs = Expression(25, Sub), rhs = Zero
- expression 22 operands: lhs = Expression(23, Sub), rhs = Counter(9) - expression 22 operands: lhs = Counter(17), rhs = Zero
- expression 23 operands: lhs = Counter(18), rhs = Counter(8) - expression 23 operands: lhs = Counter(17), rhs = Zero
- expression 24 operands: lhs = Expression(34, Sub), rhs = Counter(11) - expression 24 operands: lhs = Expression(25, Sub), rhs = Zero
- expression 25 operands: lhs = Expression(35, Sub), rhs = Counter(10) - expression 25 operands: lhs = Counter(17), rhs = Zero
- expression 26 operands: lhs = Expression(36, Sub), rhs = Counter(16) - expression 26 operands: lhs = Expression(30, Sub), rhs = Zero
- expression 27 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 27 operands: lhs = Counter(19), rhs = Zero
- expression 28 operands: lhs = Expression(36, Sub), rhs = Counter(16) - expression 28 operands: lhs = Counter(19), rhs = Zero
- expression 29 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 29 operands: lhs = Expression(30, Sub), rhs = Zero
- expression 30 operands: lhs = Expression(35, Sub), rhs = Counter(10) - expression 30 operands: lhs = Counter(19), rhs = Zero
- expression 31 operands: lhs = Expression(36, Sub), rhs = Counter(16) - expression 31 operands: lhs = Expression(32, Add), rhs = Counter(3)
- expression 32 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 32 operands: lhs = Expression(33, Add), rhs = Zero
- expression 33 operands: lhs = Expression(34, Sub), rhs = Counter(11) - expression 33 operands: lhs = Zero, rhs = Expression(34, Add)
- expression 34 operands: lhs = Expression(35, Sub), rhs = Counter(10) - expression 34 operands: lhs = Expression(35, Add), rhs = Zero
- expression 35 operands: lhs = Expression(36, Sub), rhs = Counter(16) - expression 35 operands: lhs = Counter(6), rhs = Zero
- expression 36 operands: lhs = Expression(0, Add), rhs = Counter(3)
- expression 37 operands: lhs = Expression(41, Sub), rhs = Counter(13)
- expression 38 operands: lhs = Counter(17), rhs = Counter(12)
- expression 39 operands: lhs = Counter(17), rhs = Counter(12)
- expression 40 operands: lhs = Expression(41, Sub), rhs = Counter(13)
- expression 41 operands: lhs = Counter(17), rhs = Counter(12)
- expression 42 operands: lhs = Expression(46, Sub), rhs = Counter(15)
- expression 43 operands: lhs = Counter(19), rhs = Counter(14)
- expression 44 operands: lhs = Counter(19), rhs = Counter(14)
- expression 45 operands: lhs = Expression(46, Sub), rhs = Counter(15)
- expression 46 operands: lhs = Counter(19), rhs = Counter(14)
- expression 47 operands: lhs = Expression(48, Add), rhs = Counter(3)
- expression 48 operands: lhs = Expression(49, Add), rhs = Expression(54, Add)
- expression 49 operands: lhs = Expression(50, Add), rhs = Expression(51, Add)
- expression 50 operands: lhs = Counter(4), rhs = Counter(5)
- expression 51 operands: lhs = Expression(52, Add), rhs = Expression(53, Add)
- expression 52 operands: lhs = Counter(6), rhs = Counter(7)
- expression 53 operands: lhs = Counter(8), rhs = Counter(9)
- expression 54 operands: lhs = Expression(55, Add), rhs = Expression(56, Add)
- expression 55 operands: lhs = Counter(10), rhs = Counter(11)
- expression 56 operands: lhs = Expression(57, Add), rhs = Expression(58, Add)
- expression 57 operands: lhs = Counter(12), rhs = Counter(13)
- expression 58 operands: lhs = Counter(14), rhs = Counter(15)
Number of file 0 mappings: 40 Number of file 0 mappings: 40
- Code(Counter(0)) at (prev + 62, 1) to (start + 3, 23) - Code(Counter(0)) at (prev + 62, 1) to (start + 3, 23)
- Code(Expression(0, Add)) at (prev + 8, 9) to (start + 0, 14) - Code(Expression(0, Add)) at (prev + 8, 9) to (start + 0, 14)
= (c0 + (c1 + c2)) = (c0 + (Zero + c2))
- Code(Expression(36, Sub)) at (prev + 2, 9) to (start + 4, 26) - Code(Expression(20, Sub)) at (prev + 2, 9) to (start + 4, 26)
= ((c0 + (c1 + c2)) - c3) = ((c0 + (Zero + c2)) - c3)
- Code(Counter(16)) at (prev + 6, 13) to (start + 0, 47) - Code(Counter(16)) at (prev + 6, 13) to (start + 0, 47)
- Code(Counter(4)) at (prev + 0, 47) to (start + 0, 48) - Code(Zero) at (prev + 0, 47) to (start + 0, 48)
- Code(Expression(18, Sub)) at (prev + 0, 49) to (start + 3, 53) - Code(Expression(7, Sub)) at (prev + 0, 49) to (start + 3, 53)
= (c16 - c4) = (c16 - Zero)
- Code(Counter(5)) at (prev + 4, 17) to (start + 0, 18) - Code(Zero) at (prev + 4, 17) to (start + 0, 18)
- Code(Expression(17, Sub)) at (prev + 2, 17) to (start + 4, 18) - Code(Expression(6, Sub)) at (prev + 2, 17) to (start + 4, 18)
= ((c16 - c4) - c5) = ((c16 - Zero) - Zero)
- Code(Expression(15, Sub)) at (prev + 5, 17) to (start + 0, 20) - Code(Zero) at (prev + 5, 17) to (start + 0, 20)
= ((((c16 - c4) - c5) - c6) - c7) - Code(Expression(6, Sub)) at (prev + 0, 23) to (start + 0, 65)
- Code(Expression(17, Sub)) at (prev + 0, 23) to (start + 0, 65) = ((c16 - Zero) - Zero)
= ((c16 - c4) - c5)
- Code(Counter(6)) at (prev + 0, 65) to (start + 0, 66) - Code(Counter(6)) at (prev + 0, 65) to (start + 0, 66)
- Code(Expression(16, Sub)) at (prev + 0, 67) to (start + 0, 95) - Code(Zero) at (prev + 0, 67) to (start + 0, 95)
= (((c16 - c4) - c5) - c6) - Code(Zero) at (prev + 0, 95) to (start + 0, 96)
- Code(Counter(7)) at (prev + 0, 95) to (start + 0, 96) - Code(Zero) at (prev + 1, 13) to (start + 0, 32)
- Code(Expression(15, Sub)) at (prev + 1, 13) to (start + 0, 32) - Code(Zero) at (prev + 1, 17) to (start + 0, 20)
= ((((c16 - c4) - c5) - c6) - c7) - Code(Zero) at (prev + 0, 23) to (start + 0, 65)
- Code(Expression(22, Sub)) at (prev + 1, 17) to (start + 0, 20) - Code(Zero) at (prev + 0, 65) to (start + 0, 66)
= ((c18 - c8) - c9) - Code(Zero) at (prev + 0, 67) to (start + 0, 96)
- Code(Counter(18)) at (prev + 0, 23) to (start + 0, 65) - Code(Zero) at (prev + 0, 96) to (start + 0, 97)
- Code(Counter(8)) at (prev + 0, 65) to (start + 0, 66) - Code(Zero) at (prev + 1, 13) to (start + 0, 32)
- Code(Expression(23, Sub)) at (prev + 0, 67) to (start + 0, 96) - Code(Expression(17, Sub)) at (prev + 4, 17) to (start + 0, 20)
= (c18 - c8) = (((((c0 + (Zero + c2)) - c3) - c16) - Zero) - Zero)
- Code(Counter(9)) at (prev + 0, 96) to (start + 0, 97) - Code(Expression(19, Sub)) at (prev + 0, 23) to (start + 0, 66)
- Code(Expression(22, Sub)) at (prev + 1, 13) to (start + 0, 32) = (((c0 + (Zero + c2)) - c3) - c16)
= ((c18 - c8) - c9) - Code(Zero) at (prev + 0, 66) to (start + 0, 67)
- Code(Expression(33, Sub)) at (prev + 4, 17) to (start + 0, 20) - Code(Expression(18, Sub)) at (prev + 0, 68) to (start + 0, 97)
= (((((c0 + (c1 + c2)) - c3) - c16) - c10) - c11) = ((((c0 + (Zero + c2)) - c3) - c16) - Zero)
- Code(Expression(35, Sub)) at (prev + 0, 23) to (start + 0, 66) - Code(Zero) at (prev + 0, 97) to (start + 0, 98)
= (((c0 + (c1 + c2)) - c3) - c16) - Code(Expression(17, Sub)) at (prev + 1, 13) to (start + 0, 32)
- Code(Counter(10)) at (prev + 0, 66) to (start + 0, 67) = (((((c0 + (Zero + c2)) - c3) - c16) - Zero) - Zero)
- Code(Expression(34, Sub)) at (prev + 0, 68) to (start + 0, 97) - Code(Expression(24, Sub)) at (prev + 1, 17) to (start + 0, 20)
= ((((c0 + (c1 + c2)) - c3) - c16) - c10) = ((c17 - Zero) - Zero)
- Code(Counter(11)) at (prev + 0, 97) to (start + 0, 98)
- Code(Expression(33, Sub)) at (prev + 1, 13) to (start + 0, 32)
= (((((c0 + (c1 + c2)) - c3) - c16) - c10) - c11)
- Code(Expression(40, Sub)) at (prev + 1, 17) to (start + 0, 20)
= ((c17 - c12) - c13)
- Code(Counter(17)) at (prev + 0, 23) to (start + 1, 54) - Code(Counter(17)) at (prev + 0, 23) to (start + 1, 54)
- Code(Counter(12)) at (prev + 1, 54) to (start + 0, 55) - Code(Zero) at (prev + 1, 54) to (start + 0, 55)
- Code(Expression(41, Sub)) at (prev + 1, 18) to (start + 0, 47) - Code(Expression(25, Sub)) at (prev + 1, 18) to (start + 0, 47)
= (c17 - c12) = (c17 - Zero)
- Code(Counter(13)) at (prev + 0, 47) to (start + 0, 48) - Code(Zero) at (prev + 0, 47) to (start + 0, 48)
- Code(Expression(40, Sub)) at (prev + 1, 13) to (start + 0, 32) - Code(Expression(24, Sub)) at (prev + 1, 13) to (start + 0, 32)
= ((c17 - c12) - c13) = ((c17 - Zero) - Zero)
- Code(Expression(45, Sub)) at (prev + 1, 17) to (start + 0, 20) - Code(Expression(29, Sub)) at (prev + 1, 17) to (start + 0, 20)
= ((c19 - c14) - c15) = ((c19 - Zero) - Zero)
- Code(Counter(19)) at (prev + 0, 23) to (start + 1, 54) - Code(Counter(19)) at (prev + 0, 23) to (start + 1, 54)
- Code(Counter(14)) at (prev + 2, 17) to (start + 0, 18) - Code(Zero) at (prev + 2, 17) to (start + 0, 18)
- Code(Expression(46, Sub)) at (prev + 1, 18) to (start + 0, 47) - Code(Expression(30, Sub)) at (prev + 1, 18) to (start + 0, 47)
= (c19 - c14) = (c19 - Zero)
- Code(Counter(15)) at (prev + 1, 17) to (start + 0, 18) - Code(Zero) at (prev + 1, 17) to (start + 0, 18)
- Code(Expression(45, Sub)) at (prev + 2, 13) to (start + 0, 32) - Code(Expression(29, Sub)) at (prev + 2, 13) to (start + 0, 32)
= ((c19 - c14) - c15) = ((c19 - Zero) - Zero)
- Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11) - Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11)
- Code(Expression(47, Add)) at (prev + 1, 1) to (start + 0, 2) - Code(Expression(31, Add)) at (prev + 1, 1) to (start + 0, 2)
= ((((c4 + c5) + ((c6 + c7) + (c8 + c9))) + ((c10 + c11) + ((c12 + c13) + (c14 + c15)))) + c3) = (((Zero + ((c6 + Zero) + Zero)) + Zero) + c3)

View file

@ -1,9 +1,9 @@
Function name: yield::main Function name: yield::main
Raw bytes (106): 0x[01, 01, 0b, 05, 09, 0d, 11, 22, 15, 0d, 11, 11, 15, 22, 15, 0d, 11, 22, 15, 0d, 11, 19, 1d, 25, 29, 10, 01, 07, 01, 01, 16, 01, 06, 0b, 00, 2e, 0d, 01, 27, 00, 29, 03, 01, 0e, 00, 34, 0d, 02, 0b, 00, 2e, 22, 01, 22, 00, 27, 1e, 00, 2c, 00, 2e, 13, 01, 0e, 00, 34, 1e, 03, 09, 00, 16, 1e, 07, 0b, 00, 2e, 21, 01, 27, 00, 29, 27, 01, 0e, 00, 34, 21, 02, 0b, 00, 2e, 2d, 01, 27, 00, 29, 2b, 01, 0e, 00, 34, 2d, 02, 01, 00, 02] Raw bytes (106): 0x[01, 01, 0b, 05, 00, 0d, 11, 22, 15, 0d, 11, 11, 15, 22, 15, 0d, 11, 22, 15, 0d, 11, 19, 1d, 25, 29, 10, 01, 07, 01, 01, 16, 01, 06, 0b, 00, 2e, 0d, 01, 27, 00, 29, 03, 01, 0e, 00, 34, 0d, 02, 0b, 00, 2e, 22, 01, 22, 00, 27, 1e, 00, 2c, 00, 2e, 13, 01, 0e, 00, 34, 1e, 03, 09, 00, 16, 1e, 07, 0b, 00, 2e, 21, 01, 27, 00, 29, 27, 01, 0e, 00, 34, 21, 02, 0b, 00, 2e, 2d, 01, 27, 00, 29, 2b, 01, 0e, 00, 34, 2d, 02, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 11 Number of expressions: 11
- expression 0 operands: lhs = Counter(1), rhs = Counter(2) - expression 0 operands: lhs = Counter(1), rhs = Zero
- expression 1 operands: lhs = Counter(3), rhs = Counter(4) - expression 1 operands: lhs = Counter(3), rhs = Counter(4)
- expression 2 operands: lhs = Expression(8, Sub), rhs = Counter(5) - expression 2 operands: lhs = Expression(8, Sub), rhs = Counter(5)
- expression 3 operands: lhs = Counter(3), rhs = Counter(4) - expression 3 operands: lhs = Counter(3), rhs = Counter(4)
@ -19,7 +19,7 @@ Number of file 0 mappings: 16
- Code(Counter(0)) at (prev + 6, 11) to (start + 0, 46) - Code(Counter(0)) at (prev + 6, 11) to (start + 0, 46)
- Code(Counter(3)) at (prev + 1, 39) to (start + 0, 41) - Code(Counter(3)) at (prev + 1, 39) to (start + 0, 41)
- Code(Expression(0, Add)) at (prev + 1, 14) to (start + 0, 52) - Code(Expression(0, Add)) at (prev + 1, 14) to (start + 0, 52)
= (c1 + c2) = (c1 + Zero)
- Code(Counter(3)) at (prev + 2, 11) to (start + 0, 46) - Code(Counter(3)) at (prev + 2, 11) to (start + 0, 46)
- Code(Expression(8, Sub)) at (prev + 1, 34) to (start + 0, 39) - Code(Expression(8, Sub)) at (prev + 1, 34) to (start + 0, 39)
= (c3 - c4) = (c3 - c4)

View file

@ -4,66 +4,12 @@ fn step_forward(_1: u32, _2: usize) -> u32 {
debug x => _1; debug x => _1;
debug n => _2; debug n => _2;
let mut _0: u32; let mut _0: u32;
scope 1 (inlined <u32 as Step>::forward) {
debug start => _1;
debug n => _2;
let _3: std::option::Option<u32>;
let mut _4: &std::option::Option<u32>;
let mut _7: bool;
let mut _8: u32;
scope 2 {
}
scope 3 (inlined Option::<u32>::is_none) {
debug self => _4;
let mut _6: bool;
scope 4 (inlined Option::<u32>::is_some) {
debug self => _4;
let mut _5: isize;
}
}
scope 5 (inlined core::num::<impl u32>::wrapping_add) {
debug self => _1;
debug rhs => _8;
}
}
bb0: { bb0: {
StorageLive(_7); _0 = <u32 as Step>::forward(move _1, move _2) -> [return: bb1, unwind continue];
StorageLive(_4);
StorageLive(_3);
_3 = <u32 as Step>::forward_checked(_1, _2) -> [return: bb1, unwind continue];
} }
bb1: { bb1: {
_4 = &_3;
StorageLive(_6);
StorageLive(_5);
_5 = discriminant(_3);
_6 = Eq(_5, const 1_isize);
StorageDead(_5);
_7 = Not(move _6);
StorageDead(_6);
switchInt(move _7) -> [0: bb2, otherwise: bb3];
}
bb2: {
StorageDead(_3);
StorageDead(_4);
goto -> bb4;
}
bb3: {
StorageDead(_3);
StorageDead(_4);
assert(!const true, "attempt to compute `{} + {}`, which would overflow", const _, const 1_u32) -> [success: bb4, unwind continue];
}
bb4: {
StorageDead(_7);
StorageLive(_8);
_8 = _2 as u32 (IntToInt);
_0 = Add(_1, _8);
StorageDead(_8);
return; return;
} }
} }

View file

@ -7,14 +7,13 @@ fn int_range(_1: usize, _2: usize) -> () {
let mut _3: std::ops::Range<usize>; let mut _3: std::ops::Range<usize>;
let mut _4: std::ops::Range<usize>; let mut _4: std::ops::Range<usize>;
let mut _5: &mut std::ops::Range<usize>; let mut _5: &mut std::ops::Range<usize>;
let mut _11: std::option::Option<usize>; let mut _13: std::option::Option<usize>;
let mut _14: isize; let _15: ();
let _16: ();
scope 1 { scope 1 {
debug iter => _4; debug iter => _4;
let _15: usize; let _14: usize;
scope 2 { scope 2 {
debug i => _15; debug i => _14;
} }
scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) { scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) {
debug self => _5; debug self => _5;
@ -23,10 +22,10 @@ fn int_range(_1: usize, _2: usize) -> () {
let mut _6: &usize; let mut _6: &usize;
let mut _7: &usize; let mut _7: &usize;
let mut _10: bool; let mut _10: bool;
let _12: usize; let _11: usize;
let mut _13: usize; let mut _12: usize;
scope 6 { scope 6 {
debug old => _12; debug old => _11;
scope 7 { scope 7 {
} }
} }
@ -51,9 +50,9 @@ fn int_range(_1: usize, _2: usize) -> () {
} }
bb1: { bb1: {
StorageLive(_11); StorageLive(_13);
_5 = &mut _4; _5 = &mut _4;
StorageLive(_12); StorageLive(_11);
StorageLive(_10); StorageLive(_10);
StorageLive(_6); StorageLive(_6);
_6 = &(_4.0: usize); _6 = &(_4.0: usize);
@ -72,53 +71,33 @@ fn int_range(_1: usize, _2: usize) -> () {
bb2: { bb2: {
StorageDead(_7); StorageDead(_7);
StorageDead(_6); StorageDead(_6);
_11 = const Option::<usize>::None; StorageDead(_10);
goto -> bb5; StorageDead(_11);
StorageDead(_13);
StorageDead(_4);
return;
} }
bb3: { bb3: {
StorageDead(_7); StorageDead(_7);
StorageDead(_6); StorageDead(_6);
_12 = (_4.0: usize); _11 = (_4.0: usize);
StorageLive(_13); StorageLive(_12);
_13 = <usize as Step>::forward_unchecked(_12, const 1_usize) -> [return: bb4, unwind continue]; _12 = <usize as Step>::forward_unchecked(_11, const 1_usize) -> [return: bb4, unwind continue];
} }
bb4: { bb4: {
(_4.0: usize) = move _13; (_4.0: usize) = move _12;
StorageDead(_13); StorageDead(_12);
_11 = Option::<usize>::Some(_12); _13 = Option::<usize>::Some(_11);
goto -> bb5; StorageDead(_10);
StorageDead(_11);
_14 = ((_13 as Some).0: usize);
_15 = opaque::<usize>(move _14) -> [return: bb5, unwind continue];
} }
bb5: { bb5: {
StorageDead(_10); StorageDead(_13);
StorageDead(_12);
_14 = discriminant(_11);
switchInt(move _14) -> [0: bb6, 1: bb7, otherwise: bb9];
}
bb6: {
StorageDead(_11);
StorageDead(_4);
return;
}
bb7: {
_15 = ((_11 as Some).0: usize);
_16 = opaque::<usize>(move _15) -> [return: bb8, unwind continue];
}
bb8: {
StorageDead(_11);
goto -> bb1; goto -> bb1;
} }
bb9: {
unreachable;
}
}
ALLOC0 (size: 16, align: 8) {
00 00 00 00 00 00 00 00 __ __ __ __ __ __ __ __ ........
} }

View file

@ -8,16 +8,15 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
let mut _4: std::ops::Range<u32>; let mut _4: std::ops::Range<u32>;
let mut _5: std::ops::Range<u32>; let mut _5: std::ops::Range<u32>;
let mut _6: &mut std::ops::Range<u32>; let mut _6: &mut std::ops::Range<u32>;
let mut _12: std::option::Option<u32>; let mut _14: std::option::Option<u32>;
let mut _15: isize; let mut _16: &impl Fn(u32);
let mut _17: &impl Fn(u32); let mut _17: (u32,);
let mut _18: (u32,); let _18: ();
let _19: ();
scope 1 { scope 1 {
debug iter => _5; debug iter => _5;
let _16: u32; let _15: u32;
scope 2 { scope 2 {
debug x => _16; debug x => _15;
} }
scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<u32>>::next) { scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<u32>>::next) {
debug self => _6; debug self => _6;
@ -26,10 +25,10 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
let mut _7: &u32; let mut _7: &u32;
let mut _8: &u32; let mut _8: &u32;
let mut _11: bool; let mut _11: bool;
let _13: u32; let _12: u32;
let mut _14: u32; let mut _13: u32;
scope 6 { scope 6 {
debug old => _13; debug old => _12;
scope 7 { scope 7 {
} }
} }
@ -54,9 +53,9 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
} }
bb1: { bb1: {
StorageLive(_12); StorageLive(_14);
_6 = &mut _5; _6 = &mut _5;
StorageLive(_13); StorageLive(_12);
StorageLive(_11); StorageLive(_11);
StorageLive(_7); StorageLive(_7);
_7 = &(_5.0: u32); _7 = &(_5.0: u32);
@ -69,69 +68,49 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
_11 = Lt(move _9, move _10); _11 = Lt(move _9, move _10);
StorageDead(_10); StorageDead(_10);
StorageDead(_9); StorageDead(_9);
switchInt(move _11) -> [0: bb2, otherwise: bb3]; switchInt(move _11) -> [0: bb2, otherwise: bb4];
} }
bb2: { bb2: {
StorageDead(_8); StorageDead(_8);
StorageDead(_7); StorageDead(_7);
_12 = const Option::<u32>::None; StorageDead(_11);
goto -> bb5; StorageDead(_12);
StorageDead(_14);
StorageDead(_5);
drop(_3) -> [return: bb3, unwind unreachable];
} }
bb3: { bb3: {
StorageDead(_8);
StorageDead(_7);
_13 = (_5.0: u32);
StorageLive(_14);
_14 = <u32 as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
(_5.0: u32) = move _14;
StorageDead(_14);
_12 = Option::<u32>::Some(_13);
goto -> bb5;
}
bb5: {
StorageDead(_11);
StorageDead(_13);
_15 = discriminant(_12);
switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb10];
}
bb6: {
StorageDead(_12);
StorageDead(_5);
drop(_3) -> [return: bb7, unwind unreachable];
}
bb7: {
return; return;
} }
bb8: { bb4: {
_16 = ((_12 as Some).0: u32); StorageDead(_8);
StorageLive(_17); StorageDead(_7);
_17 = &_3; _12 = (_5.0: u32);
StorageLive(_18); StorageLive(_13);
_18 = (_16,); _13 = <u32 as Step>::forward_unchecked(_12, const 1_usize) -> [return: bb5, unwind unreachable];
_19 = <impl Fn(u32) as Fn<(u32,)>>::call(move _17, move _18) -> [return: bb9, unwind unreachable];
} }
bb9: { bb5: {
StorageDead(_18); (_5.0: u32) = move _13;
StorageDead(_17); StorageDead(_13);
_14 = Option::<u32>::Some(_12);
StorageDead(_11);
StorageDead(_12); StorageDead(_12);
_15 = ((_14 as Some).0: u32);
StorageLive(_16);
_16 = &_3;
StorageLive(_17);
_17 = (_15,);
_18 = <impl Fn(u32) as Fn<(u32,)>>::call(move _16, move _17) -> [return: bb6, unwind unreachable];
}
bb6: {
StorageDead(_17);
StorageDead(_16);
StorageDead(_14);
goto -> bb1; goto -> bb1;
} }
bb10: {
unreachable;
}
}
ALLOC0 (size: 8, align: 4) {
00 00 00 00 __ __ __ __ ....
} }

View file

@ -8,16 +8,15 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
let mut _4: std::ops::Range<u32>; let mut _4: std::ops::Range<u32>;
let mut _5: std::ops::Range<u32>; let mut _5: std::ops::Range<u32>;
let mut _6: &mut std::ops::Range<u32>; let mut _6: &mut std::ops::Range<u32>;
let mut _12: std::option::Option<u32>; let mut _14: std::option::Option<u32>;
let mut _15: isize; let mut _16: &impl Fn(u32);
let mut _17: &impl Fn(u32); let mut _17: (u32,);
let mut _18: (u32,); let _18: ();
let _19: ();
scope 1 { scope 1 {
debug iter => _5; debug iter => _5;
let _16: u32; let _15: u32;
scope 2 { scope 2 {
debug x => _16; debug x => _15;
} }
scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<u32>>::next) { scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<u32>>::next) {
debug self => _6; debug self => _6;
@ -26,10 +25,10 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
let mut _7: &u32; let mut _7: &u32;
let mut _8: &u32; let mut _8: &u32;
let mut _11: bool; let mut _11: bool;
let _13: u32; let _12: u32;
let mut _14: u32; let mut _13: u32;
scope 6 { scope 6 {
debug old => _13; debug old => _12;
scope 7 { scope 7 {
} }
} }
@ -54,9 +53,9 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
} }
bb1: { bb1: {
StorageLive(_12); StorageLive(_14);
_6 = &mut _5; _6 = &mut _5;
StorageLive(_13); StorageLive(_12);
StorageLive(_11); StorageLive(_11);
StorageLive(_7); StorageLive(_7);
_7 = &(_5.0: u32); _7 = &(_5.0: u32);
@ -69,77 +68,57 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
_11 = Lt(move _9, move _10); _11 = Lt(move _9, move _10);
StorageDead(_10); StorageDead(_10);
StorageDead(_9); StorageDead(_9);
switchInt(move _11) -> [0: bb2, otherwise: bb3]; switchInt(move _11) -> [0: bb2, otherwise: bb4];
} }
bb2: { bb2: {
StorageDead(_8); StorageDead(_8);
StorageDead(_7); StorageDead(_7);
_12 = const Option::<u32>::None; StorageDead(_11);
goto -> bb5; StorageDead(_12);
StorageDead(_14);
StorageDead(_5);
drop(_3) -> [return: bb3, unwind continue];
} }
bb3: { bb3: {
StorageDead(_8);
StorageDead(_7);
_13 = (_5.0: u32);
StorageLive(_14);
_14 = <u32 as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind: bb11];
}
bb4: {
(_5.0: u32) = move _14;
StorageDead(_14);
_12 = Option::<u32>::Some(_13);
goto -> bb5;
}
bb5: {
StorageDead(_11);
StorageDead(_13);
_15 = discriminant(_12);
switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb10];
}
bb6: {
StorageDead(_12);
StorageDead(_5);
drop(_3) -> [return: bb7, unwind continue];
}
bb7: {
return; return;
} }
bb8: { bb4: {
_16 = ((_12 as Some).0: u32); StorageDead(_8);
StorageLive(_17); StorageDead(_7);
_17 = &_3; _12 = (_5.0: u32);
StorageLive(_18); StorageLive(_13);
_18 = (_16,); _13 = <u32 as Step>::forward_unchecked(_12, const 1_usize) -> [return: bb5, unwind: bb7];
_19 = <impl Fn(u32) as Fn<(u32,)>>::call(move _17, move _18) -> [return: bb9, unwind: bb11];
} }
bb9: { bb5: {
StorageDead(_18); (_5.0: u32) = move _13;
StorageDead(_17); StorageDead(_13);
_14 = Option::<u32>::Some(_12);
StorageDead(_11);
StorageDead(_12); StorageDead(_12);
_15 = ((_14 as Some).0: u32);
StorageLive(_16);
_16 = &_3;
StorageLive(_17);
_17 = (_15,);
_18 = <impl Fn(u32) as Fn<(u32,)>>::call(move _16, move _17) -> [return: bb6, unwind: bb7];
}
bb6: {
StorageDead(_17);
StorageDead(_16);
StorageDead(_14);
goto -> bb1; goto -> bb1;
} }
bb10: { bb7 (cleanup): {
unreachable; drop(_3) -> [return: bb8, unwind terminate(cleanup)];
} }
bb11 (cleanup): { bb8 (cleanup): {
drop(_3) -> [return: bb12, unwind terminate(cleanup)];
}
bb12 (cleanup): {
resume; resume;
} }
} }
ALLOC0 (size: 8, align: 4) {
00 00 00 00 __ __ __ __ ....
}

View file

@ -8,21 +8,20 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
let mut _4: std::ops::Range<usize>; let mut _4: std::ops::Range<usize>;
let mut _5: std::ops::Range<usize>; let mut _5: std::ops::Range<usize>;
let mut _6: &mut std::ops::Range<usize>; let mut _6: &mut std::ops::Range<usize>;
let mut _12: std::option::Option<usize>; let mut _14: std::option::Option<usize>;
let mut _15: isize; let mut _16: usize;
let mut _17: usize; let mut _17: bool;
let mut _18: bool; let mut _19: &impl Fn(usize, &T);
let mut _20: &impl Fn(usize, &T); let mut _20: (usize, &T);
let mut _21: (usize, &T); let _21: ();
let _22: ();
scope 1 { scope 1 {
debug iter => _5; debug iter => _5;
let _16: usize; let _15: usize;
scope 2 { scope 2 {
debug i => _16; debug i => _15;
let _19: &T; let _18: &T;
scope 3 { scope 3 {
debug x => _19; debug x => _18;
} }
} }
scope 5 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) { scope 5 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) {
@ -32,10 +31,10 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
let mut _7: &usize; let mut _7: &usize;
let mut _8: &usize; let mut _8: &usize;
let mut _11: bool; let mut _11: bool;
let _13: usize; let _12: usize;
let mut _14: usize; let mut _13: usize;
scope 7 { scope 7 {
debug old => _13; debug old => _12;
scope 8 { scope 8 {
} }
} }
@ -63,9 +62,9 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
} }
bb1: { bb1: {
StorageLive(_12); StorageLive(_14);
_6 = &mut _5; _6 = &mut _5;
StorageLive(_13); StorageLive(_12);
StorageLive(_11); StorageLive(_11);
StorageLive(_7); StorageLive(_7);
_7 = &(_5.0: usize); _7 = &(_5.0: usize);
@ -78,76 +77,56 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
_11 = Lt(move _9, move _10); _11 = Lt(move _9, move _10);
StorageDead(_10); StorageDead(_10);
StorageDead(_9); StorageDead(_9);
switchInt(move _11) -> [0: bb2, otherwise: bb3]; switchInt(move _11) -> [0: bb2, otherwise: bb4];
} }
bb2: { bb2: {
StorageDead(_8); StorageDead(_8);
StorageDead(_7); StorageDead(_7);
_12 = const Option::<usize>::None; StorageDead(_11);
goto -> bb5; StorageDead(_12);
StorageDead(_14);
StorageDead(_5);
drop(_2) -> [return: bb3, unwind unreachable];
} }
bb3: { bb3: {
StorageDead(_8);
StorageDead(_7);
_13 = (_5.0: usize);
StorageLive(_14);
_14 = <usize as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
(_5.0: usize) = move _14;
StorageDead(_14);
_12 = Option::<usize>::Some(_13);
goto -> bb5;
}
bb5: {
StorageDead(_11);
StorageDead(_13);
_15 = discriminant(_12);
switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb11];
}
bb6: {
StorageDead(_12);
StorageDead(_5);
drop(_2) -> [return: bb7, unwind unreachable];
}
bb7: {
return; return;
} }
bb8: { bb4: {
_16 = ((_12 as Some).0: usize); StorageDead(_8);
_17 = Len((*_1)); StorageDead(_7);
_18 = Lt(_16, _17); _12 = (_5.0: usize);
assert(move _18, "index out of bounds: the length is {} but the index is {}", move _17, _16) -> [success: bb9, unwind unreachable]; StorageLive(_13);
_13 = <usize as Step>::forward_unchecked(_12, const 1_usize) -> [return: bb5, unwind unreachable];
} }
bb9: { bb5: {
_19 = &(*_1)[_16]; (_5.0: usize) = move _13;
StorageLive(_20); StorageDead(_13);
_20 = &_2; _14 = Option::<usize>::Some(_12);
StorageLive(_21); StorageDead(_11);
_21 = (_16, _19);
_22 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _20, move _21) -> [return: bb10, unwind unreachable];
}
bb10: {
StorageDead(_21);
StorageDead(_20);
StorageDead(_12); StorageDead(_12);
_15 = ((_14 as Some).0: usize);
_16 = Len((*_1));
_17 = Lt(_15, _16);
assert(move _17, "index out of bounds: the length is {} but the index is {}", move _16, _15) -> [success: bb6, unwind unreachable];
}
bb6: {
_18 = &(*_1)[_15];
StorageLive(_19);
_19 = &_2;
StorageLive(_20);
_20 = (_15, _18);
_21 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _19, move _20) -> [return: bb7, unwind unreachable];
}
bb7: {
StorageDead(_20);
StorageDead(_19);
StorageDead(_14);
goto -> bb1; goto -> bb1;
} }
bb11: {
unreachable;
}
}
ALLOC0 (size: 16, align: 8) {
00 00 00 00 00 00 00 00 __ __ __ __ __ __ __ __ ........
} }

View file

@ -8,21 +8,20 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
let mut _4: std::ops::Range<usize>; let mut _4: std::ops::Range<usize>;
let mut _5: std::ops::Range<usize>; let mut _5: std::ops::Range<usize>;
let mut _6: &mut std::ops::Range<usize>; let mut _6: &mut std::ops::Range<usize>;
let mut _12: std::option::Option<usize>; let mut _14: std::option::Option<usize>;
let mut _15: isize; let mut _16: usize;
let mut _17: usize; let mut _17: bool;
let mut _18: bool; let mut _19: &impl Fn(usize, &T);
let mut _20: &impl Fn(usize, &T); let mut _20: (usize, &T);
let mut _21: (usize, &T); let _21: ();
let _22: ();
scope 1 { scope 1 {
debug iter => _5; debug iter => _5;
let _16: usize; let _15: usize;
scope 2 { scope 2 {
debug i => _16; debug i => _15;
let _19: &T; let _18: &T;
scope 3 { scope 3 {
debug x => _19; debug x => _18;
} }
} }
scope 5 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) { scope 5 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) {
@ -32,10 +31,10 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
let mut _7: &usize; let mut _7: &usize;
let mut _8: &usize; let mut _8: &usize;
let mut _11: bool; let mut _11: bool;
let _13: usize; let _12: usize;
let mut _14: usize; let mut _13: usize;
scope 7 { scope 7 {
debug old => _13; debug old => _12;
scope 8 { scope 8 {
} }
} }
@ -63,9 +62,9 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
} }
bb1: { bb1: {
StorageLive(_12); StorageLive(_14);
_6 = &mut _5; _6 = &mut _5;
StorageLive(_13); StorageLive(_12);
StorageLive(_11); StorageLive(_11);
StorageLive(_7); StorageLive(_7);
_7 = &(_5.0: usize); _7 = &(_5.0: usize);
@ -78,84 +77,64 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
_11 = Lt(move _9, move _10); _11 = Lt(move _9, move _10);
StorageDead(_10); StorageDead(_10);
StorageDead(_9); StorageDead(_9);
switchInt(move _11) -> [0: bb2, otherwise: bb3]; switchInt(move _11) -> [0: bb2, otherwise: bb4];
} }
bb2: { bb2: {
StorageDead(_8); StorageDead(_8);
StorageDead(_7); StorageDead(_7);
_12 = const Option::<usize>::None; StorageDead(_11);
goto -> bb5; StorageDead(_12);
StorageDead(_14);
StorageDead(_5);
drop(_2) -> [return: bb3, unwind continue];
} }
bb3: { bb3: {
StorageDead(_8);
StorageDead(_7);
_13 = (_5.0: usize);
StorageLive(_14);
_14 = <usize as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind: bb12];
}
bb4: {
(_5.0: usize) = move _14;
StorageDead(_14);
_12 = Option::<usize>::Some(_13);
goto -> bb5;
}
bb5: {
StorageDead(_11);
StorageDead(_13);
_15 = discriminant(_12);
switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb11];
}
bb6: {
StorageDead(_12);
StorageDead(_5);
drop(_2) -> [return: bb7, unwind continue];
}
bb7: {
return; return;
} }
bb8: { bb4: {
_16 = ((_12 as Some).0: usize); StorageDead(_8);
_17 = Len((*_1)); StorageDead(_7);
_18 = Lt(_16, _17); _12 = (_5.0: usize);
assert(move _18, "index out of bounds: the length is {} but the index is {}", move _17, _16) -> [success: bb9, unwind: bb12]; StorageLive(_13);
_13 = <usize as Step>::forward_unchecked(_12, const 1_usize) -> [return: bb5, unwind: bb8];
} }
bb9: { bb5: {
_19 = &(*_1)[_16]; (_5.0: usize) = move _13;
StorageLive(_20); StorageDead(_13);
_20 = &_2; _14 = Option::<usize>::Some(_12);
StorageLive(_21); StorageDead(_11);
_21 = (_16, _19);
_22 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _20, move _21) -> [return: bb10, unwind: bb12];
}
bb10: {
StorageDead(_21);
StorageDead(_20);
StorageDead(_12); StorageDead(_12);
_15 = ((_14 as Some).0: usize);
_16 = Len((*_1));
_17 = Lt(_15, _16);
assert(move _17, "index out of bounds: the length is {} but the index is {}", move _16, _15) -> [success: bb6, unwind: bb8];
}
bb6: {
_18 = &(*_1)[_15];
StorageLive(_19);
_19 = &_2;
StorageLive(_20);
_20 = (_15, _18);
_21 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _19, move _20) -> [return: bb7, unwind: bb8];
}
bb7: {
StorageDead(_20);
StorageDead(_19);
StorageDead(_14);
goto -> bb1; goto -> bb1;
} }
bb11: { bb8 (cleanup): {
unreachable; drop(_2) -> [return: bb9, unwind terminate(cleanup)];
} }
bb12 (cleanup): { bb9 (cleanup): {
drop(_2) -> [return: bb13, unwind terminate(cleanup)];
}
bb13 (cleanup): {
resume; resume;
} }
} }
ALLOC0 (size: 16, align: 8) {
00 00 00 00 00 00 00 00 __ __ __ __ __ __ __ __ ........
}

View file

@ -6,65 +6,51 @@ fn new(_1: Result<T, E>) -> Result<T, E> {
let mut _2: isize; let mut _2: isize;
let _3: T; let _3: T;
let mut _4: std::ops::ControlFlow<E, T>; let mut _4: std::ops::ControlFlow<E, T>;
let _5: E; let _5: T;
let mut _6: isize; let _6: E;
let _7: T; let _7: E;
let _8: E;
scope 1 { scope 1 {
debug v => _3; debug v => _3;
} }
scope 2 { scope 2 {
debug e => _5; debug e => _6;
} }
scope 3 { scope 3 {
debug v => _7; debug v => _5;
} }
scope 4 { scope 4 {
debug e => _8; debug e => _7;
} }
bb0: { bb0: {
StorageLive(_4); StorageLive(_4);
_2 = discriminant(_1); _2 = discriminant(_1);
switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb7]; switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb4];
} }
bb1: { bb1: {
_3 = move ((_1 as Ok).0: T); _3 = move ((_1 as Ok).0: T);
_4 = ControlFlow::<E, T>::Continue(_3); _4 = ControlFlow::<E, T>::Continue(_3);
_5 = move ((_4 as Continue).0: T);
_0 = Result::<T, E>::Ok(_5);
StorageDead(_4);
goto -> bb3; goto -> bb3;
} }
bb2: { bb2: {
_5 = move ((_1 as Err).0: E); _6 = move ((_1 as Err).0: E);
_4 = ControlFlow::<E, T>::Break(_5); _4 = ControlFlow::<E, T>::Break(_6);
_7 = move ((_4 as Break).0: E);
_0 = Result::<T, E>::Err(_7);
StorageDead(_4);
goto -> bb3; goto -> bb3;
} }
bb3: { bb3: {
_6 = discriminant(_4);
switchInt(move _6) -> [0: bb4, 1: bb5, otherwise: bb7];
}
bb4: {
_7 = move ((_4 as Continue).0: T);
_0 = Result::<T, E>::Ok(_7);
StorageDead(_4);
goto -> bb6;
}
bb5: {
_8 = move ((_4 as Break).0: E);
_0 = Result::<T, E>::Err(_8);
StorageDead(_4);
goto -> bb6;
}
bb6: {
return; return;
} }
bb7: { bb4: {
unreachable; unreachable;
} }
} }