Uh oh!
There was an error while loading. Please reload this page.
Intrinsify CreateSpan in static constructor interpreter - #81747
Conversation
ghost
commented
Feb 7, 2023
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas Issue DetailsIntroduction of This adds intrinsic treatment to Cc @dotnet/ilc-contrib
|
EgorBo
commented
Feb 7, 2023
Is it possible to somehow test this behavior? the fact that a constructor is pre-evaluated in a console test |
MichalStrehovsky
commented
Feb 7, 2023
Yeah - the test in this PR is doing it |
MichalStrehovsky
commented
Feb 7, 2023
/azp run runtime-extra-platforms |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
MichalStrehovsky
commented
Feb 13, 2023
/azp run runtime-extra-platforms |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
MichalStrehovsky
commented
Feb 13, 2023
/azp run runtime-extra-platforms |
|
Azure Pipelines successfully started running 1 pipeline(s). |
MichalStrehovsky
commented
Feb 13, 2023
/azp run runtime-extra-platforms |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Introduction of
CreateSpanand its use in CoreLib regressed the number of types we can preinitialize. To add insult to injury, we were also hitting throwing paths in the cctor interpreter because the patterns generated by the C# compiler got lumped into uninteresting IL-only sequences we treated as invalid IL (the cctor interpreter should really only throw for invalid IL, but sometimes we throw for valid-but-uncommon IL too). As a result, even a hello world was hitting half a dozen first chance exceptions.This adds intrinsic treatment to
CreateSpan. We also need to treatReadOnlySpanspecially because of #78681. That issue is basically a rewrite of the interpreter memory model and likely won't be addressed anytime soon.Cc @dotnet/ilc-contrib