Skip to content

Conversation

@kunalspathak
Copy link
Contributor

The consumer for a multi-reg node can be a GT_COPY, individual registers of multi-reg node can either get copied (they are assigned a different register at the use than the one they were assigned at def) or reloaded (they are spilled and got assigned to a different register than they were originally assigned at the def). Our code paths already handle the situation where RefPosition can be mixed of copy/reload and as such there is no need of an assert that enforce that all RefPositions should either be copy or all should be reload.

In #99810, the call in the test produced 4 registers, and one of which (because of constraint enforced by JitStressRegs=8) get spilled and hence marked for reload. But that should be ok to have and the current assert was prohibiting us from such scenario to exist.

Other details: #99810 (comment)

Fixes: #99810

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 2, 2024
@dotnet-policy-service
Copy link
Contributor

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

@kunalspathak
Copy link
Contributor Author

@dotnet/jit-contrib

@kunalspathak kunalspathak changed the title Remove assert LSRA: Remove assert that enforces all multi-reg RefPositions to be either copy or reload but not mixed May 3, 2024
@kunalspathak
Copy link
Contributor Author

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

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@kunalspathak
Copy link
Contributor Author

jitstressregs failure is #100476

@kunalspathak kunalspathak merged commit 43a341a into dotnet:main May 3, 2024
@kunalspathak kunalspathak deleted the superpmi-swift branch May 3, 2024 13:00
michaelgsharp pushed a commit to michaelgsharp/runtime that referenced this pull request May 9, 2024
Ruihan-Yin pushed a commit to Ruihan-Yin/runtime that referenced this pull request May 30, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Jun 4, 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.

JIT: Assertion failed 'parent->OperGet() == oper' during 'LSRA allocate'

2 participants