The question pretty much says it all, I've been looking around for an answer even through the VM spec but I it doesn't explicitly state it.
Had to google what a "tracing JIT" was, but apparently it isn't.
> non-tracing JIT implementations (Sun’s Java VM
But it does optimise what you might call "hot spots".
How bytecode is optimised will not be part of the specification for the bytecode.
It's not even a JIT actually, let alone a 'tracing JIT', whatever that might be.
Aside: for those who don't know what a tracing JIT is, the following description comes from this page:
Although tracing JITs are a complex technology, the core concept is about optimizing execution of the hot paths in a program. The emphasis is specifically on hot paths that return to the start of a path which sounds very much like a loop. However, the traditional definition of a programming loop is only a subset of these hot paths. The broader definition includes code that spans methods and possibly even modules. This broader definition of a loop is what’s called a trace.