-
Bug
-
Resolution: Fixed
-
P2
-
repo-valhalla
[~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