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

[mono][interp] Small code refactoring for SSA #97249

Merged
merged 6 commits into from
Jan 20, 2024

Conversation

BrzVlad
Copy link
Member

@BrzVlad BrzVlad commented Jan 20, 2024

Mainly moving optimization code out from transform.c which is getting massive.

Use interp_ prefix for non-static methods within interpreter (mono_interp seems rather long)
Use interp_ prefix, instead of .._interp_..., for consistency.
Use ins everywhere in method names for consistency, instead of inst.
In order to facilitate overwritting of sregs/dreg during instruction iterations.

Also enable iterating only on sregs.
Local can have multiple meanings. Use it to refer to IL locals from now. All IL locals are vars. Vars can be local (single bblock use) or global.
Makes the code clearer and it is easier to maintain.
@ghost
Copy link

ghost commented Jan 20, 2024

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

Issue Details

Mainly moving optimization code out from transform.c which is getting massive.

Author: BrzVlad
Assignees: BrzVlad
Labels:

area-Codegen-Interpreter-mono

Milestone: -

@vargaz
Copy link
Contributor

vargaz commented Jan 20, 2024

Failures are unrelated.

@vargaz vargaz merged commit fcbcfcc into dotnet:main Jan 20, 2024
107 of 111 checks passed
tmds pushed a commit to tmds/runtime that referenced this pull request Jan 23, 2024
* [mono][interp] Move optimization related code out of transform.c

Use interp_ prefix for non-static methods within interpreter (mono_interp seems rather long)
Use interp_ prefix, instead of .._interp_..., for consistency.
Use ins everywhere in method names for consistency, instead of inst.

* [mono][interp] Pass ref to var storage in interp inst

In order to facilitate overwritting of sregs/dreg during instruction iterations.

Also enable iterating only on sregs.

* [mono][interp] Print invalid il offset in aligned fashion

* [mono][interp] Remove irrelevant stats

* [mono][interp] Renaming of local to var

Local can have multiple meanings. Use it to refer to IL locals from now. All IL locals are vars. Vars can be local (single bblock use) or global.

* [mono][interp] Remove flags and use bit fields instead

Makes the code clearer and it is easier to maintain.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 20, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants