Fix propagation of basic block flags for inlinee return expressions.#37840
Merged
erozenfeld merged 1 commit intodotnet:masterfrom Jun 15, 2020
Merged
Fix propagation of basic block flags for inlinee return expressions.#37840erozenfeld merged 1 commit intodotnet:masterfrom
erozenfeld merged 1 commit intodotnet:masterfrom
Conversation
Member
Author
|
No diffs in x64 pmi framewors and benchmarks. |
Member
Author
|
@dotnet/jit-contrib @AndyAyersMS PTAL |
AndyAyersMS
approved these changes
Jun 13, 2020
Member
AndyAyersMS
left a comment
There was a problem hiding this comment.
I owe you an apology -- when I looked at your first fix for this I thought to ask if you handled the ret expr tunneling, but didn't. Sorry about that.
src/coreclr/src/jit/inline.h
Outdated
Member
There was a problem hiding this comment.
Nit: I'd place this field first to minimize the amount of padding we might end up with here.
94b2c4e to
f0128d0
Compare
block flags from inlinee return expressions. The assumption there was that `fgUpdateInlineReturnExpressionPlaceHolder` is the only place where `GT_RET_EXPR`'s are replaced with the actual nodes from inlinees. That assumption was incorrect and this change fixes the remaining places. Fixes dotnet#37574.
erozenfeld
added a commit
to erozenfeld/runtime
that referenced
this pull request
Jun 22, 2020
This is a fllow-up to dotnet#37335 and dotnet#37840. When an inline fails we replace `GT_RET_EXPR`with the original `GT_CALL` node. `GT_RET_EXPR`may end up in a basic block other than the original `GT_CALL` so we need to propagate basic block flags. Fixes dotnet#36588.
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 free
to 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.
#37335 introduced a new more precise way of propagating basic
block flags from inlinee return expressions. The assumption there
was that
fgUpdateInlineReturnExpressionPlaceHolderis the onlyplace where
GT_RET_EXPR's are replaced with the actual nodesfrom inlinees. That assumption was incorrect and this change fixes
the remaining places.
Fixes #37574.