(I’m author) I did a deeper search on this and forgot to update, but I believe Hotspot does not deoptimise C2 -> C1. There’s no official statement on that but general research into how Hotspot optimizes between tiers and their glossary page indicates that fairly clearly. Also an O’Reilly book seems to state that too (https://www.oreilly.com/library/view/java-performance-the/9781449363512/ch04.html#Deoptimization)
This is one of the best articles I read on the internet. No ifs, no buts.
Regarding
and taking
into account, I think HotSpot only supports deopt-to-interpreter (that is C2→interpreter, C1→interpreter), not deopt-to-another-compile-tier (C2→C1).
Maybe someone else can chime in?
Edit: Having checked that person’s CV, I’m now considering a career change, because I obviously suck at computers.
(I’m author) I did a deeper search on this and forgot to update, but I believe Hotspot does not deoptimise C2 -> C1. There’s no official statement on that but general research into how Hotspot optimizes between tiers and their glossary page indicates that fairly clearly. Also an O’Reilly book seems to state that too (https://www.oreilly.com/library/view/java-performance-the/9781449363512/ch04.html#Deoptimization)
I should probably just ask Cliff but guessing is fun (and I think this is pretty conclusive)
I’ve enjoyed your blog’s random colours!