[go: up one dir, main page]

RISC-V: enriched-cell

  • closes RV-299
  • part of RV-179

What

Introduce an EnrichedCell type, managed by the backend, that allows attaching 'derived' state to existing values. This derived state is not stored in the state.

Why

This allows us to 'pre-dispatch' the function (from an opcode) during block creation - rather than on each block execution (!15597 (merged))

How

We introduce a new ManagerFrom trait, that allows any value that can be derived from E + ManagerReadWrite to be attached as metadata to a value.

Manually Testing

make -C src/riscv all

Benchmarking

This change (despite not being used) introduces a small but consistent performance degradation - possibly due to some code moving around in the binary? Rather spend a lot of time investigating this, though, the follow up change that this enables (!15597 (merged)) more than makes up for this. (+15% or so vs this MR)

master This MR Improvement
AMD Ryzen 7 7840U 3.315 TPS 3.329 TPS -0.4%
Benchmark Machine 2.474 TPS 2.452 TPS -0.9%

Tasks for the Author

  • Link all Linear issues related to this MR using magic words (e.g. part of, relates to, closes).
  • Eliminate dead code and other spurious artefacts introduced in your changes.
  • Document new public functions, methods and types.
  • Make sure the documentation for updated functions, methods, and types is correct.
  • Add tests for bugs that have been fixed.
  • Put in reasonable effort to ensure that CI will pass.
  • Benchmark performance and populate the table above if needed.
  • Write commit messages to reflect the changes they're about.
  • Self-review your changes to ensure they are high-quality.
  • Complete all of the above before assigning this MR to reviewers.
Edited by Emma Turner

Merge request reports

Loading