-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P2
-
Affects Version/s: repo-valhalla
-
Component/s: hotspot
[~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
[...]
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
[...]
- links to
-
Commit(lworld)
openjdk/valhalla/a01f6daf
-
Review(lworld)
openjdk/valhalla/1182