-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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