-
Notifications
You must be signed in to change notification settings - Fork 729
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
Abort ILGen for non supported features in AOT #9071
Conversation
c0aeb79
to
e19a280
Compare
jenkins test sanity.functional+aot xlinux jdk11 |
Yay the AOT test passed. |
e19a280
to
104a8de
Compare
@andrewcraik @cathyzhyi could you please review? |
@andrewcraik do we need to be also aborting an AOT compile in these conditions?
|
The change looks good to me. |
@dsouzai I think the answer to your question on constant handles is yes - those constants could change in a new run. |
Signed-off-by: Irwin D'Souza <[email protected]>
Constant Dynamic, Method Handle Constant, and Method Type Constant is not currently supported in AOT. Therefore, this commit throws the appropriate exception in ILGen if this condition is met. However, because all of these exceptions are a TR::RecoverableILGenException, if the compiler is generating IL for an inlined method, it will not abort the compile, but simply refuse to inline that particular method. Signed-off-by: Irwin D'Souza <[email protected]>
104a8de
to
c33a120
Compare
@andrewcraik @cathyzhyi PR is ready for full review now. |
The aborts for the 292 handles are conservative - I am fine with doing it as discussed above, but there should be an issue to track disabling the code that would fold these so that we just leave them as loads. They would need a relocation to load them from the constant pool, but assuming we did that then it should work, just the scope of optimization will be limited because we cannot treat them as constant. |
@andrewcraik opened #9106 to track this (and also added it to #2921). |
jenkins test sanity.functional all jdk11 |
@andrewcraik all tests passed, do you mind merging if everything looks good to you? |
Constant Dynamic, Method Handle Constant, and Method Type Constant
is not currently supported in AOT. Therefore, in this
PR, the compiler throws the appropriate exception in ILGen if this
condition is met. However, because all of these exceptions are a
TR::RecoverableILGenException, if the compiler is generating IL for an
inlined method, it will not abort the compile, but simply refuse to
inline that particular method.
Fixes #6011