Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove bytecodes aconst_init, withfield and <vnew> method from Valhalla #18316

Closed
hangshao0 opened this issue Oct 20, 2023 · 2 comments · Fixed by #19812
Closed

Remove bytecodes aconst_init, withfield and <vnew> method from Valhalla #18316

hangshao0 opened this issue Oct 20, 2023 · 2 comments · Fixed by #19812
Labels
comp:jit comp:vm project:valhalla Used to track Project Valhalla related work

Comments

@hangshao0
Copy link
Contributor

The new bytecodes aconst_init and withfield previously introduced in Project Valhalla is going to be removed. Value Type initialization will be done via existing bytecodes new, dup and putfield.

The special Value Type constructor <vnew> is also going to be removed. It will be replaced with regulated constructor (mentioned in #18309).

@hangshao0 hangshao0 added comp:vm comp:jit project:valhalla Used to track Project Valhalla related work labels Oct 20, 2023
@hzongaro
Copy link
Member

Previously if a new bytecode was executed for a value type, an InstantiationError would result. As with the anticipated removal of the Q prefix, I think the JIT compiler will require a helper so it can determine at compile-time whether it's working in an environment where new can be applied to a value type. That way, the compiler can support both ways of creating value type instances while we wait for the transition.

@hangshao0
Copy link
Contributor Author

OpenJDK/Javac support for these changes are not completed yet. It is not an urgent issue, so OpenJ9 could make these changes once things are ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:jit comp:vm project:valhalla Used to track Project Valhalla related work
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants