RFR: JDK-8213371: GC/C2 abstraction and cleanup to handle custom offset for GC memory accesses
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Nov 6 19:48:01 UTC 2018
Changes in compile.cpp and type.cpp look fine.
I think in memnode.cpp (uint) casts are used to take into account OffsetTop and OffsetBot without explicitly checking
for them. We don't expect OffsetTop here - there assert to check that. But 'off' could be OffsetBot. In line 1706 there
is OffsetBot check but not in line 1737:
http://hg.openjdk.java.net/jdk/jdk/file/0e8084c8cbb7/src/hotspot/share/opto/memnode.cpp#l1737
I think you need to add explicit check OffsetBot for off_beyond_header.
You did that in type.cpp.
Thanks,
Vladimir
On 11/5/18 7:34 AM, Roman Kennke wrote:
> There are a few places in C2 where we need to deal with Shenandoah's
> custom offset to load the forwarding pointer.
>
> This patch:
> - Adds hook and verification to allow GC to flatten/initialize an alias
> type for (e.g.) fwd ptr accesses (btw: the 'to' field in compile.cpp
> around the changed code is unused)
> - in memnode.cpp removes the (unnecessary?) cast from ints to uints
> - in type.cpp, make the offset check more explicit about offset > 0 or
> the two predefined offsets that could be negative.
>
> The latter two are related to the change insofar that they conflict with
> Shenandoah's -8 offset, which would require extra handling without those
> cleanups. Let me know if you want those changes separate.
>
> Testing: hotspot/jtreg:tier1
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8213371
> Webrev:
> http://cr.openjdk.java.net/~rkennke/JDK-8213371/webrev.00/
>
> Can I please get a review?
>
> Roman
>
More information about the hotspot-gc-dev
mailing list