FEX-Emu / FEX-Emu/FEX

Eliminate adr+str InlineJITBlockHeader

Open
#3,713 0 comments 1 reaction 0 assignees View on GitHub
JIT Performance
Dominant language
C++
Stars
8k
Forks
351
Avg merge
12h 31m
Merged PRs (30d)
102

Description

What is the inlinejitblockheader for exactly?

> It's what we use for RIP reconstruction

Why can't we keep a table of host pc --> guest rip and just look at the regular backtrace?

> Once we support deferring async signals inside the JIT, we can
> I also did some benchmarking to see the overhead for the adr+str and it fell within noise. It's single cycle + single cycle so it is hard to beat

But on my end multiblock sped up bytemark a lot and I don't think DSE is the reason 😉

Tracker for later.

Contributor guide

Open the contributing guide

Research direction

Start by tracing InlineJITBlockHeader and the adr+str sequence used for RIP reconstruction, then compare that path with the proposed host-PC-to-guest-RIP table and regular backtrace. Done would require a settled design that eliminates the header without regressing deferred async-signal support or the reported multiblock benchmark behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.