Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v4]

2020-11-29 Thread Vladimir Kozlov
> 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. >

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v3]

2020-11-28 Thread Vladimir Kozlov
> 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. >

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v2]

2020-11-28 Thread Aleksey Shipilev
On Wed, 25 Nov 2020 23:35:14 GMT, Vladimir Kozlov 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. >> >>

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v2]

2020-11-28 Thread Aleksey Shipilev
On Sat, 28 Nov 2020 09:43:15 GMT, Aleksey Shipilev wrote: >> Vladimir Kozlov has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains three additional >>

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v2]

2020-11-28 Thread Erik Österlund
On Wed, 25 Nov 2020 23:35:14 GMT, Vladimir Kozlov 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. >> >>

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v2]

2020-11-27 Thread Vladimir Kozlov
On Thu, 26 Nov 2020 13:51:05 GMT, Roman Kennke wrote: >> Vladimir Kozlov has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains three additional >> com

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v2]

2020-11-26 Thread Roman Kennke
On Wed, 25 Nov 2020 23:35:14 GMT, Vladimir Kozlov 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. >> >>

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v2]

2020-11-26 Thread Vladimir Ivanov
On Wed, 25 Nov 2020 23:35:14 GMT, Vladimir Kozlov 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. >> >>

Re: RFR: 8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo [v2]

2020-11-25 Thread Vladimir Kozlov
> 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. >

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

2020-11-25 Thread Vladimir Kozlov
On Wed, 25 Nov 2020 19:52:21 GMT, Aleksey Shipilev wrote: > Your PR have also been bitten by #1427, merge from master to get it fixed. Thanks! I will apply your patch and merge from master latest changes. - PR: https://git.openjdk.java.net/jdk/pull/1425

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

2020-11-25 Thread Aleksey Shipilev
On Wed, 25 Nov 2020 19:48:40 GMT, Aleksey Shipilev wrote: >>> I just pulled the fresh master, applied this patch on top, enabled >>> `_PhantomReference_refersTo0` in `c2compiler.cpp`, and ran >>> `CONF=linux-x86_64-server-fastdebug make images run-test TEST=tier1 >>> TEST_VM_OPTS="-XX:+UseShen

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

2020-11-25 Thread Aleksey Shipilev
On Wed, 25 Nov 2020 17:48:54 GMT, Vladimir Kozlov wrote: > @shipilev 2 new tests added by JDK-8188055 does not trigger C2 compilation. That sounds like a testbug to me! Since this PR adds C2 intrinsics, I thought it is expected that new tests trigger it in default test configs... > You need to

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

2020-11-25 Thread Vladimir Kozlov
On Wed, 25 Nov 2020 18:34:28 GMT, Erik Österlund wrote: >> From this conversation the only change I can do is 'Turn (on_weak || >> on_phantom) into !on_strong'. >> @fisk Is this correct? I am concern that it will include `unknown` decorator >> too. >> I agree with Erik to keep !no_keepalive bec

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

2020-11-25 Thread Erik Österlund
On Wed, 25 Nov 2020 18:07:34 GMT, Vladimir Kozlov wrote: >> I don't think we have any !in_heap && on_weak loads today. But if we did, >> they would indeed need read barriers. >> We need read barrier if the the reference isn't provably strong... unless >> it's an AS_NO_KEEPALIVE access. That als

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

2020-11-25 Thread Vladimir Kozlov
On Wed, 25 Nov 2020 15:13:11 GMT, Erik Österlund wrote: >> src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp line 623: >> >>> 621: // Also we need to add memory barrier to prevent commoning reads >>> 622: // from this field across safepoint since GC can change its value. >>> 623: bool need_rea

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

2020-11-25 Thread Vladimir Kozlov
On Wed, 25 Nov 2020 11:09:05 GMT, Per Liden 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. >> >> Teste

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

2020-11-25 Thread Vladimir Kozlov
On Wed, 25 Nov 2020 11:05:39 GMT, Per Liden 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. >> >> Teste

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

2020-11-25 Thread Vladimir Kozlov
On Wed, 25 Nov 2020 08:18:23 GMT, Vladimir Ivanov wrote: >> 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

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

2020-11-25 Thread Vladimir Kozlov
On Wed, 25 Nov 2020 15:07:21 GMT, Erik Österlund wrote: >> Ok, makes sense. What do you think about making `ZLoadBarrierElided = 0` >> then? > > I'm okay with that. I don't have a strong preference. I also prefer to have ZLoadBarrierElided = 0. I will add it. - PR: https://git.ope

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

2020-11-25 Thread Erik Österlund
On Wed, 25 Nov 2020 08:43:04 GMT, Vladimir Ivanov 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. >> >>

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

2020-11-25 Thread Erik Österlund
On Wed, 25 Nov 2020 10:01:15 GMT, Vladimir Ivanov wrote: >> The information that there was a barrier attached, is implicit in the >> ins_encode block due to it being run at all. In other words, since we >> matched the mach node to our ZGC access instead of a normal access, we >> already know t

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

2020-11-25 Thread Per Liden
On Wed, 25 Nov 2020 03:31:36 GMT, Vladimir Kozlov 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

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

2020-11-25 Thread Per Liden
On Wed, 25 Nov 2020 03:31:36 GMT, Vladimir Kozlov 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

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

2020-11-25 Thread Vladimir Ivanov
On Wed, 25 Nov 2020 09:47:19 GMT, Erik Österlund wrote: >> src/hotspot/cpu/x86/gc/z/z_x86_64.ad line 123: >> >>> 121: >>> 122: ins_encode %{ >>> 123: if (barrier_data() != 0) { // barrier could be elided by >>> ZBarrierSetC2::analyze_dominating_barriers() >> >> Maybe keep a bit reserved

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

2020-11-25 Thread Erik Österlund
On Wed, 25 Nov 2020 08:30:46 GMT, Vladimir Ivanov 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. >> >>

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

2020-11-25 Thread Vladimir Ivanov
On Wed, 25 Nov 2020 03:31:36 GMT, Vladimir Kozlov 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

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

2020-11-25 Thread Aleksey Shipilev
On Wed, 25 Nov 2020 03:31:36 GMT, Vladimir Kozlov 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

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

2020-11-25 Thread Vladimir Ivanov
On Wed, 25 Nov 2020 07:58:42 GMT, Aleksey Shipilev 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. >> >

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

2020-11-25 Thread Aleksey Shipilev
On Wed, 25 Nov 2020 03:31:36 GMT, Vladimir Kozlov 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

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

2020-11-24 Thread Vladimir Kozlov
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 w