-
Notifications
You must be signed in to change notification settings - Fork 767
(0.46.0) Improve x86 inline object allocations #19600
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… enabled Separates the notion of batch clearing from dual TLH on x86. Assumes batch clearing is enabled via the TR_EnableBatchClear environment variable. Signed-off-by: Daryl Maier <[email protected]>
Signed-off-by: Daryl Maier <[email protected]>
* Add an environment variable TR_DisableAllocationAlignment that disables cache line alignment of newly allocated objects * Guard inline TLH prefetching code with CodeGenerator TLH prefetch enablement check Signed-off-by: Daryl Maier <[email protected]>
In some cases, 64-bit comparisons were used which were inadvertently forcing the out-of-line allocation path to be taken. This was still functionally correct, but poor for performance. Ensure a 32-bit comparison is used. Signed-off-by: Daryl Maier <[email protected]>
No longer set nor used anywhere in OMR or OpenJ9. Signed-off-by: Daryl Maier <[email protected]>
The code has been disabled on Power for many years. On x86, its performance was evaluated recently on modern Intel architectures and found to be detrimental ito performance on allocation-intensive workloads. The code is no longer useful and adds to technical debt, so remove it. Signed-off-by: Daryl Maier <[email protected]>
Signed-off-by: Daryl Maier <[email protected]>
Signed-off-by: Daryl Maier <[email protected]>
This improves readability and code density of the inline allocation sequence. Signed-off-by: Daryl Maier <[email protected]>
This improves readability and code density. Signed-off-by: Daryl Maier <[email protected]>
* Remove dead code * Rename genZeroInitObject|genZeroInitObject2 to genZeroInitEntireObject|genZeroInitEntireObject2 for clarity of purpose Signed-off-by: Daryl Maier <[email protected]>
* Create a convenience function insertAllocationPrefetch() for inserting prefetches * Rename genHeapAlloc2 to genHeapAllocNoArraylets * Rename genHeapAlloc to genHeapAllocForDiscontiguousArraysOrRealtime * Rename some variables for clarity * Misc dead code removal and reformatting Signed-off-by: Daryl Maier <[email protected]>
Signed-off-by: Daryl Maier <[email protected]>
* Distinguish between "arraylet" and "hybrid arraylet" in naming where appropriate * Various refactorings for readability and code density * Eliminate obsolete comments Signed-off-by: Daryl Maier <[email protected]>
Avoid REP STOS zero initialization for arrays whose length is below a prescribed threshold checked at runtime. Use faster GPR stores instead. Move REP STOS initialization out of line. Signed-off-by: Daryl Maier <[email protected]>
If an anewarray allocation must be performed out-of-line, be sure to call the NoZeroInit version if zero initialization can be avoided. Signed-off-by: Daryl Maier <[email protected]>
@vijaysun-omr : please review/merge |
Merging this change that was delivered to the head stream a couple of days back. @pshipton FYI. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Port of #19514