-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Refactor computing lvaLongVars/lvaFloatVars #82331
Refactor computing lvaLongVars/lvaFloatVars #82331
Conversation
Compute them before loop hoisting, where they are actually used, not at the beginning of value numbering.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsCompute them before loop hoisting, where they are actually used, not at the beginning of value numbering.
|
unsigned floatVarsCount = VarSetOps::Count(this, lvaFloatVars); | ||
|
||
if (floatVarsCount > 0) | ||
if (!VarSetOps::IsEmpty(this, lvaFloatVars)) |
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.
It looks like lvaFloatVars
doesn't account for SIMD
variables (which end up in the same registers and I'd imagine have similar considerations). Is that expected and/or should they be tracked separately?
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.
This PR is simply a refactoring of existing code. I've opened #82351 to track this issue. It looks like SIMD type trees get treated as using int
registers instead of float
registers for the purpose of loop hoisting profitability.
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.
Thanks! Definitely not something I thought should be handled here, more just an observation/question of the code that was being refactored
@AndyAyersMS PTAL |
Actually shows a small but measurable TP improvement |
Compute them before loop hoisting, where they are actually used, not at the beginning of value numbering.