Class BytecodeTransition
BytecodeRootNode.traceTransition(BytecodeTransition, Frame).
Transition kinds are not mutually exclusive; for example, a single transition can simultaneously
report isBytecodeUpdate() and isTransferToInterpreter().
Deoptimization transitions report precise bytecode locations for compilation roots and continuation resumes. If a Bytecode DSL root is inlined into another compiled root, a deoptimization in that inlined root may be reported at the enclosing compilation root instead of the inlined root.
- Since:
- 25.1
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBytecodeTransition(Object token) Internal constructor for generated code. -
Method Summary
Modifier and TypeMethodDescriptionReturns instrumentations that were newly added by this transition.Returns tags that were newly added by this transition.abstract BytecodeLocationReturns the bytecode location after the transition.abstract BytecodeLocationReturns the bytecode location before the transition.abstract booleanReturnstrueif bytecode metadata or instructions changed for this transition, e.g.abstract booleanReturnstrueif this transition was triggered by a deoptimization from compiled code.toString()
-
Constructor Details
-
BytecodeTransition
Internal constructor for generated code. Do not use.- Since:
- 25.1
-
-
Method Details
-
isBytecodeUpdate
public abstract boolean isBytecodeUpdate()Returnstrueif bytecode metadata or instructions changed for this transition, e.g. due to a tier change, instrumentation update, or tag update.- Since:
- 25.1
-
isTransferToInterpreter
public abstract boolean isTransferToInterpreter()Returnstrueif this transition was triggered by a deoptimization from compiled code.A deoptimization in an inlined Bytecode DSL root may not create a separate transition for that inlined root. In such cases, the transition may instead be reported for the enclosing compilation root.
- Since:
- 25.1
-
getAddedTags
Returns tags that were newly added by this transition.This set is typically non-empty only for
isBytecodeUpdate()transitions.- Since:
- 25.1
-
getAddedInstrumentations
Returns instrumentations that were newly added by this transition.This set is typically non-empty only for
isBytecodeUpdate()transitions.- Since:
- 25.1
-
getOldLocation
Returns the bytecode location before the transition.- Since:
- 25.1
-
getNewLocation
Returns the bytecode location after the transition.- Since:
- 25.1
-
toString
-