Possible subtle memory model error in ClassValue

Andrew Dinn adinn at redhat.com
Wed Aug 12 09:08:54 UTC 2020

On 11/08/2020 18:06, Hans Boehm wrote:
> I think the relevant statement is:
> "An address dependency between two reads generated by SVE vector load
> instructions does not contribute to the Dependency-ordered-before relation."
> This is only an issue if BOTH loads are SVE loads. In particular
> reference loads have to be vectorized for this to matter, which I expect
> is not the common situation. I have not explored this in great detail,
> but it should suffice to put fences between two dependent vector
> reference loads, and between a reference load and a dependent final
> field load.
Hmm, so this might perhaps be an issue with something like a deep copy
of an int[][], where loading of successive int[] references might be
vectorized using SVE instructions and processing of the contents of each
referenced int[] might also be similarly vectorized. In that case the
loading of the int contents would need to be ordered wrt the load of the
int[] references using a LoadLoad barrier?


Andrew Dinn
Red Hat Distinguished Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill

More information about the core-libs-dev mailing list