-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Do not try obtaining canonical dictionaries in VirtualDispatchCellGenericLookupResult
#123512
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
Conversation
…nericLookupResult`
Native AOT outerloop builds are broken:
```
Process terminated. Assertion failed.
!owningType.IsCanonicalSubtype(CanonicalFormKind.Any)
at System.Diagnostics.DebugProvider.Fail(String, String) + 0x37
at System.Diagnostics.Debug.Fail(String, String) + 0x49
at ILCompiler.DependencyAnalysis.TypeGenericDictionaryNode..ctor(TypeDesc, NodeFactory) + 0x4c
...
D:\a\_work\1\s\artifacts\bin\coreclr\windows.x64.Checked\build\Microsoft.NETCore.Native.targets(332,5): error MSB3073: The command ""D:\a\_work\1\s\artifacts\bin\coreclr\windows.x64.Checked\x64\ilc\\ilc" @"D:\a\_work\1\s\artifacts\obj\Microsoft.Extensions.Logging.Tests\Release\net11.0-windows\native\Microsoft.Extensions.Logging.Tests.ilc.rsp"" exited with code 57005. [D:\a\_work\1\s\src\libraries\Microsoft.Extensions.Logging\tests\Common\Microsoft.Extensions.Logging.Tests.csproj::TargetFramework=net11.0-windows]
```
This is because we're trying to obtain generic dictionaries of something in a canonical form from here. The callsite identifier parameter is not necessary when referencing from NonConcrete methods because we're not going to build an associated generic dictionary anyway.
|
Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib |
|
/azp run runtime-nativeaot-outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR fixes a regression introduced in PR #122012 that caused outerloop test failures. The issue manifested as an assertion failure when attempting to create generic dictionaries for canonical types.
Changes:
- Fixed
VirtualDispatchCellGenericLookupResult.GetTargetto avoid creating generic dictionaries for non-concrete instantiations - Added conditional logic to only create dictionary nodes when
isConcreteInstantiationis true
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/GenericLookupResult.cs
Show resolved
Hide resolved
sbomer
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for taking care of this!
|
/ba-g remaining native aot failures are fixed by other PRs |
We broke outerloops in #122012. Looks like the outerloop run was already broken in that PR but nobody went over the results.
This is because we're trying to obtain generic dictionaries of something in a canonical form from here. The callsite identifier parameter is not necessary when referencing from NonConcrete methods because we're not going to build an associated generic dictionary anyway.