Skip to content
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

Assertion failed 'varDsc->lvExactSize == 12' #36586

Closed
BruceForstall opened this issue May 15, 2020 · 2 comments · Fixed by #38484
Closed

Assertion failed 'varDsc->lvExactSize == 12' #36586

BruceForstall opened this issue May 15, 2020 · 2 comments · Fixed by #38484
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@BruceForstall
Copy link
Member

BruceForstall commented May 15, 2020

Failure in libraries System.Numerics.Vectors.Tests: release libraries, checked coreclr with:

set COMPlus_JitStress=1

(note that TieredCompilation is the default 1)

Windows x64

E.g.,

build -s libs+libs.tests -runtimeConfiguration checked -c Release -arch x64 /p:ArchiveTests=true

(the /p:ArchiveTests=true is required to build the RunTests.cmd wrapper scripts)

C:\gh\runtime\artifacts\bin\System.Numerics.Vectors.Tests\net5.0-Release>call .\RunTests.cmd -r C:\gh\runtime\artifacts\bin\testhost\net5.0-Windows_NT-Release-x64
Assert failure(PID 42844 [0x0000a75c], Thread: 13268 [0x33d4]): Assertion failed 'varDsc->lvExactSize == 12' in 'System.Numerics.Tests.Matrix4x4Tests:Matrix4x4CreateFromAxisAngleTest():this' during 'Lowering nodeinfo' (IL size 357)

    File: C:\gh\runtime\src\coreclr\src\jit\compiler.h Line: 3498
    Image: C:\gh\runtime\artifacts\bin\testhost\net5.0-Windows_NT-Release-x64\dotnet.exe

@tannergooding @CarolEidt @echesakovMSFT

@BruceForstall BruceForstall added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 15, 2020
@BruceForstall BruceForstall added this to the 5.0 milestone May 15, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label May 15, 2020
@BruceForstall BruceForstall removed the untriaged New issue has not been triaged by the area owner label May 18, 2020
@tannergooding
Copy link
Member

This is failing because optCSE is introducing a LCL_VAR but due to there being no known class handle, lvExactSize is never set and is therefore 0: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/optcse.cpp#L2640-L2651

@tannergooding
Copy link
Member

@CarolEidt it looks like the relevant code was introduced back in dotnet/coreclr#22255, but the recent changes for implementing GT_SIMD as GT_HWINTRINSIC have exposed it: #35421.

It wasn't appearing for GT_SIMD because this particular case inserted the left/right shift in codegen (which was the one place I called out we were producing additional node in importation: #35421 (comment)).

@sandreenko sandreenko self-assigned this Jun 4, 2020
BruceForstall added a commit to BruceForstall/runtime that referenced this issue Jun 11, 2020
```
src/libraries/System.Numerics.Vectors/tests/Matrix3x2Tests.cs
dotnet#36587
Matrix3x2CreateRotationCenterTest()

dotnet#36587
Matrix3x2CreateScaleCenterTest1()

dotnet#36587
Matrix3x2CreateScaleCenterTest3()

src/libraries/System.Numerics.Vectors/tests/Matrix4x4Tests.cs
dotnet#36586
Matrix4x4CreateFromAxisAngleTest()
```
BruceForstall added a commit that referenced this issue Jun 16, 2020
* Add JIT stress mode testing using libraries tests

There are three separate pipelines, with different sets of JIT
stress modes enabled for each:

- libraries-jitstress.yml
- libraries-jitstress2-jitstressregs.yml
- libraries-jitstressregs.yml

The live built Release libraries are used with a Checked CoreCLR.

The non-stress configuration is tested during normal PR testing.

The libraries `sendtohelix.proj` file is changed to take an optional
list of CoreCLR stress scenarios to run. If given, a set of environment
setting scripts is created and added to the Helix correlation payload.
Then, an auxiliary `sendtohelixhelp.proj` file is invoked for each
scenario (or just the default, empty scenario) to create and run the
Helix tasks.

* Remove remnants of old corefx-on-coreclr test run infrastructure

* Rename corefx-*.yml to libraries-*.yml

* Disable tests

```
src/libraries/System.Numerics.Vectors/tests/Matrix3x2Tests.cs
#36587
Matrix3x2CreateRotationCenterTest()

#36587
Matrix3x2CreateScaleCenterTest1()

#36587
Matrix3x2CreateScaleCenterTest3()

src/libraries/System.Numerics.Vectors/tests/Matrix4x4Tests.cs
#36586
Matrix4x4CreateFromAxisAngleTest()
```

* Fix run-test-job.yml

* Fix BuildAllConfigurations case
@ghost ghost locked as resolved and limited conversation to collaborators Dec 9, 2020
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 a pull request may close this issue.

4 participants