Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8142617 | emb-9 | Martin Doerr | P4 | Resolved | Fixed | team |
The interpreter generator currently generates normal and native entries many times because special entries either include a slow path or generate the normal or native entry again. This can be avoided by generating the normal and native entries once and reusing them by using the very same entry or by generating a jump to it. This makes the interpreter more compact saving generation time and space and it makes the interpreter more instruction cache friendly.
In addition, the interpreter generator currently generates entries which don't do anything else than jumping to the respective entry. We can avoid this by jumping directly and saving the extra entry. This does not only improve performance, it also enables clear recognition for code which checks what kind of entry is used (e.g. in_native_entry(address pc) or AbstractInterpreter::is_not_reached).
In addition, the interpreter generator currently generates entries which don't do anything else than jumping to the respective entry. We can avoid this by jumping directly and saving the extra entry. This does not only improve performance, it also enables clear recognition for code which checks what kind of entry is used (e.g. in_native_entry(address pc) or AbstractInterpreter::is_not_reached).
- backported by
-
JDK-8142617 Generate interpreter entries only once and avoid unnecessary jump to jump
-
- Resolved
-