RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo

Aleksey Shipilev shade at openjdk.java.net
Wed Nov 25 08:01:03 UTC 2020


On Wed, 25 Nov 2020 03:31:36 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> JDK-8188055 added the function Reference.refersTo. For performance, the supporting native methods Reference.refersTo0 and PhantomReference.refersTo0 should be intrinsified by C2.
> 
> Initial patch was prepared by @fisk.
> 
> Tested hs-tier1-4. Added new compiler tests to test intrinsics.
> 
> Ran new test with Shenandoah. Found only one issue. As result I disable  PhantomReference::refersTo intrinsic for COOP+ Shenandoah combination. Someone from Shenandoah team have to test changes if that is enough.

src/hotspot/share/opto/c2compiler.cpp line 476:

> 474:     if (UseCompressedOops && UseShenandoahGC) return false;
> 475: #endif
> 476:     break;

Is this intended to disable the intrinsic on all non-64-bit platforms? Is that only for Shenandoah 64-bit? I wonder if it should just be:

  case vmIntrinsics::_PhantomReference_refersTo0:
    if (UseCompressedOops && UseShenandoahGC) return false;
    break;

-------------

PR: https://git.openjdk.java.net/jdk/pull/1425


More information about the core-libs-dev mailing list