JIT: Disallow implicit byref args and return buffers from aliasing#104616
Merged
jakobbotsch merged 1 commit intodotnet:mainfrom Jul 10, 2024
Merged
JIT: Disallow implicit byref args and return buffers from aliasing#104616jakobbotsch merged 1 commit intodotnet:mainfrom
jakobbotsch merged 1 commit intodotnet:mainfrom
Conversation
The recent work to allow more retbuf definitions uncovered cases where we would end up with the retbuffer aliasing an implicit byref argument. The JIT does not handle this aliasing, which would require proper `GTF_GLOB_REF` flags on the local nodes accesses implicit byrefs. Fix the problem by disallowing last-use copy elision when the local would alias the return buffer. Fix dotnet#104613
Contributor
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
Member
Author
|
cc @dotnet/jit-contrib PTAL @AndyAyersMS Diffs. Regressions where we no longer elide some copies. Those elisions should be new with #104467, so these regressions are just negating some of the improvements from that PR. |
This was referenced Jul 9, 2024
Open
AndyAyersMS
approved these changes
Jul 10, 2024
matouskozak
added a commit
to matouskozak/runtime
that referenced
this pull request
Jul 11, 2024
…asing (dotnet#104616)" This reverts commit 6c55362.
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.
The recent work to allow more retbuf definitions uncovered cases where we would end up with the retbuffer aliasing an implicit byref argument. The JIT does not handle this aliasing, which would require proper
GTF_GLOB_REFflags on the local nodes accesses implicit byrefs. Fix the problem by disallowing last-use copy elision when the local would alias the return buffer.Fix #104613