RFR: 8205694: AArch64: Add test to validate volatile load, store and CAS code generation
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Jun 26 17:23:12 UTC 2018
Hi Andrew,
Small note - all files should have Copyright header. I see only main
test file have one.
Thanks,
Vladimir
On 6/26/18 9:55 AM, Andrew Dinn wrote:
> Reviews are welcome for the following webrev
>
> webrev: http://cr.openjdk.java.net/~adinn/8205694/webrev.00/
> JIRA: https://bugs.openjdk.java.net/browse/JDK-8205694
>
> The patch:
> ----------
>
> This AArch64-only patch adds tests to ensure that volatile load, store
> and CAS operations are either:
>
> translated to correctly replace memory barriers with combinations of
> acquiring loads and releasing
>
> left untransformed with all necessary memory barriers in place
>
> The test requires a debug, aarch64 vm and is disabled if graal is being
> used (debug is necessary because it relies on -XX:+PrintOptoAssembly to
> provide evidence of what is in the compiler output).
>
> The main driver test program creates subordinate JVMs to execute
> subordinate programs which perform:
>
> normal and unsafe volatile loads,
> normal and unsafe volatile stores
> unsafe volatile CASes
>
> in each of 5 GC configurations:
>
> G1
> CMS+CondCardMark
> CMS-CondCardMark
> Parallel
> Serial
>
> Arguments -XXCompileCommand,compileonly and XX:+PrintOptoAssembly are
> used to generate Assembly listings and the driver test program parses
> these to ensure the correct sequences of instructions are generated
> (including omitted memory barriers which are flagged in the output).
>
> A few changes were made to the aarch64.ad file to ensure that the
> PrintOptoAssembly output accurately represented the generated code.
> These were necessary to ensure that the test could be sure that the
> generated code sequences really were what was intended.
>
> Also, some of the comments in aarch64.ad describing the code
> transformation were updated following feedback from Zhongwei Yao that
> arrived too late to get checked in with the fix for JDK-8204331.
>
> Testing:
> --------
>
> The test itself passes when run on an AArch64 debug vm. It is ignored
> when run on an AArch64 product vm.
>
> No other testing is needed. Nothing significant in the aarch64.ad file
> has been modified (only comments of format sequences which have been
> exercised running the new test).
>
> regards,
>
>
> Andrew Dinn
> -----------
> Senior Principal Software Engineer
> Red Hat UK Ltd
> Registered in England and Wales under Company Registration No. 03798903
> Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander
>
More information about the hotspot-compiler-dev
mailing list