Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
GH-135904: Improve the JIT's performance on macOS#136528
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This is amazing! I can't review it, but thanks for all your assembler wizardry on this. |
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.
Thanks. The PR looks great, thanks for making the JIT so much clearer to reason about.
3d8c38f
intopython:mainUh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
This PR makes a couple of minor tweaks to the JIT that result in 1.7% faster performance on macOS overall:
nop
. Instead, don't pad any stencils, and just align the data when it's compiled. 🤦🏼;
as instructions. By recognizing these commented lines, we can remove more zero-length jumps at the end of stencils. 🤦🏼_JIT_CONTINUE
label) as a "local" label, which allows the assembler to resolve it at compile time and encode it more efficiently. There's a special (platform-dependent) prefix to signal this._JIT_CONTINUE
,_JIT_ERROR_TARGET
, and_JIT_JUMP_TARGET
) asextern
symbols, just declare them as local functions. This results in more efficient jumps (and also allows us to remove a somewhat hacky pre-processing step for the textual assembly on Windows to force these efficient jumps).