-
Type:
Enhancement
-
Resolution: Fixed
-
Priority:
P4
-
Affects Version/s: None
-
Component/s: hotspot
-
b23
During dump time the "fast" version of certain bytecodes is replaced by "no-fast" version. It is done by rewrite_nofast_bytecode() in AOTMetaspace.cpp.
Specifically the "fast" version of getfield and putfield bytecodes is rewrittent to _nofast_getfield and _nofast_putfield. This is done to avoid touching ConstMethod during run time by the interpreter, so that the ConstMethod can be placed in the read-only section.
AOTCache has the capability to store operands to these bytecodes in resolved form. So if the constant pool entry referred by the getfield/putfield bc is already resolved in the AOTCache, then the "fast" version of these bytecodes can be preserved as they won't be rewritten during the runtime by the interpreter. There is no need to replace the "fast" version by "no-fast" version in such cases.
Specifically the "fast" version of getfield and putfield bytecodes is rewrittent to _nofast_getfield and _nofast_putfield. This is done to avoid touching ConstMethod during run time by the interpreter, so that the ConstMethod can be placed in the read-only section.
AOTCache has the capability to store operands to these bytecodes in resolved form. So if the constant pool entry referred by the getfield/putfield bc is already resolved in the AOTCache, then the "fast" version of these bytecodes can be preserved as they won't be rewritten during the runtime by the interpreter. There is no need to replace the "fast" version by "no-fast" version in such cases.
- links to
-
Commit(master)
openjdk/jdk/1357be98
-
Review(master)
openjdk/jdk/28121