about summary refs log tree commit diff
path: root/tests/coverage/conditions.cov-map
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2025-02-11 14:09:11 +1100
committerZalathar <Zalathar@users.noreply.github.com>2025-02-13 13:45:53 +1100
commitab786d3b98d640b1208eff371c1184e3e8ce1d17 (patch)
treef215f03b8300fe0151f46b9922d2ca053604770d /tests/coverage/conditions.cov-map
parentef148cd7eb00a5a973130dc6473da71fd6c487ee (diff)
downloadrust-ab786d3b98d640b1208eff371c1184e3e8ce1d17.tar.gz
rust-ab786d3b98d640b1208eff371c1184e3e8ce1d17.zip
coverage: Eliminate more counters by giving them to unreachable nodes
When preparing a function's coverage counters and metadata during codegen, any
part of the original coverage graph that was removed by MIR optimizations can
be treated as having an execution count of zero.

Somewhat counter-intuitively, if we give those unreachable nodes a _higher_
priority for receiving physical counters (instead of counter expressions), that
ends up reducing the total number of physical counters needed.

This works because if a node is unreachable, we don't actually create a
physical counter for it. Instead that node gets a fixed zero counter, and any
other node that would have relied on that physical counter in its counter
expression can just ignore that term completely.
Diffstat (limited to 'tests/coverage/conditions.cov-map')
-rw-r--r--tests/coverage/conditions.cov-map321
1 files changed, 160 insertions, 161 deletions
diff --git a/tests/coverage/conditions.cov-map b/tests/coverage/conditions.cov-map
index 549b8bb0a20..2d12f4bf774 100644
--- a/tests/coverage/conditions.cov-map
+++ b/tests/coverage/conditions.cov-map
@@ -1,192 +1,191 @@
 Function name: conditions::main
