Skip to content
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

JIT: Remove GTF_IS_IN_CSE #104855

Merged
merged 3 commits into from
Jul 15, 2024
Merged

Conversation

jakobbotsch
Copy link
Member

This flag is just a convoluted way to pass an argument through to a bunch of methods from inside CSE. That's because CSE tries to reuse gtExtractSideEffList even though it needs something more capable that considers CSE defs and CSE uses as well.

Remove the flag in favor of an ignoreCctors flag in the side effect checking functions; then, additionally add a CSE-specific version of gtExtractSideEffList called optExtractSideEffectsForCSE which handles side effects and also CSE defs/uses. This does result in a slight amount of duplication, but I think that's beneficial over the convoluted logic before.

No diffs are expected.

This flag is just a convoluted way to pass an argument through to a
bunch of methods from inside CSE. That's because CSE tries to reuse
`gtExtractSideEffList` even though it needs something more capable that
considers CSE defs and CSE uses as well.

Remove the flag in favor of an `ignoreCctors` flag in the side effect
checking functions; then, additionally add a CSE-specific version of
`gtExtractSideEffList` called `optExtractSideEffectsForCSE` which
handles side effects and also CSE defs/uses. This does result in a
slight amount of duplication, but I think that's beneficial over the
convoluted logic before.
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jul 13, 2024
Copy link
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

@@ -17221,7 +17201,6 @@ void Compiler::gtExtractSideEffList(GenTree* expr,
}

GenTree* comma = m_compiler->gtNewOperNode(GT_COMMA, TYP_VOID, m_result, node);
comma->gtFlags |= (m_result->gtFlags | node->gtFlags) & GTF_ALL_EFFECT;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gtNewOperNode does the flags propagation already.

@jakobbotsch jakobbotsch marked this pull request as ready for review July 15, 2024 08:50
@jakobbotsch
Copy link
Member Author

jakobbotsch commented Jul 15, 2024

cc @dotnet/jit-contrib PTAL @AndyAyersMS

No diffs. Minor TP improvements.

@jakobbotsch jakobbotsch requested a review from AndyAyersMS July 15, 2024 08:50
@jakobbotsch jakobbotsch merged commit a86987c into dotnet:main Jul 15, 2024
107 checks passed
@jakobbotsch jakobbotsch deleted the remove-GTF_IS_IN_CSE branch July 15, 2024 16:59
@github-actions github-actions bot locked and limited conversation to collaborators Aug 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants