-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mono][interp] Remove short branches #105386
Conversation
…sets Previously they were all short branches without long counterparts. This was buggy and awkward because we tried to compute early conservatively whether a branch is short or long, at superins generation time. The conditions would always hold and we had no fallback if the branch didn't turn out to actually be short. Having a long offset for these branches should have negligible perf impact.
…pass We generate superins without caring if the branch is long or short since the superinstructions use a long offset now.
Tagging subscribers to this area: @BrzVlad, @kotlarmilos |
057e2bd
to
6a54c14
Compare
a519562
to
ea69694
Compare
They don't seem to have any benefit at the expense of a lot of code and added complexity.
ea69694
to
17ed1c3
Compare
@kg It wouldn't hurt to take another look at this, just in case by deleting some of the long short opcodes I'm accidentally breaking generation of some traces. The microbenchmarks should show something anyway if that is the case though. |
I'll take a look at the stats on browser-bench, and it should show up in microbenchmarks for sure. Thanks for pushing this across the finish line :) |
This reverts commit ac89819.
They don't really seem to have perf benefits, at the expense of quite a bit of implementation cost with existing issues that are awkward to fix.