platform/upstream/dotnet/runtime.git
23 months ago[JIT] ARM64 - Optimize `x < 0` and `x >= 0` (#83176)
Will Smith [Thu, 16 Mar 2023 23:59:39 +0000 (16:59 -0700)]
[JIT] ARM64 - Optimize `x < 0` and `x >= 0` (#83176)

* Initial work that allows optimizing x < 0

* Few tweaks

* Optimized x < 0 and x >= 0 for conditionals

* Removed old commented code. Switched tbz and tbnz

* Simplified

* Fix build

* Check for possible interference

* Reverse

* Check invariant-range

* Cleanup

* Cleanup

* Handle new JCMP flags in gtReverseCond

* Comment update

* Remove extra flags

* Simplify further

* Fix warning

* Update src/coreclr/jit/lower.cpp

Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
* Fix warning

* Fixing assert

---------

Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
23 months agoConvert to GeneratedRegexAttribute fixer should preserve references to const string...
Badre BSAILA [Thu, 16 Mar 2023 23:35:23 +0000 (00:35 +0100)]
Convert to GeneratedRegexAttribute fixer should preserve references to const string fields (#81997)

* Convert to GeneratedRegexAttribute fixer should preserve references to const string fields

* add test to cover external const case

* fix double slashes

* simplify verbatime string generation

* delete unused quote

23 months agoRaise inlining length limit in the interpreter from 20 to 30. (#83490)
Katelyn Gadd [Thu, 16 Mar 2023 23:24:53 +0000 (16:24 -0700)]
Raise inlining length limit in the interpreter from 20 to 30. (#83490)

This is enough to allow List<T>.get_Item to be inlined (as long as we also allow calls), among other critical methods, and enables big speedups for some benchmarks.

23 months agofix a bug where totalCPU count was being used for cachesize computation (#83528)
Manish Godse [Thu, 16 Mar 2023 21:46:36 +0000 (14:46 -0700)]
fix a bug where totalCPU count was being used for cachesize computation (#83528)

23 months agoCoreCLR support for InlineArrayAttribute. (struct layout part) (#82744)
Vladimir Sadov [Thu, 16 Mar 2023 21:45:39 +0000 (14:45 -0700)]
CoreCLR support for InlineArrayAttribute.  (struct layout part) (#82744)

* initial port from the prototype

* parse the attribute in MT builder

* validate replicated size

* aot changes

* refmap

* validate total size in ilc

* add the actual attribute

* Apply suggestions from code review

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* add a small use of InlineArray in CoreLib - to get some crossgen coverage.

* a few more uses in CorLib

* fix for sequential layout

* Standardize on use of "InlineArray" in the implementation

* simpler layout replication

* some initial tests (will add more)

* more tests

* limit the max size of array instance to 1MiB

* fix an assert in importercalls.cpp

* "result" in GC layout should track the pointer count, not the size

* error messages

* fixed uses of "value array" in comments.

* PR feedback on StackAllocedArguments

* use the same size limit for inline arrays in the typeloader

* more PR feedback

* remove SetCannotBeBlittedByObjectCloner

* moving GetInlineArrayLength to MetadataType and related changes

* use  type.Context.Target.PointerSize

* lost resources change

* fix for x86

* Do not make InlineArrayType an inline array just yet.

* CORINFO_FLG_INDEXABLE_FIELDS

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
23 months agoCreate source generator for configuration binding (#82179)
Layomi Akinrinade [Thu, 16 Mar 2023 21:42:38 +0000 (14:42 -0700)]
Create source generator for configuration binding (#82179)

* Create source generator for configuration binding

* Add baseline tests

* Rename test project folders

* Avoid passing entire compilation to generator execute method

* Enable nullable

* Add logic to include generator in nuget package and enable it conditionally

* Address feedback

23 months agoRemove S.S.Permissions reference from S.DirectoryServices (#82453)
Steve Harter [Thu, 16 Mar 2023 21:26:58 +0000 (16:26 -0500)]
Remove S.S.Permissions reference from S.DirectoryServices (#82453)

23 months agodisable startupMemoryCache by default (#83536)
Pavel Savara [Thu, 16 Mar 2023 20:37:56 +0000 (21:37 +0100)]
disable startupMemoryCache by default (#83536)

23 months agoAdding support for Vector512 bitwise operations: And, AndNot, Or, OnesComplement...
Tanner Gooding [Thu, 16 Mar 2023 20:36:24 +0000 (13:36 -0700)]
Adding support for Vector512 bitwise operations: And, AndNot, Or, OnesComplement, and Xor (#83354)

* Adding support for Vector512 bitwise operations: And, AndNot, Or, OnesComplement, and Xor

* Adding AVX512F APIs for And, AndNot, Load, Or, Store, and Xor

* Fix the "throw new PlatformNotSupported" expressions for Avx512F

* Fixing some test build failures

* Ensure the Avx512F and related classes can lightup in import

* Ensure that JitStressEvexEncoding is only checked in debug

* Allow 64-bit alignment in the test data table types and fix the AVX512 enablement check

23 months ago[node] unblock WS tests (#83518)
Pavel Savara [Thu, 16 Mar 2023 20:34:31 +0000 (21:34 +0100)]
[node] unblock WS tests (#83518)

* active issue https://github.com/dotnet/runtime/issues/83517
Co-authored-by: Marek Fišera <mara@neptuo.com>
23 months agoFix System.Management wminet_utils.dll lookup code for arm64 (#83522)
Viktor Hofer [Thu, 16 Mar 2023 20:27:16 +0000 (21:27 +0100)]
Fix System.Management wminet_utils.dll lookup code for arm64 (#83522)

* Fix System.Management wminet_utils.dll lookup code for arm64

* Update ManagementScope.cs

23 months agoUse SOS to dump managed stack traces from a dump on Windows (#82867)
Jeremy Koritzinsky [Thu, 16 Mar 2023 20:14:39 +0000 (13:14 -0700)]
Use SOS to dump managed stack traces from a dump on Windows (#82867)

23 months agoImplements Requires*Attribute on class behavior for NativeAOT (#83417)
Vitek Karas [Thu, 16 Mar 2023 13:49:47 +0000 (06:49 -0700)]
Implements Requires*Attribute on class behavior for NativeAOT (#83417)

Implements most of the missing pieces to get Requires on class working correctly in NativeAOT.

Major changes:
* Detect Requires mismatch between derived and base class
* Warn on field access if the owning class has Requires
* Changes to reflection marking to warn on more cases (instance methods on Requires classes for example)

Supportive changes:
* The helpers to detect Requires attributes now return the found attribute view out parameter

Fixes #81158

Still two missing pieces - tracked by https://github.com/dotnet/runtime/issues/82447:
* Requires on attributes - NativeAOT doesn't handle this at all yet, part of it is Requires on the attribute class
* Avoid warning when DAM marking an override method which has Requires (or its class has) - this avoids lot of noise, NativeAOT currently generates these warnings in full

23 months ago[mono][interp] Lower div.un to shr.un.imm (#83498)
Vlad Brezae [Thu, 16 Mar 2023 13:05:44 +0000 (15:05 +0200)]
[mono][interp] Lower div.un to shr.un.imm (#83498)

* [mono][interp] Remove redundant opcode

Generate sub opcode instead which is detected by other optimizations.

* [mono][interp] Lower div.un to shr.un

23 months agoChange LSRA to more efficiently initialize the availableRegs array (#83479)
Tanner Gooding [Thu, 16 Mar 2023 12:59:31 +0000 (05:59 -0700)]
Change LSRA to more efficiently initialize the availableRegs array (#83479)

* Change LSRA to more efficiently initialize the availableRegs array

* Apply formatting patch

23 months agoUpdated generated interop files from msquic (#83092)
Marie Píchová [Thu, 16 Mar 2023 10:20:48 +0000 (11:20 +0100)]
Updated generated interop files from msquic (#83092)

23 months ago[browser] Fix encoding problem when publishing (#82833)
Ilona Tomkowicz [Thu, 16 Mar 2023 07:54:34 +0000 (08:54 +0100)]
[browser] Fix encoding problem when publishing (#82833)

* Fixed https://github.com/dotnet/runtime/issues/78953.

* New wbt publish test case: Unicode sign in project name.

* Removed duplicated, unused function + addressed @akoeplinger review.

* Fix.

* Revert AOT tests to fix them in a follow-up.

* Test Blazor as well.

* @radical's review: test reduction + relinking

* Block relinking tests with Unicode signs.

* Added active issue link.

23 months agoChange execution order conditions for intellisense swapping and copying msbuild targe...
Carlos Sánchez López [Thu, 16 Mar 2023 07:45:27 +0000 (00:45 -0700)]
Change execution order conditions for intellisense swapping and copying msbuild targets. (#83117)

* Change execution order conditions for intellisense swapping and copying msbuild targets.

* Don't change doc file when there isn't a intellisense one

---------

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
23 months agoRemove System.Drawing.Common from runtime (#83356)
Viktor Hofer [Thu, 16 Mar 2023 02:58:09 +0000 (03:58 +0100)]
Remove System.Drawing.Common from runtime (#83356)

* Remove System.Drawing.Common from runtime

System.Drawing.Common was merged into winforms with
https://github.com/dotnet/winforms/pull/8633.

Removing its sources and using PackageReferences to reference it.

* Remove dependency and fix tests

* Fix shim S.D.C reference

* Remove runtime test which causes failures

23 months ago[main] Update dependencies from dotnet/arcade (#83386)
dotnet-maestro[bot] [Thu, 16 Mar 2023 02:30:29 +0000 (22:30 -0400)]
[main] Update dependencies from dotnet/arcade (#83386)

* Update dependencies from https://github.com/dotnet/arcade build 20230313.1

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23159.1 -> To Version 8.0.0-beta.23163.1

* Update dependencies from https://github.com/dotnet/arcade build 20230314.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23159.1 -> To Version 8.0.0-beta.23164.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
23 months ago[wasm][debugger] Debug CI (#83266)
Thays Grazia [Thu, 16 Mar 2023 01:27:09 +0000 (22:27 -0300)]
[wasm][debugger] Debug CI (#83266)

Increase timeout
wait until the runtime is ready when receive dotnet.runtests command.

23 months agoAdd host tests for asset resolution behaviour without fallback graph (#83434)
Elinor Fung [Thu, 16 Mar 2023 00:15:41 +0000 (17:15 -0700)]
Add host tests for asset resolution behaviour without fallback graph (#83434)

23 months agoAdd property to get owner composite executable (#83339)
Eduardo Velarde [Wed, 15 Mar 2023 22:12:18 +0000 (15:12 -0700)]
Add property to get owner composite executable (#83339)

23 months agoAdd lowering for get_One, get_AllBitSet, createScalar(), createScalarUnsafe(). ...
DeepakRajendrakumaran [Wed, 15 Mar 2023 21:07:40 +0000 (14:07 -0700)]
Add lowering for get_One,  get_AllBitSet, createScalar(), createScalarUnsafe(). (#83402)

* Add lowering for get_One, and get_AllBitSet.

* CreateScalar() CreateScalarUnsafe()

* Fix incorrect switch + disasm

23 months ago[Codespaces] Fix prebuild by using newer dotnet sdk (#83331)
Alexander Köplinger [Wed, 15 Mar 2023 21:00:25 +0000 (22:00 +0100)]
[Codespaces] Fix prebuild by using newer dotnet sdk (#83331)

fix to resolve a build error during Codespaces prebuild: https://github.com/dotnet/msbuild/issues/8531

23 months agoRevert "[wasm] Add a monitoring phase to jiterpreter traces and discard unproductive...
Katelyn Gadd [Wed, 15 Mar 2023 20:36:38 +0000 (13:36 -0700)]
Revert "[wasm] Add a monitoring phase to jiterpreter traces and discard unproductive ones (#83432)" (#83446)

This reverts commit 1cfda5e9a887d39004644c2f96a87b31fcca0ac7.

23 months agothrow specific Authentication exception for ephemeral keys on Windows (#83436)
Tomas Weinfurt [Wed, 15 Mar 2023 19:31:38 +0000 (12:31 -0700)]
throw specific Authentication exception for ephemeral keys on Windows (#83436)

* throw specific Authentication exception for ephemenral keys on Windows

* cleanup

* android

* Update src/libraries/System.Net.Security/src/Resources/Strings.resx

Co-authored-by: Kevin Jones <vcsjones@github.com>
---------

Co-authored-by: Kevin Jones <vcsjones@github.com>
23 months agoSwitch tests for --depsfile to mocked components (#83435)
Elinor Fung [Wed, 15 Mar 2023 18:21:09 +0000 (11:21 -0700)]
Switch tests for --depsfile to mocked components (#83435)

23 months agoJIT: Fold unreachable cases for switch in importer. (#82793)
Julie Lee [Wed, 15 Mar 2023 16:14:49 +0000 (09:14 -0700)]
JIT: Fold unreachable cases for switch in importer. (#82793)

* Fold unreachable cases for switch in importer.

* Enable Switch Folding only when opts.OptimizationEnabled() is true to resolve regression in minopts.

* Code cleanup.

23 months ago[wasm] Fix threading startup after emscripten bump; add smoke test (#83352)
Aleksey Kliger (λgeek) [Wed, 15 Mar 2023 15:45:05 +0000 (11:45 -0400)]
[wasm] Fix threading startup after emscripten bump; add smoke test (#83352)

* Fix threading startup after Emscripten 3.1.30 bump

* Add threading smoke test

* Run threading smoke test on rolling builds and on every PR

* force run the threading smoke tests for runtime-wasm

* Apply suggestions from code review

* threading smoke tests only on browser

* remove all default smoke tests before adding minimal threading test

Co-authored-by: Ankit Jain <radical@gmail.com>
23 months agoJIT: fix bug in cloning conditions for jagged array (#83414)
Andy Ayers [Wed, 15 Mar 2023 14:53:22 +0000 (07:53 -0700)]
JIT: fix bug in cloning conditions for jagged array (#83414)

When checking that an inner array access is in bounds, we must ensure any outer
access is fully in bounds too. We were checking that `idx < array.Len` but not
that `idx >= 0`.

Use an unsigned compare for this check so we can do both sides with a single
instruction.

Fixes #83242.

23 months agoSpecify compacting GC in ObjWriter (#83447)
Michal Strehovský [Wed, 15 Mar 2023 14:43:42 +0000 (23:43 +0900)]
Specify compacting GC in ObjWriter (#83447)

23 months agoObjectFactory should verify against a null serviceProvider (#82739)
Badre BSAILA [Wed, 15 Mar 2023 13:34:01 +0000 (14:34 +0100)]
ObjectFactory should verify against a null serviceProvider (#82739)

23 months agoFix Test Watcher Timeouts and Log Checker File Reading Issues (#83427)
Ivan Diaz Sanchez [Wed, 15 Mar 2023 12:54:37 +0000 (05:54 -0700)]
Fix Test Watcher Timeouts and Log Checker File Reading Issues (#83427)

* Added safeguards for reading files with the log checker and fixed the low timeouts.

* Changed seconds to elapsedmilliseconds

23 months ago[Mono] Add more binary op intrinsics for ARM64 mini JIT (#83337)
Fan Yang [Wed, 15 Mar 2023 12:15:41 +0000 (08:15 -0400)]
[Mono] Add more binary op intrinsics for ARM64 mini JIT (#83337)

* Add more arm64 intrinsics for binary op

* Enable two operator operations

* Enable UnaryPlus

* Address review feedback

* Remove name

23 months agoJIT: Remove "add copies" phase (#83310)
Jakob Botsch Nielsen [Wed, 15 Mar 2023 10:57:55 +0000 (11:57 +0100)]
JIT: Remove "add copies" phase (#83310)

This phase seems to try to do some ad-hoc live range splitting to improve things in assertion prop, but it almost barely kicks in.
When it does kick in it seems to overall be a regression, both in ASM diffs and in TP diffs.
Furthermore, we pay 16 bytes in every LclVarDsc (out of 88) for bookkeeping purposes for this pass, even in MinOpts.

23 months agofix noisy tests (#83448)
Pavel Savara [Wed, 15 Mar 2023 10:03:20 +0000 (11:03 +0100)]
fix noisy tests (#83448)

23 months ago[browser] new EmccEnableAssertions and EmccEnvironment MSBuild props (#82954)
Pavel Savara [Wed, 15 Mar 2023 10:02:51 +0000 (11:02 +0100)]
[browser] new EmccEnableAssertions and EmccEnvironment MSBuild props (#82954)

* EmccEnableAssertions and EmccEnvironment MSBuild props
* symbols as separate asset type

Co-authored-by: Ankit Jain <radical@gmail.com>
Co-authored-by: Marek Fišera <mara@neptuo.com>
23 months agoProduce IL3000 and IL3001 from NativeAOT compiler (#83253)
Vitek Karas [Wed, 15 Mar 2023 09:38:29 +0000 (02:38 -0700)]
Produce IL3000 and IL3001 from NativeAOT compiler (#83253)

This also implements the suppression of the IL3002 on the affected methods both in the NativeAOT compiler and the analyzer.

Adds single-file specific tests which are skipped for the trimmer.

Fixes: https://github.com/dotnet/runtime/issues/83088
Fixes: https://github.com/dotnet/runtime/issues/82475
23 months agoEventPipe container types optimizations. (#83251)
Johan Lorensson [Wed, 15 Mar 2023 08:07:42 +0000 (09:07 +0100)]
EventPipe container types optimizations. (#83251)

During work collecting regressions statistics for #78852 I did some profiling on performance tests included in native EventPipe tests, https://github.com/dotnet/runtime/blob/main/src/mono/mono/eventpipe/test. This commit implements a couple of optimizations in the EventPipe native container classes as well as Mono's EventPipe implementation improving performance in low level native EventPipe performance tests.

Commit also includes a number of new native EventPipe tests covering optimizations done in dn_vector_ptr_t.

23 months agoBump webpack from 5.68.0 to 5.76.0 in /src/mono/sample/wasm/node-webpack (#83418)
dependabot[bot] [Wed, 15 Mar 2023 08:01:27 +0000 (09:01 +0100)]
Bump webpack from 5.68.0 to 5.76.0 in /src/mono/sample/wasm/node-webpack (#83418)

Bumps [webpack](https://github.com/webpack/webpack) from 5.68.0 to 5.76.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.68.0...v5.76.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
23 months agoAdd an INTERP_OPT for the jiterpreter (#83363)
Katelyn Gadd [Wed, 15 Mar 2023 07:52:47 +0000 (00:52 -0700)]
Add an INTERP_OPT for the jiterpreter (#83363)

This ensures that it will be disabled when debugging

23 months agoImplement JsonSerializerOptions.TypeInfoResolverChain. (#83358)
Eirik Tsarpalis [Wed, 15 Mar 2023 07:16:26 +0000 (07:16 +0000)]
Implement JsonSerializerOptions.TypeInfoResolverChain. (#83358)

* Implement JsonSerializerOptions.TypeInfoResolverChain.

* Move DebuggerDisplay from ConfigurationList to JsonTypeInfoResolverChain -- address feedback.

* Ensure JsonSerializerOptions hash equates null with empty converter list.

* Use correct error message when modifying readonly resolver chains.

* Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.Caching.cs

* Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.Caching.cs

23 months agoEnable EventSource in ILC (#83433)
Michal Strehovský [Wed, 15 Mar 2023 06:20:21 +0000 (15:20 +0900)]
Enable EventSource in ILC (#83433)

23 months ago[wasm] Add a monitoring phase to jiterpreter traces and discard unproductive ones...
Katelyn Gadd [Wed, 15 Mar 2023 05:33:41 +0000 (22:33 -0700)]
[wasm] Add a monitoring phase to jiterpreter traces and discard unproductive ones (#83432)

* Add a monitoring phase to jiterpreter traces, where we determine the average distance (in bytes) they travel. Then reject traces that have a low average distance after the monitoring period

23 months agoImplement HResult swapping for generated COM methods. (#83348)
Jeremy Koritzinsky [Wed, 15 Mar 2023 02:24:48 +0000 (19:24 -0700)]
Implement HResult swapping for generated COM methods. (#83348)

23 months agoFix spurious exception while compiling optimized code (#83324)
Michal Strehovský [Wed, 15 Mar 2023 01:28:51 +0000 (10:28 +0900)]
Fix spurious exception while compiling optimized code (#83324)

When RyuJIT tried to inline an unboxing stub, it would trigger an exception that would abort the inline. Make it so that we don't trigger an exception.

23 months ago[wasm] Disable a failing System.Drawing.Primitives test. (#83397)
Zoltan Varga [Wed, 15 Mar 2023 00:33:35 +0000 (20:33 -0400)]
[wasm] Disable a failing System.Drawing.Primitives test. (#83397)

* [wasm] Disable a failing System.Drawing.Primitives test.

* Update src/libraries/System.Drawing.Primitives/tests/RectangleTests.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
---------

Co-authored-by: Ankit Jain <radical@gmail.com>
23 months agoMisleading error "Cannot delete an already deleted object" (#83410)
Badre BSAILA [Wed, 15 Mar 2023 00:03:45 +0000 (01:03 +0100)]
Misleading error "Cannot delete an already deleted object" (#83410)

23 months agoAdd references to xunit.*.dll to CLRTest.Crossgen.targets (#83413)
Tomáš Rylek [Tue, 14 Mar 2023 22:59:42 +0000 (23:59 +0100)]
Add references to xunit.*.dll to CLRTest.Crossgen.targets (#83413)

This change fixes the exceptions thrown from Crossgen2 JIT
interface when JIT tries to resolve tokens from xunit.assert.
As a secondary effect the frequent exception throws triggered
the race condition

https://github.com/dotnet/runtime/issues/81884

triggering non-deterministic native CoreCLR runtime failures on
arm64. I was originally reluctant to fix this primary issue until
the native runtime bug is understood as otherwise this fix would
just cause the issue to stop manifesting without being actually
fixed. As the runtime bug has been fixed by now, I am fixing
Crossgen2 executions to stop hitting these resolution exceptions.

Thanks

Tomas

23 months agoUse IAttributeOperation for our attribute-based analyzers (#83239)
Jeremy Koritzinsky [Tue, 14 Mar 2023 22:53:17 +0000 (15:53 -0700)]
Use IAttributeOperation for our attribute-based analyzers (#83239)

23 months agoJIT: Expand runtime lookups in a late phase (#81635)
Egor Bogatov [Tue, 14 Mar 2023 22:33:05 +0000 (23:33 +0100)]
JIT: Expand runtime lookups in a late phase (#81635)

Co-authored-by: Jakob Botsch Nielsen <jakob.botsch.nielsen@gmail.com>
23 months agoEnsure that default media type is used when 'null' is passed-in to StringContent...
Simon Lovely [Tue, 14 Mar 2023 22:07:21 +0000 (22:07 +0000)]
Ensure that default media type is used when 'null' is passed-in to StringContent #81506 (#81722)

23 months ago[mono][interp] Add intrinsics for BitOperations (#82827)
Vlad Brezae [Tue, 14 Mar 2023 20:42:09 +0000 (22:42 +0200)]
[mono][interp] Add intrinsics for BitOperations (#82827)

* [mono][interp] Add intrinsics for BitOperations.RotateLeft/Right

* [mono][interp] Remove no longer used method

* [mono][interp] Add intrinsics for bit count operations

* [mono][interp] Intrinsify also S.R.I.X86.Lzcnt and WasmBase

* [mono][interp] Add intrinsic also for BitOperations.Log2

* [mono][interp] Remove intrinsics for X86Base

23 months ago[NativeAOT] simpler ObjectHasComponentSize (#83374)
Vladimir Sadov [Tue, 14 Mar 2023 19:47:48 +0000 (12:47 -0700)]
[NativeAOT] simpler ObjectHasComponentSize (#83374)

* simplified ObjectHasComponentSize

* removes EETypePtr.ComponentSize and EETypePtr.IsAbstract

* call entire GetUninitializedObject on nullable underlying type (for static ctors)

23 months agoRemove the defunct DiagnosticUtility/Fx classes from DataContractSerialization (...
Stephen Toub [Tue, 14 Mar 2023 19:41:48 +0000 (15:41 -0400)]
Remove the defunct DiagnosticUtility/Fx classes from DataContractSerialization (#82324)

- Fx.Assert just delegated to Debug.Assert: replace all the call sites with Debug.Assert/Fail.
- DiagnosticUtility.DebugAssert just delegated to Debug.Assert: replace all the call sites with Debug.Assert/Fail.
- DiagnosticUtility.ExceptionUtility.ThrowHelperError didn't throw anything and just returned its argument: removed all uses of it
- DiagnosticUtility.ExceptionUtility.ThrowHelperCallback didn't throw anything and just returned its argument: removed all uses of it.
- DiagnosticUtility.ExceptionUtility.ThrowHelperFatal didn't throw anything and just wrapped its arguments in a new Exception that was then returned: just changed the call sites to create that exception.
- DiagnosticUtility.ExceptionUtility.ThrowHelperArgument{Null} didn't throw anything and just returned new instances of Argument{Null}Exception: just changed the call sites to create that exception.
- Replaced some argument validation with helpers like ThrowIfNegative.
- Fx.IsFatal: moved to ExceptionUtility class

23 months agoTest merging baseservices/threading (#83143)
Brian Bohe [Tue, 14 Mar 2023 17:06:59 +0000 (14:06 -0300)]
Test merging baseservices/threading (#83143)

* Removing cs test entrypoint args

* Running ILTransform -n

* Running ILTransform -prociso

* Running ILTransform -public

* Running ILTransform -ilfact

* Adding JIT/Directed merge tests wrapper

* Patching merge wrapper generator code

* Fixing accesibility problems after wrapper generator updates

23 months agoFix stress test failures on 1es-windows-2022-open (#83211)
Anton Firszov [Tue, 14 Mar 2023 15:18:57 +0000 (16:18 +0100)]
Fix stress test failures on 1es-windows-2022-open (#83211)

23 months agoJIT: Stop relying on type handles in CSE (#83306)
Jakob Botsch Nielsen [Tue, 14 Mar 2023 15:01:07 +0000 (16:01 +0100)]
JIT: Stop relying on type handles in CSE (#83306)

Fix #83215

23 months agoOverride Write(Span) for CryptoStream to clear arrays before returning to pool (...
Kevin Jones [Tue, 14 Mar 2023 14:33:56 +0000 (10:33 -0400)]
Override Write(Span) for CryptoStream to clear arrays before returning to pool (#83338)

23 months agoJIT: Remove lvaPInvokeFrameRegSaveVar (#83309)
Jakob Botsch Nielsen [Tue, 14 Mar 2023 10:43:28 +0000 (11:43 +0100)]
JIT: Remove lvaPInvokeFrameRegSaveVar (#83309)

This does not seem to be used for anything meaningful.

Fix #83052

23 months ago[browser] wasm memory snapshot into browser cache (#82049)
Pavel Savara [Tue, 14 Mar 2023 10:05:08 +0000 (11:05 +0100)]
[browser] wasm memory snapshot into browser cache (#82049)

Co-authored-by: Marek Fišera <mara@neptuo.com>
Co-authored-by: Katelyn Gadd <kg@luminance.org>
23 months agoJIT: Add missing 'MadeChanges = true' in gtSplitTree (#83360)
Jakob Botsch Nielsen [Tue, 14 Mar 2023 09:37:31 +0000 (10:37 +0100)]
JIT: Add missing 'MadeChanges = true' in gtSplitTree (#83360)

Fix #83332

23 months agoDo not generate Equals/GetHashCode support for async state machines (#83369)
Michal Strehovský [Tue, 14 Mar 2023 08:21:42 +0000 (17:21 +0900)]
Do not generate Equals/GetHashCode support for async state machines (#83369)

Saves 0.63% on BasicMinimalApi.

This logic controls whether we inject the `__GetFieldHelper` override for the type (see https://github.com/dotnet/corert/pull/5436).

23 months agoFix superpmi unit test on Alpine (#83372)
Bruce Forstall [Tue, 14 Mar 2023 08:20:35 +0000 (02:20 -0600)]
Fix superpmi unit test on Alpine (#83372)

`perl` was removed from the Alpine images we use. The superpmi unit
test harness was using `perl` to convert the line endings in the
superpmicollect.sh wrapper script harness from Windows CR/LF format
to Linux/Mac LF format.

It appears this is no longer necessary, as the wrapper scripts appear
to be built in CI during the "Generate tests wrappers" step on Linux
when they will be run on Linux, so they already have the correct line
endings. Remove the call to invoke `perl`.

Fixes #83320

23 months agoFix the compiling errors for LoongArch64 and (#83370)
Qiao Pengcheng [Tue, 14 Mar 2023 08:18:49 +0000 (04:18 -0400)]
Fix the compiling errors for LoongArch64 and (#83370)

delete unused code for ARM64.

23 months agoDo not generate relocs to empty type dictionaries (#83367)
Michal Strehovský [Tue, 14 Mar 2023 05:57:45 +0000 (14:57 +0900)]
Do not generate relocs to empty type dictionaries (#83367)

If the generic dictionary is empty, there's no legitimate reason to access it. Saves 20 kB on BasicMinimalApi.

Also deleting a multimodule extensibility point that was getting in the way. We didn't use it and I don't see a future need for it either.

23 months agoReduce duplicity in GVM analysis (#83250)
Michal Strehovský [Tue, 14 Mar 2023 05:32:15 +0000 (14:32 +0900)]
Reduce duplicity in GVM analysis (#83250)

There were two very similar pieces of logic in the generic virtual method analysis. First one was deciding whether we need to emit GVM bookkeeping about the type, the second one was deciding whether the type should participate in GVM analysis (the N*M algorithm, "for each type relevant to GVM analysis" * "GVM virtual method called").

Made this into one so that it's in one spot. The interface method resolution is not cheap so this also speeds up the compilation. We should also do this for non-generic virtuals at some point.

I did a test pass with an assert that the analysis came up with the same conclusions to ensure I didn't mess up.

23 months ago[NativeAOT] Unify common cases of Array.Copy with CoreCLR (#83351)
Vladimir Sadov [Tue, 14 Mar 2023 02:39:18 +0000 (19:39 -0700)]
[NativeAOT] Unify common cases of Array.Copy with CoreCLR (#83351)

* Unify common cases of Array.Copy

* ContainsGCPointers

* removed EETypePtr.FastEquals

* AreSameType

* fix the build after rebase

23 months ago[browser][debugger] Cleanup runtime_ready tests
Pavel Savara [Tue, 14 Mar 2023 01:07:29 +0000 (02:07 +0100)]
[browser][debugger] Cleanup runtime_ready tests

23 months agoJIT: Remove LclVarDsc::lvExactSize and LclVarDsc::lvSIMDType (#83307)
Jakob Botsch Nielsen [Mon, 13 Mar 2023 23:01:07 +0000 (00:01 +0100)]
JIT: Remove LclVarDsc::lvExactSize and LclVarDsc::lvSIMDType (#83307)

Turn these into functions.

23 months agoUse `MethodTable.Of` in generated valuetype methods (#83325)
Michal Strehovský [Mon, 13 Mar 2023 21:17:14 +0000 (06:17 +0900)]
Use `MethodTable.Of` in generated valuetype methods (#83325)

I thought it might improve codegen, but the improvements are marginal. Still, contributes to dotnet/runtimelab#232.

23 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 213397...
dotnet bot [Mon, 13 Mar 2023 18:26:59 +0000 (11:26 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2133979 (#83240)

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2131973

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2132876

23 months agoConstant folding for RuntimeInformation.IsOSPlatform(OSPlatform) (#83308)
Egor Bogatov [Mon, 13 Mar 2023 18:11:08 +0000 (19:11 +0100)]
Constant folding for RuntimeInformation.IsOSPlatform(OSPlatform) (#83308)

23 months agoShared helpers for creating framework-dependent/self-contained apps in host tests...
Elinor Fung [Mon, 13 Mar 2023 17:49:27 +0000 (10:49 -0700)]
Shared helpers for creating framework-dependent/self-contained apps in host tests (#83291)

- Add centralized helpers for:
  - Creating framework-dependent or self-contained apps
  - Host binaries' names and paths
- Update native search directories test to validate behaviour with .deps.json (the test was using an app without .deps.json)

23 months agoUnify unroll limits in a single entry point (#83274)
Egor Bogatov [Mon, 13 Mar 2023 17:14:22 +0000 (18:14 +0100)]
Unify unroll limits in a single entry point (#83274)

23 months agoRemove the dotnet (1) man page (#78229)
Omair Majid [Mon, 13 Mar 2023 16:33:40 +0000 (12:33 -0400)]
Remove the dotnet (1) man page (#78229)

All the man pages, including a different version of dotnet.1, are
currently maintained in the dotnet/sdk repo. See
https://github.com/dotnet/sdk/tree/main/documentation/manpages and in
particular, the documentation on how those are generated from
dotnet/docs repository:
https://github.com/dotnet/sdk/blob/main/documentation/manpages/tool/README.md

This leftover copy of dotnet.1 in this repository is extremely out of
date and unmaintained. Lets just delete it.

Co-authored-by: Andy Gocke <angocke@microsoft.com>
23 months agoreplace redhawk with nativeaot (#79217)
kasperk81 [Mon, 13 Mar 2023 16:28:39 +0000 (18:28 +0200)]
replace redhawk with nativeaot (#79217)

* replace redhawk with nativeaot

* apply suggestions

Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
---------

Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
23 months ago[mono] Use unsigned char when computing UTF8 string hashes (#83273)
Aleksey Kliger (λgeek) [Mon, 13 Mar 2023 14:14:21 +0000 (10:14 -0400)]
[mono] Use unsigned char when computing UTF8 string hashes (#83273)

* [mono] Use `unsigned char` when computing UTF8 string hashes

The C standard does not specify whether `char` is signed or unsigned, it is implementation defined.

Apparently Android aarch64 makes a different choice than other platforms (at least macOS arm64 and Windows x64 give different results).

Mono uses `mono_metadata_str_hash` in the AOT compiler and AOT runtime to optimize class name lookup.  As a result, classes whose names include UTF-8 continuation bytes (with the high bit = 1) will hash differently in the AOT compiler and on the device.

Fixes https://github.com/dotnet/runtime/issues/82187
Fixes https://github.com/dotnet/runtime/issues/78638

* [aot] add DEBUG_AOT_NAME_TABLE code for debugging the class names

   AOT compiler: Emits a second "class_name_table_debug" symbol that has all the class names and hashes as strings.

   AOT runtime: warns if a class is not found in the name cache

* Add regression test

23 months ago[mono] Clean up the delegate ctor code. (#83288)
Zoltan Varga [Mon, 13 Mar 2023 13:43:33 +0000 (09:43 -0400)]
[mono] Clean up the delegate ctor code. (#83288)

* [mono] Clean up the delegate ctor code.

* Merge the virtual and non-virtual cases.
* Reorder the code in handle_delegate_ctor () to reduce the llvm_only conditionals.
* Name variables etc. delegate info instead of delegate trampoline.
* Avoid setting the del->is_virtual field if its FALSE.

* Remove some code which is already done by mono_resolve_patch_target_ext ().

* Remove some dead code.

* Unify the virtual/non-virtual case for llvmonly as well.

23 months ago[mono][jit] Adding more arm64 SIMD operations, SIMD codegen with instruction table...
Jan Dupej [Mon, 13 Mar 2023 12:41:39 +0000 (13:41 +0100)]
[mono][jit] Adding more arm64 SIMD operations, SIMD codegen with instruction table. (#83094)

* [mono][jit] Handling vector operations on arm64, comparisions and a few others, tabular approach to instruciton specs.

* [mono][jit] Adding compare vector operations, not, neg. Mono IR to machine code transformation is now table-generated for select operations. Fixing issues.

* YAGNI on a macro.

* [mono][jit] Table-driven code SIMD generation on arm64 is now restricted to exclude certain operations that are easily implemented manually.

* [mono][jit] Code cleanup.

* Temporarily disable SIMD on arm64. Fix indentation. Comments.

23 months agoOverride all write/flush methods on NullTextWriter (#83293)
Stephen Toub [Mon, 13 Mar 2023 12:04:12 +0000 (08:04 -0400)]
Override all write/flush methods on NullTextWriter (#83293)

The base implementations do non-trivial work, like calling ToString on the arguments, calling string.Format, queueing tasks, etc.  None of that should be done if TextWriter.Null is used.

23 months agoFix address data emitted in the MonoProfilerGCRoots ETW event (#83284)
Filip Navara [Mon, 13 Mar 2023 10:19:02 +0000 (11:19 +0100)]
Fix address data emitted in the MonoProfilerGCRoots ETW event (#83284)

23 months agoRemove VersionSuffix from servicing builds (#83311)
Adeel Mujahid [Mon, 13 Mar 2023 08:52:40 +0000 (10:52 +0200)]
Remove VersionSuffix from servicing builds (#83311)

23 months agoFix culture-specific string comparisons in EventSource (#83319)
Jan Kotas [Mon, 13 Mar 2023 03:41:35 +0000 (20:41 -0700)]
Fix culture-specific string comparisons in EventSource (#83319)

* Fix culture-specific string comparisons in EventSource

These string comparisons are clearly not meant to be culture-specific. They were one of the reasons for loading ICU in Console.WriteLine("Hello world"); app.

Context https://github.com/dotnet/aspnetcore/issues/47029#issuecomment-1455553729

* Update src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventSource.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
23 months agoAvx512 extract most significant bits (#82731)
anthonycanino [Sun, 12 Mar 2023 15:57:11 +0000 (08:57 -0700)]
Avx512 extract most significant bits (#82731)

* Add `TYP_MASK` and `Vector512.ExtractMostSignificantBits`.

* Rebase / rename error fix.

* Review edits.

* Formatting.

* Review edits.

* Review cleanup.

* Build fixes.

* Address throughput issues pertaining to `availableRegCount`.

* kmov RR refactor.

* Split kmov into kmov_msk and kmov_gpr.

* Fix thread.

* Review edits.

23 months agoJIT: Add a primitive to split statements at a specified tree (#83005)
Jakob Botsch Nielsen [Sat, 11 Mar 2023 21:11:51 +0000 (22:11 +0100)]
JIT: Add a primitive to split statements at a specified tree (#83005)

Add a gtSplitTree that can split a statement at an arbitrary tree: this creates new statements before the statement such that the original statement now executes the input tree as the very first non-invariant node.

This can be used for example to introduce control flow at an arbitrary point within a tree.

23 months agoAvoid synchronizing access to TextWriter.Null in Console (#83296)
Stephen Toub [Sat, 11 Mar 2023 16:36:40 +0000 (11:36 -0500)]
Avoid synchronizing access to TextWriter.Null in Console (#83296)

If SetOut/Error are used to silence Console by using TextWriter.Null, we don't need to wrap the writer in a synchronized one like we normally do, since all operations are nops and there's no need to serialize access.

23 months agoReduce cost of async waiting on SemaphoreSlim with cancellation/timeout (#83294)
Stephen Toub [Sat, 11 Mar 2023 16:36:02 +0000 (11:36 -0500)]
Reduce cost of async waiting on SemaphoreSlim with cancellation/timeout (#83294)

If a WaitAsync on a SemaphoreSlim is unable to synchronously acquire the semaphore, it calls an async method that handles the waiting.  That method awaits with a custom awaiter that avoids throwing in the case of cancellation or timeout.  However, in using a custom awaiter, we get knocked off the highest-perf path that can avoid allocating an Action.  This change puts it back onto the golden path by having the awaiter implement our internal interface that lets it backchannel with the async method builders. Eventually we want this awaiter to be available publicly as well, and it'll end up benefiting more than just semaphores.

23 months agoRemove the second copy of ILLink.Shared project and source code (#83263)
Vitek Karas [Sat, 11 Mar 2023 08:53:40 +0000 (00:53 -0800)]
Remove the second copy of ILLink.Shared project and source code (#83263)

I compared the two, the one in illink had a couple of small fixes on top of NativeAOT. The only change exclusive to NativeAOT was making the FlowAnnotations public, so I ported that over.

I chose to keep the one in illink. We can discuss moving it around in additional PR.

The rest of this change is solution and project file cleanup.

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
23 months agoJIT: Fold string fields in structs stored in static readonly fields (#80431)
Egor Bogatov [Sat, 11 Mar 2023 01:35:17 +0000 (02:35 +0100)]
JIT: Fold string fields in structs stored in static readonly fields (#80431)

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
23 months ago[wasm] Initial emscripten 3.1.30 support (#81215)
Radek Doulik [Sat, 11 Mar 2023 00:41:26 +0000 (01:41 +0100)]
[wasm] Initial emscripten 3.1.30 support (#81215)

* [wasm] Initial emscripten 3.1.30 support

* Update icu dependency

* Update emsdk dependency

* Use new docker images

* Add "icudt68_dat" as JS imported function.

It's an undefined symbol in ICU, because we are not linking in a lib, that should in the end be linked out.
Updated version of emscripten has by default turned on the LLD_REPORT_UNDEFINED .

* Drop build-time support for undefined icudt68_dat.

* Fix linker options

Should be `--lto-O0`

* Fix remaining conflict

* Limit new warnings option to browser

* Try to force reinstall of certifi

* Unset `FROZEN_CACHE` for `embuilder build MINIMAL`

* Update emsdk deps

* Remove assert for stack address

The linker puts stack at 0 sometime, so just check that the stack size
is not zero.

* Get back the stack base assert

For non-wasm targets. Add comment.

* Set stack size to 5MB

Which was the default size in older emscripten versions. Let see if it
is related to some of the issues.

* Disable WBT tests with SkiSharp

context: https://github.com/dotnet/runtime/issues/82725

* Disable more WBT tests with SkiSharp

* Set the stack size also in native targets

* Update icu deps

* Update emsdk deps

* Enable BigInt support

Co-authored-by: pavelsavara <pavel.savara@gmail.com>
* Enable BigInt here as well

* Temporarily allow undefined symbols

To unblock other work. After merge of main we are now again getting
linker errors with:

    .nuget/packages/microsoft.netcore.runtime.icu.transport/8.0.0-preview.3.23128.1/runtimes/browser-wasm/native/lib/libicuuc.a(udata.ao): undefined symbol: icudt68_dat

* Try to use pip-system-certs package

Co-authored-by: Ankit Jain <radical@gmail.com>
* Fix merge damage for marking "icudt68_dat" a JS imported function + revert temporal fix.

* Try another python certifi package

* Try install pip-system-certs for emsdk's python

* Try to update machine certs for www.sqlite.org

* Refactor + upgrade pip

Also use the newer pip-system-certs again

* Use new net8 images

* Add `-s INCOMING_MODULE_JS_API=print,printErr`

* Introduce EmccStackSize msbuild property

* Remove FIXME from merge

We don't have afterUpdateGlobalBufferAndViews anymore

* Fixes around updateMemoryViews

* Pass --experimental-wasm-bigint to v8

Ubuntu 18.04 helix image has old v8

* Try multiple --engine-arg options

* Revert "Introduce EmccStackSize msbuild property"

This reverts commit f67ea5e303421bb89f5521f425f22a82aa5d6f46.

* Disable 3 filesystem related tests

* Add bigint to AOT test template

* Introduce EmccStackSize msbuild property

* Update emsdk deps

* Update icu deps

* Revert "Add `-s INCOMING_MODULE_JS_API=print,printErr`"

This reverts commit 889d0366e4438880029c85ac800d4403f713dfff.

* Update emsdk deps

* Update icu deps

* Disable one more file related test

---------

Co-authored-by: Marek Fišera <mara@neptuo.com>
Co-authored-by: pavelsavara <pavel.savara@gmail.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
23 months agoFix the variable name (#83282)
Larry Ewing [Sat, 11 Mar 2023 00:26:33 +0000 (18:26 -0600)]
Fix the variable name (#83282)

23 months agoUpdate dependencies from https://github.com/dotnet/icu build 20230309.2 (#83262)
dotnet-maestro[bot] [Fri, 10 Mar 2023 22:16:06 +0000 (16:16 -0600)]
Update dependencies from https://github.com/dotnet/icu build 20230309.2 (#83262)

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 8.0.0-preview.3.23156.1 -> To Version 8.0.0-preview.3.23159.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
23 months ago[Merge-on-Red] - Implement Test Process Watcher (#78742)
Ivan Diaz Sanchez [Fri, 10 Mar 2023 20:06:53 +0000 (12:06 -0800)]
[Merge-on-Red] - Implement Test Process Watcher (#78742)

Initial implementation of the test watcher that looks out for hangs and freezes during test runs.

23 months agoupdate alpine test images (#82931)
Tomas Weinfurt [Fri, 10 Mar 2023 19:10:57 +0000 (11:10 -0800)]
update alpine test images (#82931)

* update alpine test images

* tests

23 months agoSupport sites with invalid IDN in SslStream (#82934)
Tomas Weinfurt [Fri, 10 Mar 2023 19:00:18 +0000 (11:00 -0800)]
Support sites with invalid IDN in SslStream (#82934)

* initial test

* 'update'

* feedback from review

* android

23 months agoUpdate the Roslyn version our ref-pack generators reference to 4.5.0 (#83238)
Jeremy Koritzinsky [Fri, 10 Mar 2023 18:45:02 +0000 (10:45 -0800)]
Update the Roslyn version our ref-pack generators reference to 4.5.0 (#83238)

23 months agoUpdate dependencies from https://github.com/dotnet/roslyn build 20230310.1 (#83264)
dotnet-maestro[bot] [Fri, 10 Mar 2023 16:50:16 +0000 (10:50 -0600)]
Update dependencies from https://github.com/dotnet/roslyn build 20230310.1 (#83264)

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.6.0-3.23159.1 -> To Version 4.6.0-3.23160.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
23 months ago[wasm] Introduce jiterpreter control flow pass (#83247)
Katelyn Gadd [Fri, 10 Mar 2023 16:14:40 +0000 (08:14 -0800)]
[wasm] Introduce jiterpreter control flow pass (#83247)

* Checkpoint CFG

Generate fallthrough in CFG

Generate branch block header partially in cfg

Emit branches in CFG

Checkpoint: Emit loop and exit return in CFG (broken)

Fix CFG emitting function header in the wrong place

Improve accuracy of cfg size estimation

Remove log messages

Checkpoint: Forward branches partially working

Fix non-conditional branches not being added to target table
Remove fallthrough

* Implement backward branches via a dispatch table

* Cleanup

* Cleanup

* Remove use of DataView since it has a hazard around heap growth
Use copyWithin to implement appendBytes where possible
More accurate overhead calculation