-Raw bytes (545): 0x[01, 01, 4d, 09, 0d, 01, 09, 0d, 71, 0d, 27, 71, 75, 27, 79, 71, 75, 0d, 23, 27, 79, 71, 75, 01, 03, 03, 15, 19, 65, 19, 4f, 65, 69, 4f, 6d, 65, 69, 19, 4b, 4f, 6d, 65, 69, 03, ef, 01, 15, 19, 15, 19, 1d, 25, 29, 59, 29, 7f, 59, 5d, 7f, 61, 59, 5d, 29, 7b, 7f, 61, 59, 5d, 1d, 87, 01, 25, 29, e7, 01, 1d, eb, 01, 29, ef, 01, 25, 15, 19, 31, 35, e7, 01, 1d, eb, 01, 29, ef, 01, 25, 15, 19, e7, 01, f7, 01, eb, 01, 29, ef, 01, 25, 15, 19, 1d, 31, 35, 4d, 35, df, 01, 4d, 51, df, 01, 55, 4d, 51, 35, db, 01, df, 01, 55, 4d, 51, e7, 01, f3, 01, eb, 01, 29, ef, 01, 25, 15, 19, f7, 01, 35, 1d, 31, 39, 3d, 31, 35, af, 02, 39, 31, 35, 3d, 41, 3d, a7, 02, 41, 45, a7, 02, 49, 41, 45, 3d, a3, 02, a7, 02, 49, 41, 45, af, 02, b3, 02, 31, 35, 39, 3d, 44, 01, 03, 01, 02, 0c, 05, 02, 0d, 02, 06, 00, 02, 05, 00, 06, 03, 03, 09, 00, 0a, 01, 00, 10, 00, 1d, 09, 01, 09, 01, 0a, 06, 02, 0f, 00, 1c, 0d, 01, 0c, 00, 19, 0a, 00, 1d, 00, 2a, 0e, 00, 2e, 00, 3c, 23, 00, 3d, 02, 0a, 1e, 02, 09, 00, 0a, 0d, 01, 09, 01, 12, 2a, 03, 09, 00, 0f, 03, 03, 09, 01, 0c, 11, 01, 0d, 02, 06, 00, 02, 05, 00, 06, 03, 02, 08, 00, 15, 15, 00, 16, 02, 06, 2e, 02, 0f, 00, 1c, 19, 01, 0c, 00, 19, 32, 00, 1d, 00, 2a, 36, 00, 2e, 00, 3c, 4b, 00, 3d, 02, 0a, 46, 02, 09, 00, 0a, 19, 01, 09, 00, 17, 52, 02, 09, 00, 0f, ef, 01, 03, 08, 00, 0c, 1d, 01, 0d, 01, 10, 21, 01, 11, 02, 0a, 00, 02, 09, 00, 0a, 1d, 02, 0c, 00, 19, 25, 00, 1a, 02, 0a, 5e, 04, 11, 00, 1e, 29, 01, 10, 00, 1d, 62, 00, 21, 00, 2e, 66, 00, 32, 00, 40, 7b, 00, 41, 02, 0e, 76, 02, 0d, 00, 0e, 29, 01, 0d, 00, 1b, 82, 01, 02, 0d, 00, 13, 00, 02, 05, 00, 06, 9e, 01, 02, 09, 01, 0c, 2d, 01, 0d, 02, 06, 00, 02, 05, 00, 06, af, 02, 02, 09, 00, 0a, 9e, 01, 00, 10, 00, 1d, 31, 00, 1e, 02, 06, ae, 01, 02, 0f, 00, 1c, 35, 01, 0c, 00, 19, c2, 01, 00, 1d, 00, 2a, c6, 01, 00, 2e, 00, 3c, db, 01, 00, 3d, 02, 0a, d6, 01, 02, 09, 00, 0a, 35, 01, 09, 00, 17, e2, 01, 02, 0d, 02, 0f, b3, 02, 05, 09, 00, 0a, af, 02, 00, 10, 00, 1d, 39, 00, 1e, 02, 06, 82, 02, 02, 0f, 00, 1c, 3d, 01, 0c, 00, 19, 8a, 02, 00, 1d, 00, 2a, 8e, 02, 00, 2e, 00, 3c, a3, 02, 00, 3d, 02, 0a, 9e, 02, 02, 09, 00, 0a, 3d, 01, 09, 00, 17, aa, 02, 02, 09, 00, 0f, 01, 02, 01, 00, 02]
+Raw bytes (533): 0x[01, 01, 47, 05, 09, 01, 05, 09, 5d, 09, 27, 5d, 61, 27, 65, 5d, 61, 09, 23, 27, 65, 5d, 61, 01, 03, 03, 0d, 11, 51, 11, 4f, 51, 55, 4f, 59, 51, 55, 11, 4b, 4f, 59, 51, 55, 03, 97, 01, 0d, 11, 0d, 11, 0d, 11, 0d, 11, 0d, 11, 97, 01, 15, 0d, 11, 19, 45, 19, 8f, 01, 45, 49, 8f, 01, 4d, 45, 49, 19, 8b, 01, 8f, 01, 4d, 45, 49, 97, 01, db, 01, 0d, 11, 15, 19, 15, 19, 15, 19, 1d, 21, 15, 19, db, 01, 1d, 15, 19, 21, 39, 21, d3, 01, 39, 3d, d3, 01, 41, 39, 3d, 21, cf, 01, d3, 01, 41, 39, 3d, db, 01, 97, 02, 15, 19, 1d, 21, 25, 29, 1d, 21, 97, 02, 25, 1d, 21, 29, 2d, 29, 8f, 02, 2d, 31, 8f, 02, 35, 2d, 31, 29, 8b, 02, 8f, 02, 35, 2d, 31, 97, 02, 9b, 02, 1d, 21, 25, 29, 44, 01, 03, 01, 02, 0c, 01, 02, 0d, 02, 06, 00, 02, 05, 00, 06, 03, 03, 09, 00, 0a, 01, 00, 10, 00, 1d, 05, 01, 09, 01, 0a, 06, 02, 0f, 00, 1c, 09, 01, 0c, 00, 19, 0a, 00, 1d, 00, 2a, 0e, 00, 2e, 00, 3c, 23, 00, 3d, 02, 0a, 1e, 02, 09, 00, 0a, 09, 01, 09, 01, 12, 2a, 03, 09, 00, 0f, 03, 03, 09, 01, 0c, 03, 01, 0d, 02, 06, 00, 02, 05, 00, 06, 03, 02, 08, 00, 15, 0d, 00, 16, 02, 06, 2e, 02, 0f, 00, 1c, 11, 01, 0c, 00, 19, 32, 00, 1d, 00, 2a, 36, 00, 2e, 00, 3c, 4b, 00, 3d, 02, 0a, 46, 02, 09, 00, 0a, 11, 01, 09, 00, 17, 52, 02, 09, 00, 0f, 97, 01, 03, 08, 00, 0c, 97, 01, 01, 0d, 01, 10, 97, 01, 01, 11, 02, 0a, 00, 02, 09, 00, 0a, 97, 01, 02, 0c, 00, 19, 15, 00, 1a, 02, 0a, 6a, 04, 11, 00, 1e, 19, 01, 10, 00, 1d, 72, 00, 21, 00, 2e, 76, 00, 32, 00, 40, 8b, 01, 00, 41, 02, 0e, 86, 01, 02, 0d, 00, 0e, 19, 01, 0d, 00, 1b, 92, 01, 02, 0d, 00, 13, 00, 02, 05, 00, 06, db, 01, 02, 09, 01, 0c, db, 01, 01, 0d, 02, 06, 00, 02, 05, 00, 06, 97, 02, 02, 09, 00, 0a, db, 01, 00, 10, 00, 1d, 1d, 00, 1e, 02, 06, ae, 01, 02, 0f, 00, 1c, 21, 01, 0c, 00, 19, b6, 01, 00, 1d, 00, 2a, ba, 01, 00, 2e, 00, 3c, cf, 01, 00, 3d, 02, 0a, ca, 01, 02, 09, 00, 0a, 21, 01, 09, 00, 17, d6, 01, 02, 0d, 02, 0f, 9b, 02, 05, 09, 00, 0a, 97, 02, 00, 10, 00, 1d, 25, 00, 1e, 02, 06, ea, 01, 02, 0f, 00, 1c, 29, 01, 0c, 00, 19, f2, 01, 00, 1d, 00, 2a, f6, 01, 00, 2e, 00, 3c, 8b, 02, 00, 3d, 02, 0a, 86, 02, 02, 09, 00, 0a, 29, 01, 09, 00, 17, 92, 02, 02, 09, 00, 0f, 01, 02, 01, 00, 02]
 Number of files: 1
 - file 0 => global file 1
-Number of expressions: 77
-- expression 0 operands: lhs = Counter(2), rhs = Counter(3)
-- expression 1 operands: lhs = Counter(0), rhs = Counter(2)
-- expression 2 operands: lhs = Counter(3), rhs = Counter(28)
-- expression 3 operands: lhs = Counter(3), rhs = Expression(9, Add)
-- expression 4 operands: lhs = Counter(28), rhs = Counter(29)
-- expression 5 operands: lhs = Expression(9, Add), rhs = Counter(30)
-- expression 6 operands: lhs = Counter(28), rhs = Counter(29)
-- expression 7 operands: lhs = Counter(3), rhs = Expression(8, Add)
-- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(30)
-- expression 9 operands: lhs = Counter(28), rhs = Counter(29)
+Number of expressions: 71
+- expression 0 operands: lhs = Counter(1), rhs = Counter(2)
+- expression 1 operands: lhs = Counter(0), rhs = Counter(1)
+- expression 2 operands: lhs = Counter(2), rhs = Counter(23)
+- expression 3 operands: lhs = Counter(2), rhs = Expression(9, Add)
+- expression 4 operands: lhs = Counter(23), rhs = Counter(24)
+- expression 5 operands: lhs = Expression(9, Add), rhs = Counter(25)
+- expression 6 operands: lhs = Counter(23), rhs = Counter(24)
+- expression 7 operands: lhs = Counter(2), rhs = Expression(8, Add)
+- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(25)
+- expression 9 operands: lhs = Counter(23), rhs = Counter(24)
 - expression 10 operands: lhs = Counter(0), rhs = Expression(0, Add)
-- expression 11 operands: lhs = Expression(0, Add), rhs = Counter(5)
-- expression 12 operands: lhs = Counter(6), rhs = Counter(25)
-- expression 13 operands: lhs = Counter(6), rhs = Expression(19, Add)
-- expression 14 operands: lhs = Counter(25), rhs = Counter(26)
-- expression 15 operands: lhs = Expression(19, Add), rhs = Counter(27)
-- expression 16 operands: lhs = Counter(25), rhs = Counter(26)
-- expression 17 operands: lhs = Counter(6), rhs = Expression(18, Add)
-- expression 18 operands: lhs = Expression(19, Add), rhs = Counter(27)
-- expression 19 operands: lhs = Counter(25), rhs = Counter(26)
-- expression 20 operands: lhs = Expression(0, Add), rhs = Expression(59, Add)
-- expression 21 operands: lhs = Counter(5), rhs = Counter(6)
-- expression 22 operands: lhs = Counter(5), rhs = Counter(6)
-- expression 23 operands: lhs = Counter(7), rhs = Counter(9)
-- expression 24 operands: lhs = Counter(10), rhs = Counter(22)
-- expression 25 operands: lhs = Counter(10), rhs = Expression(31, Add)
-- expression 26 operands: lhs = Counter(22), rhs = Counter(23)
-- expression 27 operands: lhs = Expression(31, Add), rhs = Counter(24)
-- expression 28 operands: lhs = Counter(22), rhs = Counter(23)
-- expression 29 operands: lhs = Counter(10), rhs = Expression(30, Add)
-- expression 30 operands: lhs = Expression(31, Add), rhs = Counter(24)
-- expression 31 operands: lhs = Counter(22), rhs = Counter(23)
-- expression 32 operands: lhs = Counter(7), rhs = Expression(33, Add)
-- expression 33 operands: lhs = Counter(9), rhs = Counter(10)
-- expression 34 operands: lhs = Expression(57, Add), rhs = Counter(7)
-- expression 35 operands: lhs = Expression(58, Add), rhs = Counter(10)
-- expression 36 operands: lhs = Expression(59, Add), rhs = Counter(9)
-- expression 37 operands: lhs = Counter(5), rhs = Counter(6)
-- expression 38 operands: lhs = Counter(12), rhs = Counter(13)
-- expression 39 operands: lhs = Expression(57, Add), rhs = Counter(7)
-- expression 40 operands: lhs = Expression(58, Add), rhs = Counter(10)
-- expression 41 operands: lhs = Expression(59, Add), rhs = Counter(9)
+- expression 11 operands: lhs = Expression(0, Add), rhs = Counter(3)
+- expression 12 operands: lhs = Counter(4), rhs = Counter(20)
+- expression 13 operands: lhs = Counter(4), rhs = Expression(19, Add)
+- expression 14 operands: lhs = Counter(20), rhs = Counter(21)
+- expression 15 operands: lhs = Expression(19, Add), rhs = Counter(22)
+- expression 16 operands: lhs = Counter(20), rhs = Counter(21)
+- expression 17 operands: lhs = Counter(4), rhs = Expression(18, Add)
+- expression 18 operands: lhs = Expression(19, Add), rhs = Counter(22)
+- expression 19 operands: lhs = Counter(20), rhs = Counter(21)
+- expression 20 operands: lhs = Expression(0, Add), rhs = Expression(37, Add)
+- expression 21 operands: lhs = Counter(3), rhs = Counter(4)
+- expression 22 operands: lhs = Counter(3), rhs = Counter(4)
+- expression 23 operands: lhs = Counter(3), rhs = Counter(4)
+- expression 24 operands: lhs = Counter(3), rhs = Counter(4)
+- expression 25 operands: lhs = Counter(3), rhs = Counter(4)
+- expression 26 operands: lhs = Expression(37, Add), rhs = Counter(5)
+- expression 27 operands: lhs = Counter(3), rhs = Counter(4)
+- expression 28 operands: lhs = Counter(6), rhs = Counter(17)
+- expression 29 operands: lhs = Counter(6), rhs = Expression(35, Add)
+- expression 30 operands: lhs = Counter(17), rhs = Counter(18)
+- expression 31 operands: lhs = Expression(35, Add), rhs = Counter(19)
+- expression 32 operands: lhs = Counter(17), rhs = Counter(18)
+- expression 33 operands: lhs = Counter(6), rhs = Expression(34, Add)
+- expression 34 operands: lhs = Expression(35, Add), rhs = Counter(19)
+- expression 35 operands: lhs = Counter(17), rhs = Counter(18)
+- expression 36 operands: lhs = Expression(37, Add), rhs = Expression(54, Add)
+- expression 37 operands: lhs = Counter(3), rhs = Counter(4)
+- expression 38 operands: lhs = Counter(5), rhs = Counter(6)
+- expression 39 operands: lhs = Counter(5), rhs = Counter(6)
+- expression 40 operands: lhs = Counter(5), rhs = Counter(6)
+- expression 41 operands: lhs = Counter(7), rhs = Counter(8)
 - expression 42 operands: lhs = Counter(5), rhs = Counter(6)
-- expression 43 operands: lhs = Expression(57, Add), rhs = Expression(61, Add)
-- expression 44 operands: lhs = Expression(58, Add), rhs = Counter(10)
-- expression 45 operands: lhs = Expression(59, Add), rhs = Counter(9)
-- expression 46 operands: lhs = Counter(5), rhs = Counter(6)
-- expression 47 operands: lhs = Counter(7), rhs = Counter(12)
-- expression 48 operands: lhs = Counter(13), rhs = Counter(19)
-- expression 49 operands: lhs = Counter(13), rhs = Expression(55, Add)
-- expression 50 operands: lhs = Counter(19), rhs = Counter(20)
-- expression 51 operands: lhs = Expression(55, Add), rhs = Counter(21)
-- expression 52 operands: lhs = Counter(19), rhs = Counter(20)
-- expression 53 operands: lhs = Counter(13), rhs = Expression(54, Add)
-- expression 54 operands: lhs = Expression(55, Add), rhs = Counter(21)
-- expression 55 operands: lhs = Counter(19), rhs = Counter(20)
-- expression 56 operands: lhs = Expression(57, Add), rhs = Expression(60, Add)
-- expression 57 operands: lhs = Expression(58, Add), rhs = Counter(10)
-- expression 58 operands: lhs = Expression(59, Add), rhs = Counter(9)
-- expression 59 operands: lhs = Counter(5), rhs = Counter(6)
-- expression 60 operands: lhs = Expression(61, Add), rhs = Counter(13)
-- expression 61 operands: lhs = Counter(7), rhs = Counter(12)
-- expression 62 operands: lhs = Counter(14), rhs = Counter(15)
-- expression 63 operands: lhs = Counter(12), rhs = Counter(13)
-- expression 64 operands: lhs = Expression(75, Add), rhs = Counter(14)
-- expression 65 operands: lhs = Counter(12), rhs = Counter(13)
-- expression 66 operands: lhs = Counter(15), rhs = Counter(16)
-- expression 67 operands: lhs = Counter(15), rhs = Expression(73, Add)
-- expression 68 operands: lhs = Counter(16), rhs = Counter(17)
-- expression 69 operands: lhs = Expression(73, Add), rhs = Counter(18)
-- expression 70 operands: lhs = Counter(16), rhs = Counter(17)
-- expression 71 operands: lhs = Counter(15), rhs = Expression(72, Add)
-- expression 72 operands: lhs = Expression(73, Add), rhs = Counter(18)
-- expression 73 operands: lhs = Counter(16), rhs = Counter(17)
-- expression 74 operands: lhs = Expression(75, Add), rhs = Expression(76, Add)
-- expression 75 operands: lhs = Counter(12), rhs = Counter(13)
-- expression 76 operands: lhs = Counter(14), rhs = Counter(15)
+- expression 43 operands: lhs = Expression(54, Add), rhs = Counter(7)
+- expression 44 operands: lhs = Counter(5), rhs = Counter(6)
+- expression 45 operands: lhs = Counter(8), rhs = Counter(14)
+- expression 46 operands: lhs = Counter(8), rhs = Expression(52, Add)
+- expression 47 operands: lhs = Counter(14), rhs = Counter(15)
+- expression 48 operands: lhs = Expression(52, Add), rhs = Counter(16)
+- expression 49 operands: lhs = Counter(14), rhs = Counter(15)
+- expression 50 operands: lhs = Counter(8), rhs = Expression(51, Add)
+- expression 51 operands: lhs = Expression(52, Add), rhs = Counter(16)
+- expression 52 operands: lhs = Counter(14), rhs = Counter(15)
+- expression 53 operands: lhs = Expression(54, Add), rhs = Expression(69, Add)
+- expression 54 operands: lhs = Counter(5), rhs = Counter(6)
+- expression 55 operands: lhs = Counter(7), rhs = Counter(8)
+- expression 56 operands: lhs = Counter(9), rhs = Counter(10)
+- expression 57 operands: lhs = Counter(7), rhs = Counter(8)
+- expression 58 operands: lhs = Expression(69, Add), rhs = Counter(9)
+- expression 59 operands: lhs = Counter(7), rhs = Counter(8)
+- expression 60 operands: lhs = Counter(10), rhs = Counter(11)
+- expression 61 operands: lhs = Counter(10), rhs = Expression(67, Add)
+- expression 62 operands: lhs = Counter(11), rhs = Counter(12)
+- expression 63 operands: lhs = Expression(67, Add), rhs = Counter(13)
+- expression 64 operands: lhs = Counter(11), rhs = Counter(12)
+- expression 65 operands: lhs = Counter(10), rhs = Expression(66, Add)
+- expression 66 operands: lhs = Expression(67, Add), rhs = Counter(13)
+- expression 67 operands: lhs = Counter(11), rhs = Counter(12)
+- expression 68 operands: lhs = Expression(69, Add), rhs = Expression(70, Add)
+- expression 69 operands: lhs = Counter(7), rhs = Counter(8)
+- expression 70 operands: lhs = Counter(9), rhs = Counter(10)
 Number of file 0 mappings: 68
 - Code(Counter(0)) at (prev + 3, 1) to (start + 2, 12)
-- Code(Counter(1)) at (prev + 2, 13) to (start + 2, 6)
+- Code(Counter(0)) at (prev + 2, 13) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
 - Code(Expression(0, Add)) at (prev + 3, 9) to (start + 0, 10)
-    = (c2 + c3)
+    = (c1 + c2)
 - Code(Counter(0)) at (prev + 0, 16) to (start + 0, 29)
-- Code(Counter(2)) at (prev + 1, 9) to (start + 1, 10)
+- Code(Counter(1)) at (prev + 1, 9) to (start + 1, 10)
 - Code(Expression(1, Sub)) at (prev + 2, 15) to (start + 0, 28)
-    = (c0 - c2)
-- Code(Counter(3)) at (prev + 1, 12) to (start + 0, 25)
+    = (c0 - c1)
+- Code(Counter(2)) at (prev + 1, 12) to (start + 0, 25)
 - Code(Expression(2, Sub)) at (prev + 0, 29) to (start + 0, 42)
-    = (c3 - c28)
+    = (c2 - c23)
 - Code(Expression(3, Sub)) at (prev + 0, 46) to (start + 0, 60)
-    = (c3 - (c28 + c29))
+    = (c2 - (c23 + c24))
 - Code(Expression(8, Add)) at (prev + 0, 61) to (start + 2, 10)
-    = ((c28 + c29) + c30)
+    = ((c23 + c24) + c25)
 - Code(Expression(7, Sub)) at (prev + 2, 9) to (start + 0, 10)
-    = (c3 - ((c28 + c29) + c30))
-- Code(Counter(3)) at (prev + 1, 9) to (start + 1, 18)
+    = (c2 - ((c23 + c24) + c25))
+- Code(Counter(2)) at (prev + 1, 9) to (start + 1, 18)
 - Code(Expression(10, Sub)) at (prev + 3, 9) to (start + 0, 15)
-    = (c0 - (c2 + c3))
+    = (c0 - (c1 + c2))
 - Code(Expression(0, Add)) at (prev + 3, 9) to (start + 1, 12)
-    = (c2 + c3)
-- Code(Counter(4)) at (prev + 1, 13) to (start + 2, 6)
+    = (c1 + c2)
+- Code(Expression(0, Add)) at (prev + 1, 13) to (start + 2, 6)
+    = (c1 + c2)
 - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
 - Code(Expression(0, Add)) at (prev + 2, 8) to (start + 0, 21)
-    = (c2 + c3)
-- Code(Counter(5)) at (prev + 0, 22) to (start + 2, 6)
+    = (c1 + c2)
+- Code(Counter(3)) at (prev + 0, 22) to (start + 2, 6)
 - Code(Expression(11, Sub)) at (prev + 2, 15) to (start + 0, 28)
-    = ((c2 + c3) - c5)
-- Code(Counter(6)) at (prev + 1, 12) to (start + 0, 25)
+    = ((c1 + c2) - c3)
+- Code(Counter(4)) at (prev + 1, 12) to (start + 0, 25)
 - Code(Expression(12, Sub)) at (prev + 0, 29) to (start + 0, 42)
-    = (c6 - c25)
+    = (c4 - c20)
 - Code(Expression(13, Sub)) at (prev + 0, 46) to (start + 0, 60)
-    = (c6 - (c25 + c26))
+    = (c4 - (c20 + c21))
 - Code(Expression(18, Add)) at (prev + 0, 61) to (start + 2, 10)
-    = ((c25 + c26) + c27)
+    = ((c20 + c21) + c22)
 - Code(Expression(17, Sub)) at (prev + 2, 9) to (start + 0, 10)
-    = (c6 - ((c25 + c26) + c27))
-- Code(Counter(6)) at (prev + 1, 9) to (start + 0, 23)
+    = (c4 - ((c20 + c21) + c22))
+- Code(Counter(4)) at (prev + 1, 9) to (start + 0, 23)
 - Code(Expression(20, Sub)) at (prev + 2, 9) to (start + 0, 15)
-    = ((c2 + c3) - (c5 + c6))
-- Code(Expression(59, Add)) at (prev + 3, 8) to (start + 0, 12)
-    = (c5 + c6)
-- Code(Counter(7)) at (prev + 1, 13) to (start + 1, 16)
-- Code(Counter(8)) at (prev + 1, 17) to (start + 2, 10)
+    = ((c1 + c2) - (c3 + c4))
+- Code(Expression(37, Add)) at (prev + 3, 8) to (start + 0, 12)
+    = (c3 + c4)
+- Code(Expression(37, Add)) at (prev + 1, 13) to (start + 1, 16)
+    = (c3 + c4)
+- Code(Expression(37, Add)) at (prev + 1, 17) to (start + 2, 10)
+    = (c3 + c4)
 - Code(Zero) at (prev + 2, 9) to (start + 0, 10)
-- Code(Counter(7)) at (prev + 2, 12) to (start + 0, 25)
-- Code(Counter(9)) at (prev + 0, 26) to (start + 2, 10)
-- Code(Expression(23, Sub)) at (prev + 4, 17) to (start + 0, 30)
-    = (c7 - c9)
-- Code(Counter(10)) at (prev + 1, 16) to (start + 0, 29)
-- Code(Expression(24, Sub)) at (prev + 0, 33) to (start + 0, 46)
-    = (c10 - c22)
-- Code(Expression(25, Sub)) at (prev + 0, 50) to (start + 0, 64)
-    = (c10 - (c22 + c23))
-- Code(Expression(30, Add)) at (prev + 0, 65) to (start + 2, 14)
-    = ((c22 + c23) + c24)
-- Code(Expression(29, Sub)) at (prev + 2, 13) to (start + 0, 14)
-    = (c10 - ((c22 + c23) + c24))
-- Code(Counter(10)) at (prev + 1, 13) to (start + 0, 27)
-- Code(Expression(32, Sub)) at (prev + 2, 13) to (start + 0, 19)
-    = (c7 - (c9 + c10))
+- Code(Expression(37, Add)) at (prev + 2, 12) to (start + 0, 25)
+    = (c3 + c4)
+- Code(Counter(5)) at (prev + 0, 26) to (start + 2, 10)
+- Code(Expression(26, Sub)) at (prev + 4, 17) to (start + 0, 30)
+    = ((c3 + c4) - c5)
+- Code(Counter(6)) at (prev + 1, 16) to (start + 0, 29)
+- Code(Expression(28, Sub)) at (prev + 0, 33) to (start + 0, 46)
+    = (c6 - c17)
+- Code(Expression(29, Sub)) at (prev + 0, 50) to (start + 0, 64)
+    = (c6 - (c17 + c18))
+- Code(Expression(34, Add)) at (prev + 0, 65) to (start + 2, 14)
+    = ((c17 + c18) + c19)
+- Code(Expression(33, Sub)) at (prev + 2, 13) to (start + 0, 14)
+    = (c6 - ((c17 + c18) + c19))
+- Code(Counter(6)) at (prev + 1, 13) to (start + 0, 27)
+- Code(Expression(36, Sub)) at (prev + 2, 13) to (start + 0, 19)
+    = ((c3 + c4) - (c5 + c6))
 - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
-- Code(Expression(39, Sub)) at (prev + 2, 9) to (start + 1, 12)
-    = ((((c5 + c6) + c9) + c10) - c7)
-- Code(Counter(11)) at (prev + 1, 13) to (start + 2, 6)
+- Code(Expression(54, Add)) at (prev + 2, 9) to (start + 1, 12)
+    = (c5 + c6)
+- Code(Expression(54, Add)) at (prev + 1, 13) to (start + 2, 6)
+    = (c5 + c6)
 - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
-- Code(Expression(75, Add)) at (prev + 2, 9) to (start + 0, 10)
-    = (c12 + c13)
-- Code(Expression(39, Sub)) at (prev + 0, 16) to (start + 0, 29)
-    = ((((c5 + c6) + c9) + c10) - c7)
-- Code(Counter(12)) at (prev + 0, 30) to (start + 2, 6)
+- Code(Expression(69, Add)) at (prev + 2, 9) to (start + 0, 10)
+    = (c7 + c8)
+- Code(Expression(54, Add)) at (prev + 0, 16) to (start + 0, 29)
+    = (c5 + c6)
+- Code(Counter(7)) at (prev + 0, 30) to (start + 2, 6)
 - Code(Expression(43, Sub)) at (prev + 2, 15) to (start + 0, 28)
-    = ((((c5 + c6) + c9) + c10) - (c7 + c12))
-- Code(Counter(13)) at (prev + 1, 12) to (start + 0, 25)
-- Code(Expression(48, Sub)) at (prev + 0, 29) to (start + 0, 42)
-    = (c13 - c19)
-- Code(Expression(49, Sub)) at (prev + 0, 46) to (start + 0, 60)
-    = (c13 - (c19 + c20))
-- Code(Expression(54, Add)) at (prev + 0, 61) to (start + 2, 10)
-    = ((c19 + c20) + c21)
-- Code(Expression(53, Sub)) at (prev + 2, 9) to (start + 0, 10)
-    = (c13 - ((c19 + c20) + c21))
-- Code(Counter(13)) at (prev + 1, 9) to (start + 0, 23)
-- Code(Expression(56, Sub)) at (prev + 2, 13) to (start + 2, 15)
-    = ((((c5 + c6) + c9) + c10) - ((c7 + c12) + c13))
-- Code(Expression(76, Add)) at (prev + 5, 9) to (start + 0, 10)
-    = (c14 + c15)
-- Code(Expression(75, Add)) at (prev + 0, 16) to (start + 0, 29)
-    = (c12 + c13)
-- Code(Counter(14)) at (prev + 0, 30) to (start + 2, 6)
-- Code(Expression(64, Sub)) at (prev + 2, 15) to (start + 0, 28)
-    = ((c12 + c13) - c14)
-- Code(Counter(15)) at (prev + 1, 12) to (start + 0, 25)
-- Code(Expression(66, Sub)) at (prev + 0, 29) to (start + 0, 42)
-    = (c15 - c16)
-- Code(Expression(67, Sub)) at (prev + 0, 46) to (start + 0, 60)
-    = (c15 - (c16 + c17))
-- Code(Expression(72, Add)) at (prev + 0, 61) to (start + 2, 10)
-    = ((c16 + c17) + c18)
-- Code(Expression(71, Sub)) at (prev + 2, 9) to (start + 0, 10)
-    = (c15 - ((c16 + c17) + c18))
-- Code(Counter(15)) at (prev + 1, 9) to (start + 0, 23)
-- Code(Expression(74, Sub)) at (prev + 2, 9) to (start + 0, 15)
-    = ((c12 + c13) - (c14 + c15))
+    = ((c5 + c6) - c7)
+- Code(Counter(8)) at (prev + 1, 12) to (start + 0, 25)
+- Code(Expression(45, Sub)) at (prev + 0, 29) to (start + 0, 42)
+    = (c8 - c14)
+- Code(Expression(46, Sub)) at (prev + 0, 46) to (start + 0, 60)
+    = (c8 - (c14 + c15))
+- Code(Expression(51, Add)) at (prev + 0, 61) to (start + 2, 10)
+    = ((c14 + c15) + c16)
+- Code(Expression(50, Sub)) at (prev + 2, 9) to (start + 0, 10)
+    = (c8 - ((c14 + c15) + c16))
+- Code(Counter(8)) at (prev + 1, 9) to (start + 0, 23)
+- Code(Expression(53, Sub)) at (prev + 2, 13) to (start + 2, 15)
+    = ((c5 + c6) - (c7 + c8))
+- Code(Expression(70, Add)) at (prev + 5, 9) to (start + 0, 10)
+    = (c9 + c10)
+- Code(Expression(69, Add)) at (prev + 0, 16) to (start + 0, 29)
+    = (c7 + c8)
+- Code(Counter(9)) at (prev + 0, 30) to (start + 2, 6)
+- Code(Expression(58, Sub)) at (prev + 2, 15) to (start + 0, 28)
+    = ((c7 + c8) - c9)
+- Code(Counter(10)) at (prev + 1, 12) to (start + 0, 25)
+- Code(Expression(60, Sub)) at (prev + 0, 29) to (start + 0, 42)
+    = (c10 - c11)
+- Code(Expression(61, Sub)) at (prev + 0, 46) to (start + 0, 60)
+    = (c10 - (c11 + c12))
+- Code(Expression(66, Add)) at (prev + 0, 61) to (start + 2, 10)
+    = ((c11 + c12) + c13)
+- Code(Expression(65, Sub)) at (prev + 2, 9) to (start + 0, 10)
+    = (c10 - ((c11 + c12) + c13))
+- Code(Counter(10)) at (prev + 1, 9) to (start + 0, 23)
+- Code(Expression(68, Sub)) at (prev + 2, 9) to (start + 0, 15)
+    = ((c7 + c8) - (c9 + c10))
 - Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
-Highest counter ID seen: c15
+Highest counter ID seen: c10