RFR: 8263006: Add optimization for Max(*)Node and Min(*)Node [v2]

Wang Huang whuang at openjdk.java.net
Fri Apr 23 09:07:49 UTC 2021


On Fri, 23 Apr 2021 03:01:17 GMT, Wang Huang <whuang at openjdk.org> wrote:

> Running MyBenchmark test listed in the summary on x86_64 Haswell XEON with this patch results in:
> 
> ```
> # Benchmark: org.sample.MyBenchmark.testMax
> 
> # Run progress: 25.00% complete, ETA 00:03:57
> # Fork: 1 of 1                                                                                                                                                              # Warmup Iteration   1: 112.714 us/op
> # Warmup Iteration   2: # To suppress the following error report, specify this argument
> # after -XX: or in .hotspotrc:  SuppressErrorAt=/register.hpp:152                                                                                                           #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (/home/mgkwill/src/git/jdk/src/hotspot/share/asm/register.hpp:152), pid=3450238, tid=3450253
> #  assert(a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e) failed: registers must be different: a=0x0000000000000001, b=0x0000000000000001, c=0x0000000000000003, d=0x0000000000000004, e=0x0000000000000005
> #
> # JRE version: OpenJDK Runtime Environment (17.0) (slowdebug build 17-internal+0-adhoc.mgkwill.jdk) 
> ```
> 
> AND
> 
> ```
> # Benchmark: org.sample.MyBenchmark.testMin
> 
> # Run progress: 25.00% complete, ETA 00:03:57
> # Fork: 1 of 1
> # Warmup Iteration   1: 112.445 us/op
> # Warmup Iteration   2: # To suppress the following error report, specify this argument
> # after -XX: or in .hotspotrc:  SuppressErrorAt=/register.hpp:152
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (/home/mgkwill/src/git/jdk/src/hotspot/share/asm/register.hpp:152), pid=3450444, tid=3450481
> #  assert(a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e) failed: registers must be different: a=0x0000000000000001, b=0x0000000000000001, c=0x0000000000000003, d=0x0000000000000004, e=0x0000000000000005
> #
> # JRE version: OpenJDK Runtime Environment (17.0) (slowdebug build 17-internal+0-adhoc.mgkwill.jdk)
> ```
> 
> Otherwise the results are below.
> 
> ```
> Baseline
> Benchmark            Mode  Cnt    Score     Error  Units
> MyBenchmark.testAdd  avgt    5  149.581 ?  13.626  us/op
> MyBenchmark.testMax  avgt    5  223.362 ? 195.007  us/op
> MyBenchmark.testMin  avgt    5  206.096 ?  16.840  us/op
> MyBenchmark.testMul  avgt    5  149.366 ?   9.558  us/op
> Finished running test 'micro:MyBenchmark'
> ```
> 
> ```
> Benchmark            Mode  Cnt    Score   Error  Units
> MyBenchmark.testAdd  avgt    5  107.874 ? 0.148  us/op
> MyBenchmark.testMul  avgt    5  107.881 ? 0.015  us/op
> Finished running test 'micro:MyBenchmark'
> ```

I fix a bug in my code. I am not sure if it is the reason of your crash. However, you can pull the latest code and test again. Thank you.

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

PR: https://git.openjdk.java.net/jdk/pull/3513


More information about the hotspot-compiler-dev mailing list