Added shortcut encoding for linear/log powerlosses in test-runner
The previous encoding was a bit problematic with our linear and log
heuristics, which can grow thousands of powerlosses deep. You know you
have a problem when you're copying a test id that spans a dozen lines.
It also meant we were spending O(n^2) time just encoding powerloss ids:
before: 942.68s
after: 921.94s (-2.2%)
This new encoding takes advantage of the unused characters in our leb16
encoding, with an 'x' prefix indicating linear-heuristic powerlosses
and a 'y' prefix indicating log-heuristic powerlosses ('w' is used for
negative leb16s).
Before:
- explicit: 42q2q2
- linear: 123456789abcdefg1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1
- log: 1248g1g2g4g8gg1gg2gg4gg8
After:
- explicit: 42q2q2
- linear: xg2
- log: yc
This commit is contained in:
@@ -74,7 +74,7 @@ extern const size_t test_suite_count;
|
||||
|
||||
// this variable tracks the number of powerlosses triggered during the
|
||||
// current test permutation, this is useful for both tests and debugging
|
||||
extern size_t test_pls;
|
||||
extern volatile size_t test_pls;
|
||||
|
||||
#define TEST_PLS test_pls
|
||||
|
||||
|
||||
Reference in New Issue
Block a user