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] Super instruction tweaks #99319

Merged
merged 8 commits into from
Mar 7, 2024

Conversation

BrzVlad
Copy link
Member

@BrzVlad BrzVlad commented Mar 5, 2024

No description provided.

@ghost
Copy link

ghost commented Mar 5, 2024

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

Issue Details

null

Author: BrzVlad
Assignees: -
Labels:

area-Codegen-Interpreter-mono

Milestone: -

@@ -3224,32 +3207,15 @@ get_sreg_imm (TransformData *td, int sreg, gint16 *imm, int result_mt)
ct = interp_get_const_from_ldc_i8 (def);
else
return FALSE;
gint64 min_val, max_val;
Copy link
Member

Choose a reason for hiding this comment

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

I assume the removal of the I1/U1 stuff here is verified harmless

BrzVlad and others added 7 commits March 6, 2024 11:41
They have little benefit. Also fix oversight which resulted in using MINT_LDC_I4_S only for byte sized integers.
…ions

Make `get_sreg_imm` more flexible, by returning the immediate value and the mint type that this value can fit in.
Simplify return immediate handling by also applying conversion to immediate value, if necessary.
We will avoid running it if we know will do another iteration later (especially useful when first iteration is ssa disabled). It can still happen for it to run multiple times (when bblock optimization requests retry), but this should be very rare. This will save compilation time and should also remove the necessity of handling super instructions in constant folding pass.

Reverts dotnet#99055 since it is no longer necessary.
Also add instructions for and/or + immediates.
and + ldc will already be transformed to a superinstruction, so this can also be simplified.
@BrzVlad BrzVlad force-pushed the feature-interp-super-ldc branch from 1736865 to 09ff7cd Compare March 6, 2024 09:41
@BrzVlad BrzVlad changed the title [mono][interp] Super instrution tweaks [mono][interp] Super instruction tweaks Mar 6, 2024
@lewing
Copy link
Member

lewing commented Mar 6, 2024

CI didn't run after the last commit so I merged main.

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.

3 participants