RFR: JDK-8209667: Explicit barriers for C1/LIR
Erik Österlund
erik.osterlund at oracle.com
Mon Aug 20 13:23:19 UTC 2018
Hi Roman,
Looks good in general. A few minor things though:
1) I think IN_HEAP should be removed from the access_resolve callsites
(because IN_HEAP is for differentiating if an access hits inside or
outside of the heap, and this is seemingly orthogonal).
2) I see you used the LIRAccess object to wrap the context of the
resolution. However, in this case since this is not an access, this
seems to cause more trouble than it solves. The only parameters that
apply is the address (which could be represented with a LIROpr), and the
decorators. So I think I would just pass those two parameters around in
the BarrierSetC1 backend, instead of passing around the baked LIRAccess
object with dummy parameters.
3) What do you need the CodeEmitInfo parameter for? It doesn't seem to
be used anywhere. Or is it?
Thanks,
/Erik
On 2018-08-19 20:20, Roman Kennke wrote:
> I am x-posting this to hotspot-gc-dev and hotspot-compiler-dev because
> it touches both.
>
> In order to support GCs like Shenandoah, we need some explicit read- or
> write-barriers in a few places. We already introduced them in the
> runtime and interpreter, this change intends to do the same for C1 (at
> least the LIR part, will followup with a few C1/assembly ones soon).
>
> The places are based on a few years of Shenandoah development experience
> and are:
> - CRC32 intrinsics
> - vectorizedMismatch intrinsic
> - NIOCheckIndex instrinc
>
> The barriers are created via the BarrierSetC1 API, which is a no-op by
> default. Similar to what we did with interpreter, it allows to pass
> ACCESS_READ and/or ACCESS_WRITE to it to indicate the required strength
> of the barrier. Also, similar to what we did in interpreter, this
> defaults to ACCESS_READ|ACCESS_WRITE if no such strength indicator is
> passed, i.e. the maximum strength.
>
> Webrev:
> http://cr.openjdk.java.net/~rkennke/JDK-8209667/webrev.00/
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8209667
>
> Testing: hotspot/tier1 locally
>
> Can I please get a review?
> Thank you,
> Roman
More information about the hotspot-compiler-dev
mailing list