-
Notifications
You must be signed in to change notification settings - Fork 728
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
Assertion failure at omr/compiler/il/OMRNode.cpp:6686: self()->canChkNodeCreatedByPRE() when PROD_WITH_ASSUMES is enabled #17446
Comments
This assertion fires during optimization, specifically during an optimization called Since (_flags & (ILProp1::Indirect | ILProp1::LoadVar)) == ILProp1::LoadVar where
In order for the condition above to be satisfied, |
Now comes the task of figuring out what part of the puzzle is wrong. Inferring as much as I can from its name, I think This assertion was added in this commit from February, and doesn't seem incorrect to me. From
So It seems intuitive, then, that Therefore, it follows that |
We know That means that the problem is likely that |
I've confirmed that if I set
The method runs all the way through and the assertion doesn't fire. |
I wonder if the fix here is to ensure that all calls to This API is a bit peculiar in that you have to first check whether you may ask a node if it was created by PRE before actually asking it. I'm sure there was a good reason for this, but I wish there was better documentation in the code describing it. EDIT: I'm sure it has to do with the overloading of flags on the node, and that the flag indicating that a node was created by PRE is only valid for certain opcodes. If that's not the reason the code is this way then I'm puzzled by the design. |
I think so. I had recommended the change to In most cases, the |
Not that it's particularly surprising, but I can confirm that guarding the call to As a side note, I noticed that |
Yes
It seems to me that someone using the |
Closing this issue as completed in eclipse/omr#7024. |
The assertion at
/home/jenkins/workspace/Build_JDK11_x86-64_linux_Personal/omr/compiler/il/OMRNode.cpp:6686: self()->canChkNodeCreatedByPRE()
fires when building OpenJDK 11 on
x86-64_linux
with the-DPROD_WITH_ASSUMES
flag enabled inopenj9/runtime/compiler/CMakeLists.txt
.Note that this assertion fires during the build process and not while running tests like the other failures under
PROD_WITH_ASSUMES
as discovered last year.This assertion only fired after commenting out the assertion that fired during the previous build.
Link to the Jenkins build.
Stack trace:
The text was updated successfully, but these errors were encountered: