RFR(S): 8087341: C2 doesn't optimize redundant memory operations with G1

Andrew Dinn adinn at redhat.com
Wed Feb 10 09:24:50 UTC 2016

Hi Roland,

On 29/01/16 13:27, Roland Westrelin wrote:
>> I think this looks ok -- not sure until I try it out. However, I /am/
>> fairly sure it is going to cause a problem for the AArch64 code which
>> optimizes volatile loads and stores. That's because it change the
>> characteristic shape of the subgraph searched for by the predicates
>> which decide whether to i) generate loads + membars or ii) plant stlr or
>> ladr instructions.
>> I'll look into this asap.
> Thanks for looking at this. I’ll wait to hear back from you until I move forward with this change.

Apologies for the delay in getting back to you on this -- due first to
FOSDEM and then falling sick.

This patch breaks the AArch64 C2 code to optimize volatile stores for
the expected cases:

  1) +G1GC
  2) +ConcMarkSweepGC + CondCardMark

I believe it can be fixed but I have not yet identified the required
code changes.


Andrew Dinn
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in UK and Wales under Company Registration No. 3798903
Directors: Michael Cunningham (US), Michael O'Neill (Ireland), Paul
Argiry (US)

More information about the hotspot-compiler-dev mailing list