Skip to content

Conversation

@kunalspathak
Copy link
Contributor

@kunalspathak kunalspathak commented Jan 16, 2024

In #95530, we forgot to consume the register that leads to a temp register around.

Fixes: #96599

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 16, 2024
@ghost ghost assigned kunalspathak Jan 16, 2024
@ghost
Copy link

ghost commented Jan 16, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

In #95530, we forgot to consume the register that leads to a temp register around.

Fixed: #96599

Author: kunalspathak
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@kunalspathak
Copy link
Contributor Author

/azp run runtime-coreclr libraries-jitstress2-jitstressregs, runtime-coreclr jitstress2-jitstressregs

@kunalspathak
Copy link
Contributor Author

@dotnet/jit-contrib @EgorBo PTAL

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@EgorBo
Copy link
Member

EgorBo commented Jan 16, 2024

Does it lead to bad codegen? (because that PR was backported to 8.0) or just consumes unnecessary reg?

CI failures seem related?

@kunalspathak
Copy link
Contributor Author

Does it lead to bad codegen? (because that PR was backported to 8.0) or just consumes unnecessary reg?

It should consume the unnecessary reg, but perhaps that is leading to unused register and that is getting used somewhere below with wrong value. Let me investigate. However, I think for arm64, if we know that we will be using xzr for op1, we should ideally convey that information during LSRA or should we mark the node as contained.

CI failures seem related?

Taking a look

@kunalspathak
Copy link
Contributor Author

@kunalspathak
Copy link
Contributor Author

ah, i think the short-circuit for stress is missing the containment marking.
https://github.com/dotnet/runtime/pull/95530/files#diff-547b75c8f8dd006693805c30d7a0e2ddcdd6b10691383dfbb16e3ed0c50f236aR572

@EgorBo
Copy link
Member

EgorBo commented Jan 16, 2024

ah, i think the short-circuit for stress is missing the containment marking.

Cool, then it doesn't need any backport to 8.0 🙂 LGTM if CI agrees

@kunalspathak
Copy link
Contributor Author

/azp run runtime-coreclr libraries-jitstress2-jitstressregs, runtime-coreclr jitstress2-jitstressregs

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@kunalspathak
Copy link
Contributor Author

Failures seems unrelated because the changes are on arm64, and failures are x86.

@kunalspathak kunalspathak merged commit 45b56e5 into dotnet:main Jan 16, 2024
@kunalspathak kunalspathak deleted the tmpGetCount branch January 16, 2024 20:10
tmds pushed a commit to tmds/runtime that referenced this pull request Jan 23, 2024
* Consume regs for BlkOpKindLoop

* Mark the node as contained

* undo Program.cs commit
@github-actions github-actions bot locked and limited conversation to collaborators Feb 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Test failure JIT/Regression/JitBlue/GitHub_65690/GitHub_65690/GitHub_65690.cmd

3 participants