Fix failed assertion 'FPbased == FPbased2'#111787
Conversation
…ation merged SP+n and FP-m stores into a single pair-wise store
|
Can someone trigger |
|
/azp run runtime-coreclr libraries-jitstress |
|
Azure Pipelines successfully started running 1 pipeline(s). |
This comment was marked as outdated.
This comment was marked as outdated.
|
/azp run runtime-coreclr libraries-jitstress |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Can we run |
|
/azp run runtime-coreclr gcstress0x3-gcstress0xc, runtime-coreclr gcstress-extra |
|
Azure Pipelines successfully started running 2 pipeline(s). |
|
The |
|
That's a known issue. It's on my list of things to look at. |
I didn't see any other failure in the Azure history which is why I asked. I'm happy to know it's on the radar. |
|
@EgorBo are you the right reviewer for this? |
| // If there are 2 GC vars in this instrDesc, get the 2nd variable | ||
| // that should be tracked. | ||
| adr2 = emitComp->lvaFrameAddress(varNum2, &FPbased2, true); | ||
| adr2 = emitComp->lvaFrameAddress(varNum2, &FPbased2, FPbased); |
There was a problem hiding this comment.
I forgot to tell, but can you add a comment about suppressFPtoSPRewrite in the method docs of lvaFrameAddress? OK to do in separate PR.
* main: (31 commits) More native AOT Pri-1 test tree bring up (dotnet#111994) Fix BigInteger outerloop test (dotnet#111841) JIT: Run 3-opt once across all regions (dotnet#111989) JIT: Check for profile consistency throughout JIT backend (dotnet#111684) [JIT] Add legacy extended EVEX encoding and EVEX.ND/NF feature to x64 emitter backend (dotnet#108796) [iOS][globalization] Fix IndexOf on empty strings on iOS to return -1 (dotnet#111898) System.Speech: Use intellisense xml from dotnet-api-docs (dotnet#111983) [mono][mini] Disable inlining if we encounter class initialization failure (dotnet#111754) [main] Update dependencies from dotnet/roslyn (dotnet#111946) Update dependencies from https://github.com/dotnet/arcade build 20250129.2 (dotnet#111996) Try changing the ICustomQueryInterface implementation to always return NotHandled instead of Failed to defer back to the ComWrappers impl. (dotnet#111978) Combined dependency update (dotnet#111852) Replace OPTIMIZE_FOR_SIZE with feature switch (dotnet#111743) Fix failed assertion 'FPbased == FPbased2' (dotnet#111787) Add remark to `ConditionalSelect` (dotnet#111945) JIT: fix try region cloning when try is nested in a handler (dotnet#111975) Use IRootFunctions in Tensor.StdDev (dotnet#110641) Remove zlib dependencies from Docker containers (dotnet#111939) Avoid `Unsafe.As` for `Memory<T>` and `ReadOnlyMemory<T>` conversion (dotnet#111023) Cleanup membarrier portability (dotnet#111943) ...
When
lvaFrameAddressoptimizes one of the temporary variables (referenced as FP-m) to be placed next to existing SP+n variable (eg.OutgoingArgSpaceat SP+0) we may end up coalescing a pair-wise load/store between them. A previous attempt to handle the case only accounted for thelvaFrameAddressoptimization being applied to both of the variables or neither of them, but it didn't correctly handle the mixed variant.Fixes #111777