-
Sub-task
-
Resolution: Fixed
-
P4
-
None
-
None
It seems that in addition to JDK-8130920, getObject pays additional cost with C1:
http://cr.openjdk.java.net/~shade/8130923/ObjectTest.java
o.o.v.get.acc.ObjectTest.plain avgt 15 16.382 ± 0.009 ns/op
o.o.v.get.acc.ObjectTest.unsafe avgt 15 18.902 ± 0.009 ns/op
o.o.v.get.acc.ObjectTest.varHandle avgt 15 104.206 ± 5.003 ns/op
The disassembly shows additional Class.cast dance:
http://cr.openjdk.java.net/~shade/8130923/c1.perfasm
http://cr.openjdk.java.net/~shade/8130923/c2.perfasm
http://cr.openjdk.java.net/~shade/8130923/ObjectTest.java
o.o.v.get.acc.ObjectTest.plain avgt 15 16.382 ± 0.009 ns/op
o.o.v.get.acc.ObjectTest.unsafe avgt 15 18.902 ± 0.009 ns/op
o.o.v.get.acc.ObjectTest.varHandle avgt 15 104.206 ± 5.003 ns/op
The disassembly shows additional Class.cast dance:
http://cr.openjdk.java.net/~shade/8130923/c1.perfasm
http://cr.openjdk.java.net/~shade/8130923/c2.perfasm
- is blocked by
-
JDK-8131782 C1 Class.cast optimization breaks when Class is loaded from static final
-
- Resolved
-
- relates to
-
JDK-8135033 C1 should fast-path Object.class.isInstance(obj) to null check
-
- Open
-
-
JDK-8131682 C1 should use multibyte nops everywhere
-
- Resolved
-
-
JDK-8131782 C1 Class.cast optimization breaks when Class is loaded from static final
-
- Resolved
-
-
JDK-8130920 C1 trouble in VarHandle.get tests
-
- Resolved
-