-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Remove GT_ADDEX and replace with more generalized containment handling #76273
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThis makes more progress towards #68028
|
d1bd576
to
94e17ab
Compare
d060329
to
c3515a8
Compare
/azp run runtime-coreclr jitstress, runtime-coreclr gcstress0x3-gcstress0xc, Fuzzlyn |
Azure Pipelines successfully started running 3 pipeline(s). |
Any idea what causes size regressions? https://dev.azure.com/dnceng-public/public/_build/results?buildId=32858&view=ms.vss-build-web.run-extensions-tab |
@EgorBo, looks like some places aren't getting contained anymore and they were on the previous path. Looking again, this would be because the original path handles GT_CAST having a contained op itself by clearing the containment Where-as the new path checked the containment the |
/azp run runtime-coreclr jitstress, runtime-coreclr gcstress0x3-gcstress0xc, Fuzzlyn |
Azure Pipelines successfully started running 3 pipeline(s). |
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.
Similar to what we did for msub
and madd
- let containment drive all of it rather than have a separate op.
MinOpts is a size regression since it now only does this opt when optimizations are enabled, but that also gives a very minor throughput improvement (-0.01%). If we were willing to take a regression to MinOpts instead (+0.01%) and do this containment even in minopts, then we'd save more than 24k size instead. Given that Arm64 has fixed-sized instructions, this might be beneficial overall. |
Many diffs are cases like the following: - add x0, x0, w26, UXTW
- ldrb w0, [x0]
+ ldrb w0, [x0, w26, UXTW #2] These seem to mostly be due to There are a few small regressions such as: + lsl w0, w0, #8
ldr x1, [fp, #0xA8] // [V192 tmp170]
ldrb w1, [x1, #0x01]
- add w1, w1, w0, LSL #8
+ add w1, w0, w1 Notably we're checking if We're also checking |
/azp run Fuzzlyn |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
Nice diffs from a clean up 🙂
This makes more progress towards #68028