[aarch64-port-dev ] RFR: AArch64: incorrect code generation for StoreCM

Andrew Dinn adinn at redhat.com
Wed Jul 4 09:31:31 UTC 2018


Hi Zhongwei,

Thank you for your review.

On 04/07/18 08:17, Zhongwei Yao wrote:
> I find a typo in the TestVolatiles.java file: it uses
> "CMSCondCardMark" in checkstore() and checkcas() but the testType is
> past as "CMSCondMark". It leads to "CMSCondCardMark" case not tested.

Yes, indeed. Thanks for catching that.

> And the condition in aarch64.ad:2871 (patched)
>   UseConcMarkSweepGC || !UseCondCardMark
> should be "UseConcMarkSweepGC && !UseCondCardMark", right? (It could
> be catched if the previous typo is fixed).

Doh, once again thanks. The current heat wave in the UK is clearly
making my logic circuits execute some invalid boolean reductions.

Applying the first fix to the test code led to a failure for
TestVolatilesCMSCondMark as you described.

Applying the second fix to aarch64.ad restores all tests to working
correctly.

An updated webrev against the latest jdk11 is available here

  http://cr.openjdk.java.net/~adinn/8206163/webrev.01/

> I'm thinking whether it is OK to replace "stlr; dmb ishst; strb" with
> "stlr; strlb" when we using CMS without conditional card marking.
> What do you think?

Yes, that does look better. However, I would prefer to implement that as
a separate fix if that is ok. I'd like to have a correct version checked
in before we try to implement an optimized version.

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