Uh oh!
There was an error while loading. Please reload this page.
JIT: OSR jitstress fixes; enable struct promotion - #65903
Conversation
Fix OSR jitstress failures by disabling STRESS_LCL_FLD for two cases: * for Tier0 methods with patchpoints (because patchpoint info generation does not produce the right offsets when locals are padded) * for OSR locals in OSR methods (because they live on the Tier0 frame and so can't have their storage altered. Enable struct promotion for OSR locals. In most cases this ends up being dependent promotion. Enabling independent promotion will take more work.
ghost
commented
Feb 25, 2022
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsFix OSR jitstress failures by disabling STRESS_LCL_FLD for two cases:
Enable struct promotion for OSR locals. In most cases this ends up being
|
@BruceForstall PTAL Expect diffs in asp.net for OSR methods (if the current collection is viable). If not I will post my local diffs. This fixes the ~20% regression seen in See #33658 (comment) and subsequent comments for context. |
AndyAyersMS
commented
Feb 25, 2022
Jitstress OSR fixes were validated over in #65675 (though it is hard to tell given the CI issues in the last testing cycle). I can't easily run jitstress + OSR on this PR, but will run OSR stress. |
AndyAyersMS
commented
Feb 25, 2022
/azp run runtime-jit-experimental |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Uh oh!
There was an error while loading. Please reload this page.
AndyAyersMS
commented
Feb 25, 2022
/azp run runtime-jit-experimental |
|
Azure Pipelines successfully started running 1 pipeline(s). |
AndyAyersMS
commented
Feb 26, 2022
Opened #65914 for the asserts seen in |
Don't see any asp.net diffs from the spmi job. Here's what I saw locally. There are around 1350 OSR methods in this collection, so about 10% were impacted. |
AndyAyersMS
commented
Feb 26, 2022
Some pre-existing stress failures in |
AndyAyersMS
commented
Feb 26, 2022
FYI the failure in G_M57283_IG13: ;; offset=00ECH D2939C09 mov x9, #0x9ce0 CB2963FF subsp,sp, x9 A9007BFD stp fp, lr,[sp]** blows up here ** A90253F3 stp x19, x20,[sp,#32] D2939C02 mov x2, #0x9ce0 8B0203A3 add x3, fp, x2 F9000FE3 str x3,[sp,#24] ;; bbWeight=0 PerfScore 0.00G_M57283_IG14: ;; offset=0108H 10FFFE60 adr x0,[G_M57283_IG11] ;; bbWeight=0 PerfScore 0.00G_M57283_IG15: ;; offset=010CH A94253F3 ldp x19, x20,[sp,#32] A9407BFD ldp fp, lr,[sp] D2939C09 mov x9, #0x9ce0 8B2963FF addsp,sp, x9 D65F03C0 ret lr |
This undoes part of dotnet#65903. OSR methods can't rely solely on their own analysis for struct promotion as they only see parts of methods.
This undoes part of #65903. OSR methods can't rely solely on their own analysis for struct promotion as they only see parts of methods.
Fix OSR jitstress failures by disabling STRESS_LCL_FLD for two cases:
does not produce the right offsets when locals are padded)
so can't have their storage altered.
Enable struct promotion for OSR locals. In most cases this ends up being
dependent promotion. Enabling independent promotion will take more work.