paradigmxyz
revmc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
perf: share single JIT compiler across all benchmarks Add load_with that takes an external compiler, and clear_ir() between benchmarks to free IR while keeping JIT'd machine code alive. This avoids rebuilding the LLVM compiler per benchmark, which is especially costly under valgrind (codspeed).
dani/unified-bench
23 hours ago
perf: separate EVM setup from execution in benchmarks Use iter_batched so DB + EVM construction happens in the setup closure and only transact/handler.run is measured. Introduce EvmWithDb to safely co-locate the CacheDB and the EVM that borrows it.
dani/unified-bench
23 hours ago
fix: finalize JIT module for IR dumps and relax sanity check Call jit_function after translate_inner in JIT mode so the module gets finalized and opt.ll/opt.s dumps are written. Without this the codegen FileCheck tests failed because opt.ll was never produced. Change sanity_check to compare interpreter vs JIT result parity instead of asserting both succeed. Benchmarks like fiat_token called with no calldata legitimately revert.
dani/unified-bench
24 hours ago
fix(aarch64): save all callee-saved registers in entry/exit trampoline Save x27/x28 and NEON d8-d15 in addition to x19-x26. These are all callee-saved per AAPCS64 and must be preserved across the revmc_exit longjump back to the caller of revmc_entry.
dani/exit-trampoline
1 day ago
fix: use saturating i256-to-i64 convert at jump site
dani/truncate-i64-dynamic-jump-table
1 day ago
perf: truncate to i64 before jumping to dynamic jump table Truncate the i256 jump target to i64 at each dynamic jump site instead of doing a saturating convert in the dynamic jump table block. This removes the zext+icmp+select overhead from the jump table phi node, simplifying codegen.
dani/truncate-i64-dynamic-jump-table
1 day ago
Merge remote-tracking branch 'origin/main' into dani/exit-trampoline
dani/exit-trampoline
1 day ago
refactor: use EvmCompiler::new_llvm where backend is concrete (#315) Add `EvmCompiler::new_llvm(aot)` convenience constructor that combines `EvmLlvmBackend::new` and `EvmCompiler::new`. Replace all call sites that were using the two-step pattern with the concrete LLVM backend.
main
1 day ago
Latest Branches
CodSpeed Performance Gauge
-100%
feat: add burntpix benchmark and unify execution paths
#316
23 hours ago
91ff075
dani/unified-bench
CodSpeed Performance Gauge
+17%
perf: exit trampoline for builtin errors
#314
1 day ago
62dc978
dani/exit-trampoline
CodSpeed Performance Gauge
-1%
perf: truncate to i64 before jumping to dynamic jump table
#317
1 day ago
275c49d
dani/truncate-i64-dynamic-jump-table
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs