-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
inference: mark flag for effect-free :call
s 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
:call
s during optimization:call
s during abstractintepret
:call
s during abstractintepret:call
s 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.