-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
inference: mark flag for effect-free :calls during abstractinterpret
#47689
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
Conversation
:calls during optimization:calls during abstractintepret
:calls during abstractintepret:calls during abstractinterpret
f7aa97b to
7c4afbf
Compare
7c4afbf to
f6ad4f8
Compare
| if is_removable_if_unused(effects) | ||
| add_curr_ssaflag!(sv, IR_FLAG_EFFECT_FREE) | ||
| else | ||
| sub_curr_ssaflag!(sv, IR_FLAG_EFFECT_FREE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be better to do this in a single pass at the end based on the info object rather than toggling the flag back and forth here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, yeah. The (unmentioned) support for :foreigncall isn't that important anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, we need something like #46962 (which came with a minor computational cost when I tried last time).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since I couldn't fix the performance regression of #46962 , I'd like to merge this as is leaving this as a TODO comment.
f6ad4f8 to
b25da02
Compare
b25da02 to
27c1d6c
Compare
|
@nanosoldier |
|
Your benchmark job has completed - no performance regressions were detected. A full report can be found here. |
So that they can be deleted during the first
compact!-ion. This allows us to delete an inlineable and effect-free, but unused call.This is essentially an alternative of #47305, but doesn't introduce a problem like #47374.