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
JitArm64: FIFO optimization improvements #10046
JitArm64: FIFO optimization improvements #10046
Conversation
e1046a4
to
1550689
Compare
|
I pulled this PR and rebased on master upstream |
0129a58
to
4f4ba0d
Compare
|
Hope this isn’t annoying. Going through old PR’s with these numbers. Figured out a jank way to measure frame times while I do other things. No real changes here. Apple M1, f-zero intro and a few seconds of game play.
|
4f4ba0d
to
6ff98fc
Compare
JitArm64 port of 789975e.
6ff98fc
to
77540f2
Compare
| @@ -806,6 +850,12 @@ bool JitArm64::DoJit(u32 em_address, JitBlock* b, u32 nextPC) | |||
| gpr.Start(js.gpa); | |||
| fpr.Start(js.fpa); | |||
|
|
|||
| if (js.noSpeculativeConstantsAddresses.find(js.blockStart) == | |||
| js.noSpeculativeConstantsAddresses.end()) | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C++20 has unordered_set::contains which might be easier to read (though it probably has no performance difference). (The same applies to the x64 JIT.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I'd prefer to do it like this for now and then move them over all at once. (This isn't the first place in JitArm64 where we're using this idiom.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's fine. (I also noticed that the x64 JIT uses camelCase in its IntializeSpeculativeConstants, which is something that can be fixed elsewhere).
Maybe "tail call" isn't quite the right term for what this code is doing, since it's jumping to the dispatcher rather than returning, but it's the same optimization as for a tail call.
77540f2
to
351d095
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Untested, but looks good to me as a port of #4123.
JitArm64 port of PR #4123.