-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Increase arm32/arm64 maximum instruction group size #65153
Increase arm32/arm64 maximum instruction group size #65153
Conversation
We require that the maximum number of prolog instructions all fit in one instruction group. Recent changes appear to have increased the number of instructions we are generating the prolog, leading to NOWAY assert on Release builds and test failure on linux-arm64. Bump up the number to avoid this problem, and leave some headroom for possible additional needs. Fixes dotnet#64162, dotnet#64793.
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsWe require that the maximum number of prolog instructions all fit in one Bump up the number to avoid this problem, and leave some headroom for No SPMI asm diffs, although there are textual asm diffs due to changing the number of
|
@AndyAyersMS @dotnet/jit-contrib PTAL |
Hmmmm... the asmdiffs task reported some asmdiffs, even for the run where I saw none. Guess I should investigate why: |
One weakness of our asmdiffs pipeline is that it picks a baseline JIT from the JIT rolling build. That means that if your PR is submitted (and kicks off the asmdiffs pipeline) after another JIT change with diffs has merged, but before the rolling build has completed (about 11 minutes for windows x86/x64 -- which is what is used for asmdiffs, plus the delay time to mirror the change to the internal repo), you could baseline against something else. In this case, it looks like the diffs are for SingleAccretions copy prop change #64378, as seen in the "SuperPMI asmdiffs setup (x64)" job:
Potentially there could even be "tearing", if the x64 and x86 rolling builds took different amounts of time, and asmdiffs ended up getting different baselines. A solution would be to build the exact baseline needed as part of the pipeline, but that would be ... work. |
/azp run runtime-coreclr superpmi-asmdiffs |
Azure Pipelines successfully started running 1 pipeline(s). |
@BruceForstall, I wrote this workflow: https://github.com/am11/CrossRepoCITesting/blob/master/.github/workflows/jit-diff.yml which finds the nearest parent in |
@am11 very nice! We could (should?) do jit-diff (in addition to SuperPMI asmdiffs) in our automated asmdiffs pipeline, or an additional optional pipeline. Your workflow does a build, which is what I was suggesting we might want to do to avoid the delay/tearing problem. We do upload the top diffs, although I'm not sure how easy people find it to use currently. |
We require that the maximum number of prolog instructions all fit in one
instruction group. Recent changes appear to have increased the number of
instructions we are generating the prolog, leading to NOWAY assert on
Release builds and test failure on linux-arm64.
Bump up the number to avoid this problem, and leave some headroom for
possible additional needs.
Fixes #64162, #64793.
No SPMI asm diffs, although there are textual asm diffs due to changing the number of
instructions allowed in an instruction group before an "extension" group is created.