RFR: 8331934: [s390x] Add support for primitive array C1 clone intrinsic [v3]

Amit Kumar amitkumar at openjdk.org
Thu May 16 13:26:07 UTC 2024


On Wed, 15 May 2024 09:25:32 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:

>> Adds JDK-8302850 Port for s390x. 
>> 
>> Testing: 
>> 
>> make test TEST="hotspot_compiler" JTREG="JAVA_OPTIONS=-XX:TieredStopAtLevel=1"
>> 
>> ==============================                                                                                                          
>> Test summary                                                                                                                            
>> ==============================                                                                                                          
>>    TEST                                              TOTAL  PASS  FAIL ERROR                                                            
>>    jtreg:test/hotspot/jtreg:hotspot_compiler          1166  1166     0     0                                                            
>> ==============================                                                                                                          
>> TEST SUCCESS
>> 
>> * Tier1 Test with Fast debug build. 
>> 
>> BenchMarking:
>> 
>> 
>> Without Patch: 
>> 
>> Benchmark                 (size)  Mode  Cnt     Score    Error  Units
>> ArrayClone.byteArraycopy       0  avgt   15    10.838 ±  0.461  ns/op
>> ArrayClone.byteArraycopy      10  avgt   15    28.919 ±  1.695  ns/op
>> ArrayClone.byteArraycopy     100  avgt   15    48.815 ±  0.901  ns/op
>> ArrayClone.byteArraycopy    1000  avgt   15   256.357 ±  7.901  ns/op
>> ArrayClone.byteClone           0  avgt   15    90.398 ±  3.119  ns/op
>> ArrayClone.byteClone          10  avgt   15   103.774 ±  4.468  ns/op
>> ArrayClone.byteClone         100  avgt   15   126.628 ±  6.952  ns/op
>> ArrayClone.byteClone        1000  avgt   15   326.409 ± 31.635  ns/op
>> ArrayClone.intArraycopy        0  avgt   15    10.450 ±  0.509  ns/op
>> ArrayClone.intArraycopy       10  avgt   15    36.903 ±  0.753  ns/op
>> ArrayClone.intArraycopy      100  avgt   15    85.964 ±  1.806  ns/op
>> ArrayClone.intArraycopy     1000  avgt   15   841.512 ± 40.335  ns/op
>> ArrayClone.intClone            0  avgt   15    89.332 ±  3.695  ns/op
>> ArrayClone.intClone           10  avgt   15   110.639 ±  2.476  ns/op
>> ArrayClone.intClone          100  avgt   15   195.781 ±  8.622  ns/op
>> ArrayClone.intClone         1000  avgt   15  1058.479 ± 92.468  ns/op
>> Finished running test 'micro:java.lang.ArrayClone'
>> 
>> 
>> with patch:
>> 
>> Benchmark                 (size)  Mode  Cnt    Score    Error  Units
>> ArrayClone.byteArraycopy       0  avgt   15   10.526...
>
> Amit Kumar has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 26 commits:
> 
>  - Merge master
>  - s390x Port
>  - Update src/hotspot/share/c1/c1_GraphBuilder.cpp
>    
>    Co-authored-by: Dean Long <17332032+dean-long at users.noreply.github.com>
>  - Fix assert to only have a single !
>  - Assert type is not interface
>  - Remove whitespace
>  - Expanded testing in TestNullArrayClone
>    
>    * Added byte[] and long[] tests.
>    * Verified that the cloned array has the same contents.
>    * Increase number of iterations reach tier 3 threshold.
>  - Update src/hotspot/share/c1/c1_GraphBuilder.cpp
>    
>    Co-authored-by: Boris <42576543+bulasevich at users.noreply.github.com>
>  - Added test summary
>  - Use vmIntrinsics instead of vmIntrinsicID
>  - ... and 16 more: https://git.openjdk.org/jdk/compare/2f10a316...865de5ba

Result from the LPAR: 


without patch:
Benchmark                 (size)  Mode  Cnt    Score   Error  Units
ArrayClone.byteArraycopy       0  avgt   15    4.021 ± 0.032  ns/op
ArrayClone.byteArraycopy      10  avgt   15   15.931 ± 0.171  ns/op
ArrayClone.byteArraycopy     100  avgt   15   16.201 ± 0.076  ns/op
ArrayClone.byteArraycopy    1000  avgt   15   45.268 ± 0.213  ns/op
ArrayClone.byteClone           0  avgt   15   70.300 ± 0.244  ns/op
ArrayClone.byteClone          10  avgt   15   77.112 ± 0.558  ns/op
ArrayClone.byteClone         100  avgt   15   79.860 ± 0.606  ns/op
ArrayClone.byteClone        1000  avgt   15  112.834 ± 0.526  ns/op
ArrayClone.intArraycopy        0  avgt   15    4.007 ± 0.012  ns/op
ArrayClone.intArraycopy       10  avgt   15   15.378 ± 0.055  ns/op
ArrayClone.intArraycopy      100  avgt   15   25.387 ± 0.102  ns/op
ArrayClone.intArraycopy     1000  avgt   15  161.278 ± 0.719  ns/op
ArrayClone.intClone            0  avgt   15   70.341 ± 0.265  ns/op
ArrayClone.intClone           10  avgt   15   78.209 ± 0.514  ns/op
ArrayClone.intClone          100  avgt   15   89.845 ± 0.571  ns/op
ArrayClone.intClone         1000  avgt   15  257.037 ± 2.809  ns/op
Finished running test 'micro:java.lang.ArrayClone'




with patch: 
Benchmark                 (size)  Mode  Cnt    Score   Error  Units
ArrayClone.byteArraycopy       0  avgt   15    4.021 ± 0.027  ns/op
ArrayClone.byteArraycopy      10  avgt   15   16.106 ± 0.859  ns/op
ArrayClone.byteArraycopy     100  avgt   15   16.212 ± 0.045  ns/op
ArrayClone.byteArraycopy    1000  avgt   15   45.147 ± 0.137  ns/op
ArrayClone.byteClone           0  avgt   15    3.570 ± 0.010  ns/op
ArrayClone.byteClone          10  avgt   15    6.033 ± 0.018  ns/op
ArrayClone.byteClone         100  avgt   15    6.868 ± 0.020  ns/op
ArrayClone.byteClone        1000  avgt   15   33.437 ± 0.114  ns/op
ArrayClone.intArraycopy        0  avgt   15    4.008 ± 0.010  ns/op
ArrayClone.intArraycopy       10  avgt   15   15.373 ± 0.044  ns/op
ArrayClone.intArraycopy      100  avgt   15   29.543 ± 3.687  ns/op
ArrayClone.intArraycopy     1000  avgt   15  161.554 ± 0.414  ns/op
ArrayClone.intClone            0  avgt   15    3.571 ± 0.010  ns/op
ArrayClone.intClone           10  avgt   15    6.184 ± 0.016  ns/op
ArrayClone.intClone          100  avgt   15   13.304 ± 0.043  ns/op
ArrayClone.intClone         1000  avgt   15  133.755 ± 0.362  ns/op
Finished running test 'micro:java.lang.ArrayClone'

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

PR Comment: https://git.openjdk.org/jdk/pull/19220#issuecomment-2115237059


More information about the hotspot-compiler-dev mailing list