RISC-V: dispatch block via extern "C" fn
- closes RV-594
What
Dispatch run_block via an extern "C" function pointer
Why
This allows the output of the JIT to be used for dispatch directly, rather than going through additional indirection (as was happening with a rust fn pointer).
How
Dispatch now allocates the result on the stack, and calls the function.
Manually Testing
make -C src/riscv all
Benchmarking
master |
This MR | Improvement | |
|---|---|---|---|
| AMD 64 Linux | 5.568 TPS | 5.559 TPS | -0.2% |
| Benchmark Machine | 4.028 TPS | 4.018 TPS | -0.2% |
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. make -C src/riscvdune build src/lib_riscvdune build src/rust_deps
-
Benchmark performance and populate the table above if needed. -
Explain changes to regression test captures when applicable. -
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