Repository navigation
Simplify ROB bench with immutable scenario data - #287
Conversation
|
Final candidate Evidence preserves all 284 scenarios / 4,260 field values over the complete known-u64 domain, including sustained tail flush and wrap; 21 mutations are rejected. Standalone CTest 2/2, catalog tests 19/19, complete observation comparisons, compiler-stage and generated-output bindings, pre-commit and strict docs passed. Final README reports same-profile phase costs and three alternating paired warm runtime samples, with native median about 42% lower and RTL approximately unchanged. No compiler, API, DUT, driver, configuration or timeout changes. This is bounded ROB bench acceptance, not full nightly, platform or overall migration completion. Candidate-bound reviews and raw results remain in ignored local evidence. |
The ROB system bench repeated large conditional trees for fifteen stimulus and expected-result fields. Replace them with one immutable typed Table of 284 scenarios, using existing Struct defaults and a full-width phase clamp. The source shrinks from 6,228 lines / 258,859 bytes to 371 lines / 39,366 bytes.
Preserve all 284 transactions, including the 256-event deterministic random stream; the final row keeps
flush=1through the entire remaining u64 domain. Phase initialization/wrap, eight ordered DUT inputs, seven guarded checks, seven unconditional logs and registration order remain unchanged. No new API, compiler change, DUT/oracle rewrite, cycle reduction or timeout increase. Refresh the example guide and verified module receipt.Validation:
Same-machine LLVM 22 /
-O0measurements reduce bench compilation 6.62→1.45 s, linking 6.48→2.67 s and C++ emission 6.14→2.68 s. Three alternating paired warm native runs have medians 1.111→0.641 s (about 42% lower); RTL runtime is approximately unchanged at 0.036 s. Final IR falls 28.20→11.07 MB, generated C++ 5.51→3.69 MB and RTL 1.17→0.65 MB. README records the complete table and measurement limits.Full catalog/nightly and platform matrices were not run. The known-phase proof does not claim injected X/Z phase equivalence or simulated 64-bit rollover. Remaining migration/scaling work stays in #272 and #265. Intermediate experiments, proof tools and reviews remain ignored under
docs/gates/logs/rob-bench-20261010/; runtime tests do not depend on those files.