-
Notifications
You must be signed in to change notification settings - Fork 729
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
investigate adding -fno-strict-aliasing
to ppcle builds
#2872
Comments
@pdbain-ibm Since the original issue got closed when the jimage failure was fixed, I've opened this to track the investigation into no-strict-aliasing on p |
Thanks. I have confirmed that we use this option for Linux X86. |
PPC LE Builds already use the option for the bytecodeinterpreter
|
Not sure why the option is only used for the bytecodeinterpreter, but it should be used everywhere. |
Not used for jnicsup.cpp:
|
I chatted with @zl-wang about this. Adding |
I would strongly prefer to see benchmark results with and without. Compilers are relying more and more on strict aliasing for performance and our current code doesn't obey the strict aliasing requirements. I would rather add the option and avoid the long bug tail than try to find every place we've violated strict aliasing. |
@DanHeidinga I will see about benchmarking the VM with Given that jnicsup.cpp currently uses strict aliasing and we haven't seen any bugs since I fixed the aliasing errors, are you suggesting disabling strict aliasing in this file as prophylaxis? @gacholio your thoughts? |
I have no idea what the option does. |
My preference is to enable |
globally as applying to all OMR and OpenJ9 files? |
We should match what's been done on other platforms (notable x) as the code base has not been written with strict aliasing in mind. I was surprised to find we didn't already have it option set. |
Sent test builds for performance testing. The test machines have an earlier version of glibc:
I am rebuilding with what I hope is the correct version of glibc.so. |
Please find performance testing results below(no regressions seen):- LibertyStartupDT-9dev-4way-0-256-qs_Footprint in kb LibertyStartupDT-9dev-4way-0-256-qs_Startup time in ms LibertyStartup-9dev-4way-0-256-qs_Footprint in kb LibertyStartup-9dev-4way-0-256-qs_Startup time in ms LibertyDayTrader3-9dev-4way-LargeThreadPool_Adjusted Single Server Memory LibertyDayTrader3-9dev-4way-LargeThreadPool_Throughput LibertyDayTrader3-9dev-4way-LargeThreadPoolwarm_Adjusted Single Server Memory LibertyDayTrader3-9dev-4way-LargeThreadPoolwarm_Throughput |
Sounds like this should probably be enabled on all gcc compiles. |
Pull request for PPCLE: #3087 |
Working on OMR.
|
Add this option to ARM, PPC linux, and X86 linux. This is related to Issue eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Add this option to ARM, PPC linux, and X86 linux. This is related to Issue eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Add this option to ARM, PPC linux, and X86 linux. This is related to Issue eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Ran a build with preliminary pull request eclipse-omr/omr#3185. |
Add this option to ARM, PPC linux, and X86 linux. Update bot makefiles and cmakefiles. Remove the option from the GC project. This is related to Issue eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Add this option to ARM, PPC linux, and X86 linux. Update both makefiles and cmakefiles. Remove the option from the GC project. This is related to Issue eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Add this option to ARM, PPC linux, and X86 linux. Update both makefiles and cmakefiles. Remove the option from the GC project. This is related to Issue eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
eclipse-omr/omr#3185 is merged. OMR and OpenJ9 now have |
JIT? |
Don't the OMR changes cover the JIT? |
No the JIT does not use the OMR makefiles similar to how they do not use the OpenJ9 makefiles. |
Add the option to the common set and remove from specific platforms. This is part of eclipse-openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Fixes eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Fixes eclipse-openj9/openj9#2872 Signed-off-by: Peter Bain <[email protected]>
Pull request for jitbuilder changes opened: eclipse-omr/omr#3360. Tested in personal build on all platforms. |
The JIT makefiles have been updated. Please close this issue unless there are other components which require changes. |
Thanks @pdbain-ibm |
Pretty sure we build with that option on other platforms. Can you confirm that and then update the makefiles to include the option?
We'll need to do some perf testing on JDK8 (as it has the best perf test coverage) to validate that the adding the option doesn't negatively effect startup, footprint, throughput.
Originally posted by @DanHeidinga in #2788 (comment)
The text was updated successfully, but these errors were encountered: