Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8045259 | 8u25 | Roland Westrelin | P3 | Resolved | Fixed | b01 |
JDK-8037533 | 8u20 | Roland Westrelin | P3 | Resolved | Fixed | b07 |
JDK-8053259 | emb-8u26 | Roland Westrelin | P3 | Resolved | Fixed | b17 |
Let's say the trap occurs at (m, bci) when m is inlined in m1. When m2 that inlines m is compiled, no class check optimization is performed at (m, bci) because of the trap triggered in m1. With type speculation, type information is flowing from many profiling points in the application code. So in the example above, the profile data used at (m, bci) may come from m1 when the compiled method is m1 and it may be come from m2 when the compiled method is m2. And so the trap at (m,bci) in compiled method m1 doesn't say much about the validity of a speculative optimization at (m,bci) when the compiled method is m2.
When a trap occurs from a speculative optimization, the trap should record: (method, bci, compiled method) so that in the example above: erroneous optimization at (m, bci) is not reattempted if m1 is re-compiled but is attempted when m2 is compiled.
- backported by
-
JDK-8037533 Failed speculative optimizations should be reattempted when root of compilation is different
- Resolved
-
JDK-8045259 Failed speculative optimizations should be reattempted when root of compilation is different
- Resolved
-
JDK-8053259 Failed speculative optimizations should be reattempted when root of compilation is different
- Resolved
- blocks
-
JDK-8042557 compiler/uncommontrap/TestSpecTrapClassUnloading.java fails with: GC triggered before VM initialization completed
- Resolved
- relates to
-
JDK-8036083 Assertion crash in src/share/vm/ci/ciMethodData.cpp: assert(dp_src->tag() == dp_dst->tag()) failed: should be same tags 1 != 0
- Closed
-
JDK-8031751 When doing multiple identical runs in the same environment, benchmark peak scores vary widely for octane benchmarks on Nashorn
- Closed