GH-135904: Improve the JIT's performance on macOS #136528
Open
+73
−61
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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).