Uh oh!
There was an error while loading. Please reload this page.
Fold all local addresses in local morph - #79194
Conversation
ghost
commented
Dec 3, 2022
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThis change enables folding for all local address trees in morph. This is a requirement for the next round of simplifications enabled by the There is some amount of (mostly positive) diffs due to more forward substitutions enabled by the fact
|
"getFieldClass" returns the field's owner class, not its own.
Unconditionally.
29df4b1 to
907a975CompareNo diffs except for one regression in a 400K bytes struct test.
907a975 to
e7a3efaCompareSingleAccretion
commented
Dec 4, 2022
@dotnet/jit-contrib @jakobbotsch This should solve the problem of return buffer calls not having defined address shape before morph. |
BruceForstall
commented
Dec 5, 2022
fyi, I reran the diffs/replay pipelines because they failed due to missing osx-arm64 MCH files. There should be some there now (but we're still missing libraries-pmi, which failed during collection) |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jakobbotsch
commented
Dec 6, 2022
Looks great to me! I will run some stress jobs. |
jakobbotsch
commented
Dec 6, 2022
/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress, Fuzzlyn |
|
Azure Pipelines successfully started running 3 pipeline(s). |
SingleAccretion
commented
Dec 6, 2022
Stress failures so far: #78898, #58699 (present in the run just before the current one as well). Libraries stress failures: comparison point is https://dev.azure.com/dnceng-public/public/_build/results?buildId=102920&view=results (the previous run), |
This change enables folding for all local address trees in local morph. This is a requirement for the next round of simplifications enabled by the
ADDRwork (e. g. #78246 depends on this).There is some amount of (mostly positive) diffs due to more forward substitutions enabled by the fact
LCL_ADDRnodes by themselves do not needGLOB_REF. Some regressions in tests due to a bit moreGLOB_REFing for "wide" indirs. One case in a huge test method where swappingLCL_VARandLCL_VAR_ADDRoperands for a relop leads us to miss out on a lot ofmovsuppression.There is also a very nice TP win, up to
1%reduction in instructions retired.