Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[interp] Optimize conditional branches#52130

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
BrzVlad merged 6 commits intodotnet:mainfromBrzVlad:feature-interp-super-br
May 4, 2021

Conversation

@BrzVlad
Copy link
Member

Stop generating MINT_SAFEPOINT opcodes, add_imm versions to conditional branches.

Remove some other unnecessary opcodes

srxqds reacted with thumbs up emoji
Unlike initlocal ldc_0 are propagated, also having smaller instruction footprint. Signal retry of cprop when we are adding such instructions, also in other cases. We could dynamically update the state, but let's not overcomplicate the cprop pass, for now.
@BrzVladBrzVlad requested a review fromvargaz as acode ownerApril 30, 2021 19:30
On netcore, there are no context static fields so all special static fields are thread static. These thread static accessors are not very common, so just remove redundant opcodes for them, and use ldind/ldobj.vt and stind/stobj.vt instead.
These opcodes were used for loading a field of a VT var. This means the opcodes were loading a value from an immediate offset added to a var offset. We can use the standard MINT_MOV opcodes for this, however we need to resolve the offsets at the very end, so it doesn't interfere with other compilation passes, since the final offset is not the real offset of a variable, but rather an offset inside a VT var.
It was used to check for abort requests during backward branches. Also stop checking for abort requests in other places.
We include the safepoint in the instruction and also the immediate comparison value if possible. Doing the safepoint by default in branching opcodes is questionable since, in a typical program, forward branches are far more common than backward branches.We should really remove many of the branching opcodes. We now have the possibility to swap the src vars order, and use the opposite comparison instead.
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.

Reviewers

1 more reviewer

@vargazvargazvargaz approved these changes

Reviewers whose approvals may not affect merge requirements

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

6.0.0

Development

Successfully merging this pull request may close these issues.

3 participants

@BrzVlad@vargaz@karelz

[8]ページ先頭

©2009-2025 Movatter.jp