coverage: Simplify building coverage expressions based on sums
In some cases we need to prepare a coverage expression that is the sum of an arbitrary number of other terms. This patch simplifies the code paths that build those sums. This causes some churn in the mappings, because the previous code was building its sums in a somewhat idiosyncratic order.
This commit is contained in:
parent
31113c5f56
commit
a1e2c10b1f
7 changed files with 152 additions and 169 deletions
|
@ -1,26 +1,26 @@
|
|||
Function name: continue::main
|
||||
Raw bytes (210): 0x[01, 01, 1c, 01, 07, 05, 09, 03, 0d, 0d, 1f, 11, 15, 1b, 19, 0d, 1f, 11, 15, 19, 33, 1d, 21, 2f, 25, 19, 33, 1d, 21, 25, 47, 29, 2d, 43, 31, 25, 47, 29, 2d, 31, 5f, 35, 39, 57, 3d, 31, 5f, 35, 39, 35, 39, 3d, 41, 6b, 45, 3d, 41, 49, 45, 1e, 01, 03, 01, 03, 12, 03, 04, 0e, 00, 13, 0a, 01, 0f, 00, 16, 05, 02, 11, 00, 19, 09, 02, 12, 04, 0e, 1b, 06, 0e, 00, 13, 16, 01, 0f, 00, 16, 15, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 15, 03, 09, 00, 0e, 2f, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 1d, 01, 15, 02, 0e, 21, 04, 11, 00, 19, 1d, 03, 09, 00, 0e, 43, 02, 0e, 00, 13, 3e, 01, 0c, 00, 13, 29, 01, 0d, 00, 15, 2d, 01, 0a, 01, 0e, 57, 03, 0e, 00, 13, 52, 01, 0f, 00, 16, 39, 01, 16, 02, 0e, 35, 03, 12, 02, 0e, 5f, 04, 09, 00, 0e, 6b, 02, 0e, 00, 13, 66, 01, 0f, 00, 16, 41, 01, 16, 02, 0e, 49, 04, 11, 00, 16, 41, 03, 09, 00, 0e, 6f, 02, 0d, 01, 02]
|
||||
Raw bytes (210): 0x[01, 01, 1c, 07, 09, 01, 05, 03, 0d, 1f, 15, 0d, 11, 1b, 19, 1f, 15, 0d, 11, 33, 21, 19, 1d, 2f, 25, 33, 21, 19, 1d, 47, 2d, 25, 29, 43, 31, 47, 2d, 25, 29, 31, 5f, 35, 39, 57, 3d, 31, 5f, 35, 39, 35, 39, 3d, 41, 6b, 45, 3d, 41, 49, 45, 1e, 01, 03, 01, 03, 12, 03, 04, 0e, 00, 13, 0a, 01, 0f, 00, 16, 05, 02, 11, 00, 19, 09, 02, 12, 04, 0e, 1b, 06, 0e, 00, 13, 16, 01, 0f, 00, 16, 15, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 15, 03, 09, 00, 0e, 2f, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 1d, 01, 15, 02, 0e, 21, 04, 11, 00, 19, 1d, 03, 09, 00, 0e, 43, 02, 0e, 00, 13, 3e, 01, 0c, 00, 13, 29, 01, 0d, 00, 15, 2d, 01, 0a, 01, 0e, 57, 03, 0e, 00, 13, 52, 01, 0f, 00, 16, 39, 01, 16, 02, 0e, 35, 03, 12, 02, 0e, 5f, 04, 09, 00, 0e, 6b, 02, 0e, 00, 13, 66, 01, 0f, 00, 16, 41, 01, 16, 02, 0e, 49, 04, 11, 00, 16, 41, 03, 09, 00, 0e, 6f, 02, 0d, 01, 02]
|
||||
Number of files: 1
|
||||
- file 0 => global file 1
|
||||
Number of expressions: 28
|
||||
- expression 0 operands: lhs = Counter(0), rhs = Expression(1, Add)
|
||||
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
|
||||
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(2)
|
||||
- expression 1 operands: lhs = Counter(0), rhs = Counter(1)
|
||||
- expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3)
|
||||
- expression 3 operands: lhs = Counter(3), rhs = Expression(7, Add)
|
||||
- expression 4 operands: lhs = Counter(4), rhs = Counter(5)
|
||||
- expression 3 operands: lhs = Expression(7, Add), rhs = Counter(5)
|
||||
- expression 4 operands: lhs = Counter(3), rhs = Counter(4)
|
||||
- expression 5 operands: lhs = Expression(6, Add), rhs = Counter(6)
|
||||
- expression 6 operands: lhs = Counter(3), rhs = Expression(7, Add)
|
||||
- expression 7 operands: lhs = Counter(4), rhs = Counter(5)
|
||||
- expression 8 operands: lhs = Counter(6), rhs = Expression(12, Add)
|
||||
- expression 9 operands: lhs = Counter(7), rhs = Counter(8)
|
||||
- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(5)
|
||||
- expression 7 operands: lhs = Counter(3), rhs = Counter(4)
|
||||
- expression 8 operands: lhs = Expression(12, Add), rhs = Counter(8)
|
||||
- expression 9 operands: lhs = Counter(6), rhs = Counter(7)
|
||||
- expression 10 operands: lhs = Expression(11, Add), rhs = Counter(9)
|
||||
- expression 11 operands: lhs = Counter(6), rhs = Expression(12, Add)
|
||||
- expression 12 operands: lhs = Counter(7), rhs = Counter(8)
|
||||
- expression 13 operands: lhs = Counter(9), rhs = Expression(17, Add)
|
||||
- expression 14 operands: lhs = Counter(10), rhs = Counter(11)
|
||||
- expression 11 operands: lhs = Expression(12, Add), rhs = Counter(8)
|
||||
- expression 12 operands: lhs = Counter(6), rhs = Counter(7)
|
||||
- expression 13 operands: lhs = Expression(17, Add), rhs = Counter(11)
|
||||
- expression 14 operands: lhs = Counter(9), rhs = Counter(10)
|
||||
- expression 15 operands: lhs = Expression(16, Add), rhs = Counter(12)
|
||||
- expression 16 operands: lhs = Counter(9), rhs = Expression(17, Add)
|
||||
- expression 17 operands: lhs = Counter(10), rhs = Counter(11)
|
||||
- expression 16 operands: lhs = Expression(17, Add), rhs = Counter(11)
|
||||
- expression 17 operands: lhs = Counter(9), rhs = Counter(10)
|
||||
- expression 18 operands: lhs = Counter(12), rhs = Expression(23, Add)
|
||||
- expression 19 operands: lhs = Counter(13), rhs = Counter(14)
|
||||
- expression 20 operands: lhs = Expression(21, Add), rhs = Counter(15)
|
||||
|
@ -34,29 +34,29 @@ Number of expressions: 28
|
|||
Number of file 0 mappings: 30
|
||||
- Code(Counter(0)) at (prev + 3, 1) to (start + 3, 18)
|
||||
- Code(Expression(0, Add)) at (prev + 4, 14) to (start + 0, 19)
|
||||
= (c0 + (c1 + c2))
|
||||
= ((c0 + c1) + c2)
|
||||
- Code(Expression(2, Sub)) at (prev + 1, 15) to (start + 0, 22)
|
||||
= ((c0 + (c1 + c2)) - c3)
|
||||
= (((c0 + c1) + c2) - c3)
|
||||
- Code(Counter(1)) at (prev + 2, 17) to (start + 0, 25)
|
||||
- Code(Counter(2)) at (prev + 2, 18) to (start + 4, 14)
|
||||
- Code(Expression(6, Add)) at (prev + 6, 14) to (start + 0, 19)
|
||||
= (c3 + (c4 + c5))
|
||||
= ((c3 + c4) + c5)
|
||||
- Code(Expression(5, Sub)) at (prev + 1, 15) to (start + 0, 22)
|
||||
= ((c3 + (c4 + c5)) - c6)
|
||||
= (((c3 + c4) + c5) - c6)
|
||||
- Code(Counter(5)) at (prev + 1, 22) to (start + 2, 14)
|
||||
- Code(Counter(4)) at (prev + 4, 17) to (start + 0, 25)
|
||||
- Code(Counter(5)) at (prev + 3, 9) to (start + 0, 14)
|
||||
- Code(Expression(11, Add)) at (prev + 2, 14) to (start + 0, 19)
|
||||
= (c6 + (c7 + c8))
|
||||
= ((c6 + c7) + c8)
|
||||
- Code(Expression(10, Sub)) at (prev + 1, 15) to (start + 0, 22)
|
||||
= ((c6 + (c7 + c8)) - c9)
|
||||
= (((c6 + c7) + c8) - c9)
|
||||
- Code(Counter(7)) at (prev + 1, 21) to (start + 2, 14)
|
||||
- Code(Counter(8)) at (prev + 4, 17) to (start + 0, 25)
|
||||
- Code(Counter(7)) at (prev + 3, 9) to (start + 0, 14)
|
||||
- Code(Expression(16, Add)) at (prev + 2, 14) to (start + 0, 19)
|
||||
= (c9 + (c10 + c11))
|
||||
= ((c9 + c10) + c11)
|
||||
- Code(Expression(15, Sub)) at (prev + 1, 12) to (start + 0, 19)
|
||||
= ((c9 + (c10 + c11)) - c12)
|
||||
= (((c9 + c10) + c11) - c12)
|
||||
- Code(Counter(10)) at (prev + 1, 13) to (start + 0, 21)
|
||||
- Code(Counter(11)) at (prev + 1, 10) to (start + 1, 14)
|
||||
- Code(Expression(21, Add)) at (prev + 3, 14) to (start + 0, 19)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue