-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8271128: InlineIntrinsics support for 32-bit ARM #4927
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
Conversation
|
👋 Welcome back cgo! A progress list of the required criteria for merging this PR into |
|
/cc hotspot-runtime |
|
@mychris |
Webrevs
|
shipilev
left a comment
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.
This looks okay to me, but I think hotspot-tier1 testing is inadequate for this. Please run at least full tier1, which should include JDK tests for java.lang.Math.
|
Sorry, I forgot to mention this. |
|
|
Thanks, we are good then.
This is pre-existing, right? Meaning, it is not worse with this PR? |
Yes, this PR doesn't change anything. The test case also uses the |
shipilev
left a comment
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.
Good to go then.
|
@mychris This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be: You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 17 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@shipilev) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
|
Thanks for the review Aleksey, very much appreciated. |
|
Sorry for not catching this earlier, but I think |
* master: (97 commits)
8270903: sun.net.httpserver.HttpConnection: Improve toString
8271722: [TESTBUG] gc/g1/TestMixedGCLiveThreshold.java can fail if G1 Full GC uses >1 workers
8270058: Use Objects.check{Index,FromIndexSize} for java.desktop
4819544: SwingSet2 JTable Demo throws NullPointerException
8271878: UnProblemList jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java in JDK18
8271895: UnProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK18
8271863: ProblemList serviceability/sa/TestJmapCore.java on linux-x64 with ZGC
8271898: disable os.release_multi_mappings_vm on macOS-X64
8271893: mark hotspot runtime/PerfMemDestroy/PerfMemDestroy.java test as ignoring external VM flags
8271887: mark hotspot runtime/CDSCompressedKPtrs tests which ignore external VM flags
8271891: mark hotspot runtime/Safepoint tests which ignore external VM flags
8271886: mark hotspot runtime/InvocationTests tests which ignore external VM flags
8271890: mark hotspot runtime/Dictionary tests which ignore external VM flags
8271894: ProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK17
8271888: build error after JDK-8271599
8271456: Avoid looking up standard charsets in "java.desktop" module
8271589: fatal error with variable shift count integer rotate operation.
8271599: Javadoc of floorDiv() and floorMod() families is inaccurate in some places
8271877: ProblemList jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java in JDK17
8271217: Fix race between G1PeriodicGCTask checks and GC request
...
I chose that name because of the aarch64 implementation, which uses the same name (but doesn't generate calls for neither |
Thanks, that looks better. |
Sorry, should have seen this myself. |
shipilev
left a comment
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'd prefer use_runtime_function to be called use_runtime_call, but this is fine as well. I can sponsor this for you.
Done.
Thanks, I guess I have to integrate again? /integrate |
|
Yup, I'll wait for GHA to clear the ARM build, and then sponsor. |
|
ARM builds are clean. /sponsor |
|
Going to push as commit b6a19f1.
Your commit was automatically rebased without conflicts. |
Hi,
please review this patch, which adds support for InlineIntrinsics to the 32-bit ARM port. The old aarch32 port had this intrinsic implemented and enabled by default.
Like on many other platforms, the 32-bit ARM port simply calls into the
SharedRuntimeto intrinsify the basicjava.lang.Mathmethods. InlineIntrinsics is already implemented for C1 on 32-bit ARM, which does the same thing.testing: hotspot tier1 on ARMv5TE (soft-float) and ARMv7-A (hard-float)
There is already the micro benchmark
test/micro/org/openjdk/bench/java/lang/MathBench.javawhich I used. The soft-float benchmarks are not that meaningful, since I performed them in QEMU.hard-float
-Xint -XX:+InlineIntrinsicshard-float
-Xint -XX:-InlineIntrinsicssoft-float
-Xint -XX:+InlineIntrinsicssoft-float
-Xint -XX:-InlineIntrinsicsProgress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/4927/head:pull/4927$ git checkout pull/4927Update a local copy of the PR:
$ git checkout pull/4927$ git pull https://git.openjdk.java.net/jdk pull/4927/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 4927View PR using the GUI difftool:
$ git pr show -t 4927Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/4927.diff