RFR (L): JDK-8014786: Cleaning up the split code in the register allocator of C2

Christian Thalinger christian.thalinger at oracle.com
Thu May 23 15:13:59 PDT 2013


On May 17, 2013, at 5:03 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:

> On 5/17/13 4:37 PM, Niclas Adlertz wrote:
>> Hi all.
>> 
>> I've been trying to refactor and cleanup the split code currently located at src/share/vm/opto/reg_split.cpp. Here is the result of that.
>> This fix also fixes bugs https://jbs.oracle.com/bugs/browse/JDK-8005956 and https://jbs.oracle.com/bugs/browse/JDK-8013830.
>> The first bug is resolved by removing rematerialization of reaches to phi nodes.
> 
> Can the fix be done separate from clean up to make sure it is the cause of regression?
> The main part of changes is renaming. It would be nice to push it separate because it is hard to see the fix and other changes.
> It will also help bugs tail analysis.
> 
> I would suggest to do it next steps as separate changes:
> 
> 1. Make bugs fix first.
> 2. Variables and methods renaming: lrgs --> live_ranges and others.
> 3. Make changes in reg_split.cpp without renaming - we can't do review of current changes in split.cpp. Why you need to rename it?
> 
> In general, do not make changes which are hard to review.

I concur.  Please split the patches as Vladimir suggested.  It will make your life after the bugfix easier :-)

-- Chris

> 
> And you can ignore jetstream results - they are not reliable.
> I also surprise that your stdev is so small.
> 
> Thanks,
> Vladimir
> 
>> This comes with a slight performance degradation [0]. However, since this rematerialization is causing JVM crashes, I would say it's worth it.
>> 
>> When reviewing this fix, please use the existing reg_split.cpp found at src/share/vm/opto/reg_split.cpp as a reference.
>> 
>> JBS: https://jbs.oracle.com/bugs/browse/JDK-8014786
>> WEBREV: http://cr.openjdk.java.net/~adlertz/JDK-8014786/webrev00/
>> 
>> Kind Regards,
>> Niclas Adlertz
>> 
>> [0] Results from refworkload on 1) x64 Linux and 2) SPARCV9 Solaris.
>> Baseline and fix with 12 iterations each.
>> 
>> 1) x64 Linux
>> ============================================================================
>> refworkload_base: reference_server
>>   Benchmark         Samples        Mean     Stdev
>>   jetstream              12      185.27      0.03
>>     Write                12       71.42      0.04
>>     Parse                12       67.92      0.03
>>     Read                 12       17.25      0.10
>>     Copy                 12      102.17      0.02
>>   scimark                12     1438.69      0.00
>>     LU                   12     3213.92      0.01
>>     FFT                  12      211.00      0.02
>>     Monte                12      827.71      0.01
>>     SOR                  12     1365.90      0.00
>>     Sparse               12     1574.90      0.01
>>   specjbb2000            12   493245.44      0.00
>>     Last_Warehouse       12   493245.44      0.00
>>     First_Warehouse      12   118938.86      0.00
>>   specjbb2005            12   179117.61      0.00
>>     last                 12   179117.61      0.00
>>     interval_average     12    10536.25      0.00
>>     peak                 12   184040.52      0.01
>>     overall_average      12   164733.22      0.01
>>     last_warehouse       12        8.00      0.00
>>     peak_warehouse       12        4.25      0.11
>>     first                12    63494.80      0.00
>>   specjvm98              12     1020.02      0.01
>>     compress             12      817.54      0.00
>>     javac                12      598.70      0.01
>>     db                   12      407.37      0.02
>>     jack                 12     1299.66      0.03
>>     mtrt                 12     2904.37      0.02
>>     jess                 12     1089.06      0.02
>>     mpegaudio            12     1402.48      0.00
>>   volano25               12   183768.67      0.04
>>     time                 12        4.36      0.04
>>     connections          12      400.00      0.00
>>   --------------------------------------------------------------------------
>>   Weighted Geomean             23543.18
>> ============================================================================
>> refworkload_new: reference_server
>>   Benchmark         Samples        Mean     Stdev   %Diff    P   Significant
>>   jetstream              12      185.36      0.04    0.05 0.972            *
>>     Write                12       71.50      0.04   -0.12 0.939            *
>>     Parse                12       68.25      0.03   -0.49 0.720            *
>>     Read                 12       17.42      0.16   -0.97 0.858            *
>>     Copy                 12      101.25      0.01    0.90 0.173            *
>>   scimark                12     1439.00      0.00    0.02 0.883            *
>>     LU                   12     3219.37      0.01    0.17 0.573            *
>>     FFT                  12      210.42      0.02   -0.28 0.731            *
>>     Monte                12      822.82      0.02   -0.59 0.308            *
>>     SOR                  12     1366.46      0.00    0.04 0.727            *
>>     Sparse               12     1575.92      0.01    0.06 0.827            *
>>   specjbb2000            12   494080.03      0.00    0.17 0.390            *
>>     Last_Warehouse       12   494080.04      0.00    0.17 0.390            *
>>     First_Warehouse      12   118958.56      0.01    0.02 0.929            *
>>   specjbb2005            12   177183.33      0.00   -1.08 0.000          Yes
>>     last                 12   177183.33      0.00   -1.08 0.000          Yes
>>     interval_average     12    10422.67      0.00   -1.08 0.000          Yes
>>     peak                 12   181694.28      0.01   -1.27 0.002          Yes
>>     overall_average      12   162698.56      0.00   -1.24 0.000          Yes
>>     last_warehouse       12        8.00      0.00   -0.00 0.000            *
>>     peak_warehouse       12        4.25      0.15   -0.00 1.000            *
>>     first                12    62434.46      0.01   -1.67 0.000          Yes
>>   specjvm98              12     1023.79      0.00    0.37 0.066            *
>>     compress             12      815.74      0.00   -0.22 0.066            *
>>     javac                12      601.44      0.02    0.46 0.488            *
>>     db                   12      406.33      0.01   -0.26 0.610            *
>>     jack                 12     1315.79      0.01    1.24 0.162            *
>>     mtrt                 12     2892.01      0.01   -0.43 0.472            *
>>     jess                 12     1107.66      0.01    1.71 0.003          Yes
>>     mpegaudio            12     1403.36      0.00    0.06 0.560            *
>>   volano25               12   180872.25      0.04   -1.58 0.333            *
>>     time                 12        4.43      0.04   -1.63 0.312            *
>>     connections          12      400.00      0.00    0.00 0.000            *
>>   --------------------------------------------------------------------------
>>   Weighted Geomean             23425.71             -0.50
>> ============================================================================
>> 
>> 
>> 
>> 2) SPARCV9 Solaris
>> ============================================================================
>> refworkload_base: reference_server
>>   Benchmark         Samples        Mean     Stdev
>>   jetstream              12       36.03      0.01
>>     Copy                 12      258.08      0.00
>>     Parse                12      337.08      0.00
>>     Read                 12      126.67      0.04
>>     Write                12      538.83      0.00
>>   scimark                12       44.36      0.01
>>     Sparse               12       27.44      0.01
>>     LU                   12       51.53      0.02
>>     SOR                  12       80.13      0.01
>>     FFT                  12       14.28      0.00
>>     Monte                12       48.44      0.00
>>   specjbb2000            12    80257.23      0.00
>>     First_Warehouse      12    10756.41      0.01
>>     Last_Warehouse       12    80257.24      0.00
>>   specjbb2005            12   274794.56      0.02
>>     peak                 12   274794.56      0.02
>>     peak_warehouse       12        8.00      0.00
>>     last                 12   274794.56      0.02
>>     interval_average     12      535.58      0.02
>>     first                12     5079.05      0.02
>>     overall_average      12   121172.61      0.07
>>     last_warehouse       12        8.00      0.00
>>   specjvm98              12       81.51      0.01
>>     javac                12       58.26      0.01
>>     db                   12       54.68      0.03
>>     jess                 12       88.80      0.00
>>     jack                 12       41.98      0.01
>>     compress             12       87.66      0.00
>>     mtrt                 12      228.86      0.01
>>     mpegaudio            12      100.37      0.00
>>   volano25               12   114566.00      0.15
>>     connections          12      400.00      0.00
>>     time                 12        7.15      0.17
>>   --------------------------------------------------------------------------
>>   Weighted Geomean              6260.91
>> ============================================================================
>> refworkload_new: reference_server
>>   Benchmark         Samples        Mean     Stdev   %Diff    P   Significant
>>   jetstream              12       35.94      0.01   -0.26 0.419            *
>>     Copy                 12      257.00      0.00    0.42 0.000          Yes
>>     Parse                12      345.33      0.02   -2.45 0.001          Yes
>>     Read                 12      126.08      0.00    0.46 0.686            *
>>     Write                12      535.92      0.00    0.54 0.000          Yes
>>   scimark                12       44.47      0.01    0.25 0.340            *
>>     Sparse               12       27.37      0.01   -0.24 0.301            *
>>     LU                   12       51.27      0.01   -0.50 0.525            *
>>     SOR                  12       81.10      0.01    1.21 0.002          Yes
>>     FFT                  12       14.24      0.00   -0.27 0.118            *
>>     Monte                12       48.37      0.00   -0.14 0.392            *
>>   specjbb2000            12    80158.49      0.01   -0.12 0.497            *
>>     First_Warehouse      12    10859.44      0.02    0.96 0.169            *
>>     Last_Warehouse       12    80158.49      0.01   -0.12 0.497            *
>>   specjbb2005            12   271115.25      0.02   -1.34 0.093            *
>>     peak                 12   271115.24      0.02   -1.34 0.093            *
>>     peak_warehouse       12        8.00      0.00   -0.00 0.000            *
>>     last                 12   271115.24      0.02   -1.34 0.093            *
>>     interval_average     12      528.42      0.02   -1.34 0.091            *
>>     first                12     5138.08      0.01    1.16 0.074            *
>>     overall_average      12   122254.45      0.07    0.89 0.764            *
>>     last_warehouse       12        8.00      0.00   -0.00 0.000            *
>>   specjvm98              12       81.52      0.01    0.01 0.956            *
>>     javac                12       58.16      0.01   -0.16 0.715            *
>>     db                   12       54.62      0.03   -0.11 0.921            *
>>     jess                 12       89.43      0.01    0.72 0.005          Yes
>>     jack                 12       42.04      0.01    0.13 0.619            *
>>     compress             12       87.62      0.00   -0.04 0.739            *
>>     mtrt                 12      228.18      0.02   -0.30 0.608            *
>>     mpegaudio            12      100.24      0.00   -0.13 0.383            *
>>   volano25               12   116908.34      0.12    2.04 0.713            *
>>     connections          12      400.00      0.00    0.00 0.000            *
>>     time                 12        6.93      0.12    3.02 0.617            *
>>   --------------------------------------------------------------------------
>>   Weighted Geomean              6264.78              0.06
>> ============================================================================
>> 



More information about the hotspot-compiler-dev mailing list