[aarch64-port-dev ] RFR: backport volatile put/get and CAS optimization to JDK8
Andrew Dinn
adinn at redhat.com
Mon Oct 12 13:20:55 UTC 2015
I am reposting this patch against jdk8 for review with a caveat
regarding use of the webrev.
[briefly:
I have stumbled into some weird behaviour in diff which causes it to
report some non-existent differences; which means the webrev is slightly
misleading as regards changes to file aarch64.ad
diff was confused by the insertion of about 900 lines of ad rule
predicates at line 960 of aarch64.ad. As a result it goes on to report
some spurious differences in the pipe_class definitions between the old
and new checkin version. The misleading reports conflate unchanged lines
found in the sections from from the first pipe_class definition up to
the start of the INSTRUCTIONS section with real changes adding add
predicates to the rules matching LoadX and StoreX patterns.
Luckily, these spurious changes are not reported in the hg changeset.
So, it can be used to identify the changes actually made.
]
So, could two AArch64 reviewers please review this fix using the change
set embedded in the webrev to identify the changes to aarch64.ad:
http://cr.openjdk.java.net/~adinn/jdk8volcasopt/webrev.00/hotspot.changeset
The changes to other files can be still be viewed by referring to the
webrev (or you can just stick with the webrev).
Thanks.
regards,
Andrew Dinn
-----------
On 08/10/15 17:11, Andrew Dinn wrote:
> Here is a webrev against the latest aarch64-port-dev/jdk8/hotspot for
> review:
>
> http://cr.openjdk.java.net/~adinn/jdk8volcasopt/webrev.00
>
> It backports the jdk9-aarch64 optimizations which use ldar and stlr for
> volatile gets and puts and unsafe CAS operations to jdk8-aarch64
>
> So far, I have tested it (successfully) by eyeballing generated code for
> some hand cranked tests that use volatiles and CASes in all 5 relevant
> GC configurations (see below ***) and also running by netbeans and
> eyeballing generated hash table code.
>
> I am currently running jcstress to fully test it on a Mustang in all GC
> configs.
>
> Ed, would you be able to check that jcstress works fine on other hardware?
>
> *** GC configs are
> -XX:+UseConcMarkSweepGC -XX:+UseCondCardMark
> -XX:+UseConcMarkSweepGC -XX:-UseCondCardMark
> -XX:+UseG1GC
> -XX:+UseParallelGC -XX:+UseCondCardMark
> -XX:+UseParallelGC -XX:-UseCondCardMark
>
> regards,
>
>
> Andrew Dinn
> -----------
More information about the aarch64-port-dev
mailing list