-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Re-revert "Fold overflow operations in value numbering" #51440
Re-revert "Fold overflow operations in value numbering" #51440
Conversation
fba8d71
to
892ff63
Compare
Diffs are as expected, no changes with respect to #50450 modulo expected (now not folded) cases in tests. |
Failures look unrelated, so switching as ready for review. |
@dotnet/jit-contrib PTAL |
@sandreenko can you review this? |
@sandreeko let me know if you can't get to this soon.... |
…onst into a separate namespace
…e safely #included'ed in utils.h
… CheckedOps, implemented overflow checking for floating point -> integer casts
892ff63
to
99a9829
Compare
Rebased to resolve a conflict. |
Co-authored-by: Anton Lapounov <anton.lapounov@microsoft.com>
ada5b61
to
610b612
Compare
/azp run runtime-coreclr jitstress, runtime-coreclr outerloop, runtime-libraries-coreclr outerloop, runtime-coreclr libraries-jitstress |
Azure Pipelines successfully started running 4 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, I like the new code better, and if testing does not show anything bad that I am good with this change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for incorporating feedback. I have also some suggestions on the long comment in utils.cpp
.
Co-authored-by: Anton Lapounov <anton.lapounov@microsoft.com>
The method is not prepared to handle them. Also add a note about that to the header. Also delete TODO-Review about it. Right now the only caller of VNEvalShouldFold guards against TYP_BYREF folding, so this assert is a safety measure against future callers not taking byrefs into account.
Despite not all stress/outerloop legs having the chance to finish there were (I have to say, quite) some failures. Some look like known issues (#53042, #52954), others I do not understand ( |
Yes. Let's start them again and wait for the results. |
/azp run runtime-coreclr jitstress, runtime-coreclr outerloop, runtime-libraries-coreclr outerloop, runtime-coreclr libraries-jitstress |
Azure Pipelines successfully started running 4 pipeline(s). |
Starting to classify the failures:
Some further investigation appears not to support this. I made a method just like one in the test (100 var t = new Thread(x => RuntimeHelpers.PrepareMethod(type.GetMethod("Problem", flags).MethodHandle), X * 1024);
t.Start(); For both base and diff, if 5. A bunch of |
runtime-coreclr outerloop: it was just resolved, lets trigger the job again to clear the output.
could you give me an example? |
/azp run runtime-coreclr jitstress, runtime-coreclr outerloop |
Azure Pipelines successfully started running 2 pipeline(s). |
Yep. https://github.com/dotnet/runtime/pull/51440/checks?check_run_id=2669273261: log 1, log 2, log 3. |
Hmm, I think I need to rebase for that one, don't I? |
I could be wrong but I expect that runs that are triggered via From the log: |
Ok, so all runtime-coreclr outerloop/jitstress failures are not related (#53267 for outerloop). |
Final bucketing for failures of libraries tests.
1.
1. |
Thanks @SingleAccretion for the detailed analysis and addressing the feedback. |
This PR reintroduces changes from #50450, except for folding of the helpers for casts - both the VN part and morph part have been left out.
I have manually verified that test cases from #51381, #51346 and #51380 are no longer reproducible with this version of the change, but a full run of the legs that run these tests would be required before this can be merged.
I have decided to reintroduce one part of #50450 first instead of going straight for the removal of folding for problematic cases because I think the changes in #50450 around
gtFoldExprConst
&CheckedOps
will be helpful when addressing that issue.The code has been left as-is expect for some folding of formatting fixups into their respective commits, two
/*printResult*/
comments, and moving commits disabling the test on Mono and addingvartypesdef.h
earlier in the commit chain.Draft pending green regular CI and verification that diffs are as expected.