RFR: 8329597: C2: Intrinsify Reference.clear [v9]

Aleksey Shipilev shade at openjdk.org
Tue Oct 15 11:07:34 UTC 2024


On Tue, 15 Oct 2024 10:02:15 GMT, Yudi Zheng <yzheng at openjdk.org> wrote:

>> Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 18 commits:
>> 
>>  - Simplify: just do keep alive checks
>>  - Merge branch 'master' into JDK-8329597-intrinsify-reference-clear
>>  - More precise bit-unmasks
>>  - Reconcile with late barrier expansion in G1
>>  - Merge branch 'master' into JDK-8329597-intrinsify-reference-clear
>>  - Review comments
>>  - Merge branch 'master' into JDK-8329597-intrinsify-reference-clear
>>  - Also dispatch to slow-path on other arches
>>  - Fix other arches
>>  - Tighten up comments in Reference javadoc
>>  - ... and 8 more: https://git.openjdk.org/jdk/compare/580eb62d...9f7ad7ab
>
> src/hotspot/share/gc/z/zBarrierSetRuntime.hpp line 43:
> 
>> 41:   static void store_barrier_on_oop_field_with_healing(oop* p);
>> 42:   static void store_barrier_on_oop_field_without_healing(oop* p);
>> 43:   static void no_keepalive_store_barrier_on_oop_field_without_healing(oop* p);
> 
> Could you please export this to JVMCI? I.e.,
> 
> diff --git a/src/hotspot/share/jvmci/vmStructs_jvmci.cpp b/src/hotspot/share/jvmci/vmStructs_jvmci.cpp
> index 5452cca96b8..46aeb996c56 100644
> --- a/src/hotspot/share/jvmci/vmStructs_jvmci.cpp
> +++ b/src/hotspot/share/jvmci/vmStructs_jvmci.cpp
> @@ -847,6 +847,7 @@
>    ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded_store_good))           \
>    ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::no_keepalive_load_barrier_on_weak_oop_field_preloaded))    \
>    ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::no_keepalive_load_barrier_on_phantom_oop_field_preloaded)) \
> +  ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::no_keepalive_store_barrier_on_oop_field_without_healing)   \
>    ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::store_barrier_on_native_oop_field_without_healing))        \
>    ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::store_barrier_on_oop_field_with_healing))                  \
>    ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::store_barrier_on_oop_field_without_healing))               \
> 
> Thanks!

Done!

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20139#discussion_r1800937787


More information about the hotspot-dev mailing list