Skip to content

[jit] Support simple trans/exec measurement - #31

Draft
derzhavin3016 wants to merge 17 commits into
masterfrom
measure
Draft

[jit] Support simple trans/exec measurement#31
derzhavin3016 wants to merge 17 commits into
masterfrom
measure

Conversation

@derzhavin3016

Copy link
Copy Markdown
Member

No description provided.

uslsteen and others added 9 commits July 6, 2026 15:28
* Optimizations have been made to instructions affecting PCs
* Removed the per-block entry PC load and the per-instruction PC
increment/store.
* Applied to ir, mir, llvm, tpde, lightning, xbyak, asmjit.
* xbyak additionally batches the icount update.
Chain translated blocks directly instead of returning to the C++
dispatcher after each block.
A shared direct-mapped TB-cache probe is emitted inline at block exit;
on hit the successor is entered without a dispatcher round-trip.

- ir, llvm: true tail-call (ir_TAILCALL / musttail)
- mir, lightning, xbyak, asmjit: stores the successor pointer into next_tb
  and the dispatcher's do/while loop calls it (safe tail-call w/o overflow).
- tpde: no block chaining now. Shared LLVM builder is parametrized by so
  llvm gets MustTail while tpde gets None.
On tailcall-chained backends (llvm, ir) the outgoing PC is now passed
directly into the TB-cache probe instead of being reloaded from memory,
and cpu.pc is stored only on paths that return to the dispatcher
(miss / finished / JALR), not on the chained-hit path.
Replace C-style casts with static_cast
* Collect statistics into JSON file option was added
* Interpret stage measurements was added
* Introduced new metrics host cycles (compilation) / translated icount
* Introduced new metrics host cycles (execution) / total icount
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants