Improve x86 inline object allocations
- Misc. x86 allocation path improvements
- Remove obsolete TR_EnableNewAllocationProfiling code
- Misc. x86 allocation path improvements
- Cleanup x86 object initialization path
- Move x86 inlined allocation verification out of line
- Move off-heap dataAddr allocation into a separate function
- Use ScratchRegisterManager in x86 inline allocations
- Misc. code cleanup for readability
- Remove allocated object cache line alignment code on Power and x86
- Remove deprecated shouldAlignTLHAlloc() checks on TR::Nodes
- Compare variable array sizes as 32-bits for x86 inline allocations
- Add knobs to disable x86 object allocation features
- Misc. readability and formatting improvements to x86 inline allocation
- Perform zero initialization of TLH objects when batch clearing enabled
Jenkins test sanity.functional,sanity.openjdk xlinux,win jdk21
Jenkins test sanity.functional,sanity.openjdk xlinux,win jdk21
I think this PR build filled the xlinux machines with cores and took them offline.
I had reviewed this before, but added one more minor comment/request. I have also asked @ymanton to review this change and will consider a merge after you reply to the comment and Younes gives his review approval.
Jenkins compile xlinux jdk17
Jenkins test sanity.functional,sanity.openjdk xlinux,win jdk21
I'll wait for @ymanton to formally approve this, and the checks to pass, before I merge.
Since we want to keep all codegens aware of key changes in one, I thought I'd mention @zl-wang @r30shah and @knn-k here so that they can consider whatever feels relevant to their platforms
Going to take a look at this today. Tagging @ehsankianifar as he is working on fixing the issue we are seeing on Z.
The bulk of the work in this PR addresses technical debt issues, as this code became very difficult to understand and make changes to over time. The code was refactored, dead code eliminated, comments added, more meaningful variable and function names created, etc. Hopefully it is in a better state now.
In terms of pure enhancements, the main contribution was to improve the performance of zero initializing shorter arrays with better instruction sequences, and providing knobs to turn off features like TLH prefetching.