Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8337210

[lworld] Incorrect IC check leads to continuous cache misses

XMLWordPrintable

      [~skuksenko] observed a significant performance regression with various benchmarks (Renaissance-Scrabble, Renaissance-RxScrabble, SPECjbb2015). I narrowed it down to the recent merge with mainline. It's an incorrect merge of JDK-8322630 into Valhalla, breaking IC miss resolution and leading to continuous re-resolution.

      Attached Test.java reproduces the issue:

      java --enable-preview --source 23 -XX:CompileCommand=quiet -XX:+TraceCallFixup -Xbatch -XX:CompileCommand=compileonly,Test*::main -XX:-UseBimorphicInlining -XX:CompileCommand=compileonly,*MyValue::hashCode Test.java
      [...]
      IC miss (invokevirtual) call to Test$MyValue::hashCode code: 0x00007fe72c6e9b10
      IC miss (invokevirtual) call to Test$MyValue::hashCode code: 0x00007fe72c6e9b10
      IC miss (invokevirtual) call to Test$MyValue::hashCode code: 0x00007fe72c6e9b10
      IC miss (invokevirtual) call to Test$MyValue::hashCode code: 0x00007fe72c6e9b10
      IC miss (invokevirtual) call to Test$MyValue::hashCode code: 0x00007fe72c6e9b10
      [...]

            thartmann Tobias Hartmann
            thartmann Tobias Hartmann
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: