-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Test failure JIT\\Regression\\JitBlue\\Runtime_63354\\Runtime_63354\\Runtime_63354.cmd #78898
Comments
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsRun: runtime-coreclr jitstress 20221126.2 Failed test:
Error message:
|
I bisected this bug. It was introduced on #76491. |
What is happening is we start a block with V01 arg0 in stack (ebp+08). It is copied to xmm1, indicating live and death. And then reporting the death again of the same variable in xmm1 for a second time without begin alive first. |
We are reporting a variable as dying in xmm1, although previously saying the same. The first change of liveness happens after HWINSTRINSIC:
where before we modified the variable directly on stack:
|
It looks suspect to me that |
Calling to genProduceReg (which triggers genUpdateLife) after treenode 39 seems to solved it. What I don't get is, it is a store, and flags indicate it is becoming alive, but we are not updating varDsc with the stack position. It is still there the offset and the lvIsOnFrame set, but the register doesn't change back to STK and keeps XMM1. So reporting life change after that would say v01 is becoming alive in XMM1. The next instruction that triggers the assert is a load from the stack to xmm1 of the same variable, which indicates first it is dying |
That also looks like a bug in |
Run: runtime-coreclr jitstress 20221126.2
Failed test:
Error message:
The text was updated successfully, but these errors were encountered: