RFR(M): 8210887: Tweak C2 gc api for arraycopy

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Sep 28 23:22:08 UTC 2018


This version passed clean!

Thanks,
Vladimir

On 9/28/18 2:06 AM, Roland Westrelin wrote:
> 
>> gc/epsilon/TestManyThreads.java test failed on SPARC
>> I add information and replay file to bug report.
> 
> Thanks for the test result. The fix is:
> 
> diff --git a/src/hotspot/share/opto/arraycopynode.cpp b/src/hotspot/share/opto/arraycopynode.cpp
> --- a/src/hotspot/share/opto/arraycopynode.cpp
> +++ b/src/hotspot/share/opto/arraycopynode.cpp
> @@ -422,7 +422,8 @@
>       Node *start_mem_dest = mm->memory_at(alias_idx_dest);
>       Node* mem = start_mem_dest;
>   
> -    assert(copy_type != T_OBJECT, "only tightly coupled allocations for object arrays");
> +    BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
> +    assert(copy_type != T_OBJECT || !bs->array_copy_requires_gc_barriers(false, T_OBJECT, false, BarrierSetC2::Optimization), "only tightly coupled allocations for object arrays");
>       bool same_alias = (alias_idx_src == alias_idx_dest);
>   
>       if (count > 0) {
> 
> 
> New webrev:
> 
> http://cr.openjdk.java.net/~roland/8210887/webrev.02/
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list