Uh oh!
There was an error while loading. Please reload this page.
Refactor fgMorphCast - #59713
Merged
Merged
Conversation
ghost
commented
Sep 28, 2021
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsWith #55186 merged, I was looking to take advantage of Also some comments have been added. Diffs for this change: pending.
|
SingleAccretionforce-pushed
the
Refactor-fgMorphCast
branch
4 times, most recently
from
September 28, 2021 22:05
d8180bc to
eb37a03CompareSplit it into the part that does pre-order transforms and the part that does post-order optimizations. Rename the pre-order part to "fgMorphExpandCast" and let "fgMorphSmpOp" do the morphing of operands and optimization. Just one diff for this commit: "gtFoldExprConst" does not retain the types of handles, thus LSRA was not seeing "long" and "byref" constant integers with the same values as equivalent and did not reuse the register.
These cases are now covered by "fgMorphSmpOp".
SingleAccretionforce-pushed
the
Refactor-fgMorphCast
branch
from
September 28, 2021 22:56
eb37a03 to
f9f3011CompareSo that it works well for casts. There are diffs for this commit in the ILGEN methods, mostly positive, but some are regressions. The regressions fall into 2 buckets: 1. The new code creates overflow helper blocks for casts before propagating comma throws, thus leaving them around, dead. This is a problem in general and should be solved by moving the helper insertion later. 2. The new code doesn't propagate comma throws after global morph for casts. This is is by design, as the throw propagation does not work well with VNs (and CSE). The improvements are due to new code setting "fgRemoveRestOfBlock" for comma throws originating from casts.
SingleAccretionforce-pushed
the
Refactor-fgMorphCast
branch
from
September 29, 2021 17:34
f9f3011 to
2a84e1dCompareSingleAccretion
marked this pull request as ready for review
September 29, 2021 20:02
SingleAccretion
commented
Sep 29, 2021
ContributorAuthor
@dotnet/jit-contrib |
BruceForstall
commented
Sep 30, 2021
Contributor
/azp run runtime-coreclr jitstress |
|
Azure Pipelines successfully started running 1 pipeline(s). |
SingleAccretion
commented
Sep 30, 2021
ContributorAuthor
Stress failures appear to be #59794. |
BruceForstall
approved these changes
Sep 30, 2021
BruceForstall
left a comment
Contributor
There was a problem hiding this comment.
LGTM. Thanks for the contribution!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With #55186 merged, I was looking to take advantage of
IntegralRangeinfgMorphCast, but it turned out some refactoring was first in order, mainly to get rid of questionable & duplicated code. So that's what this PR is about. See the commit messages for the description of the changes.Also some comments have been added.
Diffs for this change:
win-x64,win-x86,linux-arm.