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

Add document listing supported feature checks #94440

Merged
merged 5 commits into from
Nov 14, 2023

Conversation

sbomer
Copy link
Member

@sbomer sbomer commented Nov 6, 2023

The ILLink roslyn analyzer, ILLink, and ILCompiler all support different forms of branch removal and constant propagation. This document is meant to describe the supported/recommended patterns that should work with all of these tools. Related to the discussion in dotnet/linker#2715.

@ghost ghost added the linkable-framework Issues associated with delivering a linker friendly framework label Nov 6, 2023
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-Tools-ILLink .NET linker development as well as trimming analyzers label Nov 6, 2023
@ghost ghost assigned sbomer Nov 6, 2023
@ghost
Copy link

ghost commented Nov 6, 2023

Tagging subscribers to 'linkable-framework': @eerhardt, @vitek-karas, @LakshanF, @sbomer, @joperezr, @marek-safar
See info in area-owners.md if you want to be subscribed.

Issue Details

The ILLink roslyn analyzer, ILLink, and ILCompiler all support different forms of branch removal and constant propagation. This document is meant to describe the supported/recommended patterns that should work with all of these tools. Related to the discussion in dotnet/linker#2715.

Author: sbomer
Assignees: -
Labels:

linkable-framework

Milestone: -

Copy link
Member

@vitek-karas vitek-karas left a comment

Choose a reason for hiding this comment

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

I assume you checked we have tests for each of these cases and that they behave as described here :-)

Looks good, thanks for writing this down.

@sbomer
Copy link
Member Author

sbomer commented Nov 14, 2023

Added a testcase for the early return case which I missed earlier. Everything else is already covered.

Copy link
Member

@MichalStrehovsky MichalStrehovsky left a comment

Choose a reason for hiding this comment

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

Thank you for writing it down.

Depending on who the target audience is, should we also say that yield/async/etc state machines also break all of this outside the analyzer?

@sbomer sbomer merged commit 543c7a5 into dotnet:main Nov 14, 2023
63 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Dec 15, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Tools-ILLink .NET linker development as well as trimming analyzers linkable-framework Issues associated with delivering a linker friendly framework
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants