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

Niclas Adlertz niclas.adlertz at oracle.com
Mon May 27 14:23:04 PDT 2013


Thank you Vladimir and Christian,

I've followed your suggestion on making the bug fixes separate.  It's now out for review, 8005956. This will also solve the other bug (8013830).
When 8005956 has been reviewed, I will continue working on a new webrev for this fix, 8014786. 

Kind Regards,
Niclas Adlertz


On 24 maj 2013, at 00:13, Christian Thalinger <christian.thalinger at oracle.com> wrote:

> 
> 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