-
Notifications
You must be signed in to change notification settings - Fork 396
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
GRA changes to reduce JIT overhead at warm opt levels #7216
Conversation
@@ -2952,42 +2672,77 @@ void TR_GlobalRegisterAllocator::offerAllAutosAndRegisterParmAsCandidates(TR::Bl | |||
interestedBlocks.set(block->getNumber()); | |||
} | |||
|
|||
// This first part isn't really looking for If-Then-Else candidates. |
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 we should delete this line
// This first part isn't really looking for If-Then-Else candidates.
since it does not really belong anymore.
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.
Done.
Looks okay to me otherwise. My only suggestion would be to run some proactive personal testing since there is a significant change in how global register candidates are chosen with this change. |
sanity.functional on x86 is passing: https://openj9-jenkins.osuosl.org/job/Test_openjdk17_j9_sanity.functional_x86-64_linux_Personal/458/ |
sanity functional on all the other platforms has the following problems which may not be due to these changes:
On windows, the build failed due to infra: https://openj9-jenkins.osuosl.org/job/Build_JDK17_x86-64_windows_Personal/974/
Link to all tests: https://openj9-jenkins.osuosl.org/job/Pipeline-Build-Test-Personal/477/ |
system.functional tests pass on all platforms. Link: https://openj9-jenkins.osuosl.org/job/Pipeline-Build-Test-Personal/478/ |
The commit introduces a new option -Xjit:graFreqThresholdAtWarm=<NNN> that can be used to control the JIT overhead for compilations performed at warm optimization level or below. The default value of the threshold is 500. A larger value leads to lower JIT overhead but also to potentially lower quality of the generated code. For hot compilations or in situations where we think we can afford more JIT overhead, the threshold is automatically set to 0. Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
The latest push deletes some comment as suggested in the code review. |
Latest round of testing with extended.functional and extended.system (https://openj9-jenkins.osuosl.org/job/Pipeline-Build-Test-Personal/479/) succeeded on aarch64_mac, ppc64_aix, plinux and had the following issues: aarch64_linux failed the build due to infra
zlinux had a similar build issue:
x86-64_mac had a similar build issue
win64 had a similar build issue:
xlinux had a trimeout on the crypto tests (part of extended.functional)
|
OpenJ9 tests sanity.functional, system.functional, extended.functional and extended.system seem to pass on multiple platforms when not affected by infra problems (see links above). Thus I think this PR is ready to be delivered. |
The commit introduces a new option -Xjit:graFreqThresholdAtWarm= that can be used to control the JIT overhead for compilations performed at warm optimization level or below. The default value of the threshold is 500. A larger value leads to lower JIT overhead but also to potentially lower quality of the generated code. For hot compilations or in situations where we think we can afford more JIT overhead, the threshold is automatically set to 0.