platform/upstream/dotnet/runtime.git
17 months ago[wasm][debugger] Disable failing multithreading debugger tests (#86501)
Ilona Tomkowicz [Tue, 6 Jun 2023 03:59:43 +0000 (05:59 +0200)]
[wasm][debugger] Disable failing multithreading debugger tests (#86501)

* Block for multithreading.

* Another failing test.

* category - case matters.

* Cleanup.

* "Result reported for unknown test case" fix. Cannot be lazy.

* Debugger has its own treading feature discovery.

* Prevent trait filter from being overwritten.

* Applied @radical's review, reverted `TEST_FILTER` removal with changes fixing the issue.

* Makefiles - full revert, fix should be in msbuild.

* Failing frequently.

* Fleaky tests.

* Now this one failed - block.

* 10 min still timeouts, set to 15.

* Revert "10 min still timeouts, set to 15."

This reverts commit 2e008d40b3006e464f3c70030e0de637d17dc426.

17 months ago[fabricbot] Area pods: Exclude arch- and os- issues/prs with owners (#87040)
Jeff Handley [Tue, 6 Jun 2023 03:38:59 +0000 (20:38 -0700)]
[fabricbot] Area pods: Exclude arch- and os- issues/prs with owners (#87040)

* [fabricbot] Area pods: Exclude arch- and os- issues/prs with owners

* Do not exclude arch-wasm from the michael/tanner pod

17 months ago[wasm] Perf blazor scenarios: Use the correct wasm sdk pack (#87075)
Ankit Jain [Tue, 6 Jun 2023 02:35:39 +0000 (22:35 -0400)]
[wasm] Perf blazor scenarios: Use the correct wasm sdk pack (#87075)

- Make the built nuget for wasm sdk pack available when running the
  blazor scenarios.

```
/home/helixbot/work/B975098B/p/performance/src/scenarios/blazorpizza/app/BlazingPizza.Client/BlazingPizza.Client.csproj
: warning NU1603: BlazingPizza.Client depends on Microsoft.NET.Sdk.WebAssembly.Pack (>= 8.0.0-ci) but Microsoft.NET.Sdk.WebAssembly.Pack 8.0.0-ci was not found. An approximate best match of Microsoft.NET.Sdk.WebAssembly.Pack 8.0.0-preview.4.23213.11 was resolved.
```

.. otherwise it resolves to an older package from the published sources.

17 months agoSuperpmi collection for real-world benchmarks (#87104)
Kunal Pathak [Tue, 6 Jun 2023 02:01:19 +0000 (19:01 -0700)]
Superpmi collection for real-world benchmarks (#87104)

* add support to collect spmi for real-world

* rename some script names

* Do not pass partition_index for non-microbenchmarks

* fix the project names

* fix physics engine benchmarks:

* adjust physics benchmarks:

17 months agoFix IDE0001 / IDE0002 (simplify names) in corelib (#87106)
Stephen Toub [Mon, 5 Jun 2023 22:09:45 +0000 (18:09 -0400)]
Fix IDE0001 / IDE0002 (simplify names) in corelib (#87106)

17 months agoAllow the user to control the MaxVectorTBitWidth (#85551)
Tanner Gooding [Mon, 5 Jun 2023 21:58:28 +0000 (14:58 -0700)]
Allow the user to control the MaxVectorTBitWidth (#85551)

* Expose DOTNET_MaxVectorTBitWidth and an undocumented DOTNET_PreferredVectorBitWidth

* Ensure SPMI keeps a getMaxVectorTBitWidth implementation

* Fix the non-xarch vm build

* Remove getMaxVectorTBitWidth from the JIT/EE interface, it's no longer needed

* Move SetCpuInfo down into the EEJitManager constructor

* Remove getXarchCpuInfo in favor of passing `JIT_FLAG_VECTOR512_THROTTLING`

* Make sure CORINFO_XARCH_CPU is fully removed

* Have ENCODE_VERIFY_TYPE_LAYOUT not fail-fast for Vector<T> size differences

* Only encode types containing Vector<T> as check, not verify

* Remove changes that were extracted to separate PRs

* Ensure that the optimistic flags are a strict superset of the supported flags

* Make VectorT128/256/512 proper instruction sets and only allow one to be active at a time

* Don't allow avxvnni to be "optimistic" since that brings in avx2

* Ensure we handle HWIntrinsics being disabled

* Ensure that the Vector<T> size ISAs are covered by FromInstructionSet

* Ensure that `getMaxVectorByteLength` being 0 is handled

* Ensure NAOT startup can correctly check for the VectorT size bits

* Have BlkOpKindUnroll account for SIMD being disabled

* Ensure InstructionSet_VectorT128 is set in the fallback path for PAL_GetJitCpuCapabilityFlags

17 months agoFix a number of accessibility resolution issues in the source generator. (#87136)
Eirik Tsarpalis [Mon, 5 Jun 2023 21:41:49 +0000 (22:41 +0100)]
Fix a number of accessibility resolution issues in the source generator. (#87136)

17 months agoDocumentation for the HotColdMap section (#87023)
Andrew Au [Mon, 5 Jun 2023 20:45:51 +0000 (13:45 -0700)]
Documentation for the HotColdMap section (#87023)

17 months ago[nativeaot][tests] Update bundle zip path for NativeAOT sample app (#87049)
Milos Kotlar [Mon, 5 Jun 2023 20:43:21 +0000 (22:43 +0200)]
[nativeaot][tests] Update bundle zip path for NativeAOT sample app (#87049)

* Update bundle zip path for NativeAOT sample app

* Add shared path for Mono and Native AOT

17 months agoDisable mark list optimization if we hit a per region mark list overflow (#86508)
Andrew Au [Mon, 5 Jun 2023 18:46:17 +0000 (11:46 -0700)]
Disable mark list optimization if we hit a per region mark list overflow (#86508)

17 months agoTest passing struct on a border of 12bit offset (#86914)
t-mustafin [Mon, 5 Jun 2023 18:44:49 +0000 (21:44 +0300)]
Test passing struct on a border of 12bit offset (#86914)

17 months agoRemove unnecessary suppressions in APICompat files (#87094)
Viktor Hofer [Mon, 5 Jun 2023 16:58:50 +0000 (18:58 +0200)]
Remove unnecessary suppressions in APICompat files (#87094)

* Remove unnecessary suppressions in APICompat files

- Remove unnecessary suppressions in APICompat files. This is in
  preparation for https://github.com/dotnet/sdk/pull/32964 which will
  validate the existing suppressions going forward.
- Set the required APICompat properties for the future tooling support.

* Add suppressions back for two CoreLib flavors

* Fix CoreLib suppression because of API attribute difference

17 months agoSet .env variables in corerun prior to CLR init (#85220)
Lumi Bytyçi [Mon, 5 Jun 2023 16:27:01 +0000 (18:27 +0200)]
Set .env variables in corerun prior to CLR init (#85220)

17 months agoFold obj.GetType to a constant (#87101)
Egor Bogatov [Mon, 5 Jun 2023 15:58:21 +0000 (17:58 +0200)]
Fold obj.GetType to a constant (#87101)

17 months ago[VM] Fix potential double free (#86207)
Trung Nguyen [Mon, 5 Jun 2023 14:39:48 +0000 (00:39 +1000)]
[VM] Fix potential double free (#86207)

Use a raw char `NewArrayHolder` instead of a `NewHolder` to store
the `StackingAllocator` to prevent its destructor from being
called twice since `StackingAllocatorHolder` has already taken
care of the destruction.

17 months agoAvoid bloom filter checks for IndexOfAnyExcept in ProbabilisticMap (#85203)
Miha Zupan [Mon, 5 Jun 2023 14:07:12 +0000 (16:07 +0200)]
Avoid bloom filter checks for IndexOfAnyExcept in ProbabilisticMap (#85203)

17 months ago[browser][non-icu] `HybridGlobalization` set flag in SDK (#85245)
Ilona Tomkowicz [Mon, 5 Jun 2023 14:02:32 +0000 (16:02 +0200)]
[browser][non-icu] `HybridGlobalization` set flag in SDK (#85245)

* Initial change.

* Filename update.

* WBT for WASM.

* Updated docs.

* Run Hybrid wbt on CI.

* Feedback + hierarchy compatible with #86255.

* Feedback. Test program code to assets.

17 months agoEnsure JsonSerializerOptions always returns a JsonTypeInfo for `object`. (#87093)
Eirik Tsarpalis [Mon, 5 Jun 2023 13:21:45 +0000 (14:21 +0100)]
Ensure JsonSerializerOptions always returns a JsonTypeInfo for `object`. (#87093)

* Ensure JsonSerializerOptions always returns a JsonTypeInfo for `object`.

* Address feedback.

17 months agofix(76268): Fix invalid behavior for ignored properties with "new" modifier of derive...
Maksim Golev [Mon, 5 Jun 2023 12:12:39 +0000 (15:12 +0300)]
fix(76268): Fix invalid behavior for ignored properties with "new" modifier of derived class. (#84756)

Co-authored-by: Maksim Golev <mgolev@htc-cs.ru>
17 months ago[main] Update dependencies from dotnet/arcade dotnet/sdk (#87091)
dotnet-maestro[bot] [Mon, 5 Jun 2023 11:49:54 +0000 (07:49 -0400)]
[main] Update dependencies from dotnet/arcade dotnet/sdk (#87091)

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

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.23281.3 -> To Version 8.0.0-beta.23302.3

* Update dependencies from https://github.com/dotnet/sdk build 20230602.9

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23302.2 -> To Version 8.0.100-preview.6.23302.9

* Update dependencies from https://github.com/dotnet/sdk build 20230603.2

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23302.2 -> To Version 8.0.100-preview.6.23303.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
17 months ago[main] Update dependencies from dnceng/internal/dotnet-optimization (#87090)
dotnet-maestro[bot] [Mon, 5 Jun 2023 11:48:52 +0000 (07:48 -0400)]
[main] Update dependencies from dnceng/internal/dotnet-optimization (#87090)

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230602.4

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23301.6 -> To Version 1.0.0-prerelease.23302.4

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230603.6

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23301.6 -> To Version 1.0.0-prerelease.23303.6

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
17 months agoFix a few Parse uses to be TryParse (#87105)
Stephen Toub [Mon, 5 Jun 2023 11:48:10 +0000 (07:48 -0400)]
Fix a few Parse uses to be TryParse (#87105)

17 months ago[browser][non-icu] Revert `HybridGlobalization` normalization. (#87007)
Ilona Tomkowicz [Mon, 5 Jun 2023 11:47:54 +0000 (13:47 +0200)]
[browser][non-icu] Revert `HybridGlobalization` normalization. (#87007)

* revert

* Keep perf tests but with smaller buffers

17 months agoUpdate area-owners.md (#87121)
Marek Safar [Mon, 5 Jun 2023 11:47:28 +0000 (13:47 +0200)]
Update area-owners.md (#87121)

17 months agoDo not use ValueTuple in SynchronizationContext (#87120)
Michal Strehovský [Mon, 5 Jun 2023 11:46:31 +0000 (20:46 +0900)]
Do not use ValueTuple in SynchronizationContext (#87120)

This is the same issue as e.g. #84206. The compiler needs to consider delegate Invoke methods always reflectable because of trimming warning suppressions around this in the framework. But that means the compiler is going to create type loader templates for all types in the `Invoke` signature. If one of those is a `ValueTuple`, it will root the ability to runtime-create arbitrary comparers at runtime (`ValueTuple` annoying implements `Equals` using `EqualityComparer.Default`) and with it the entire type loader.

For a sample app in #82607 this causes about 200 kB of bloat to be generated (more than 10% of the app size).

17 months agoSave 260k in InitValueNumStoreStatics (#85945)
Mark Plesko [Mon, 5 Jun 2023 10:43:22 +0000 (03:43 -0700)]
Save 260k in InitValueNumStoreStatics (#85945)

It appears that the big #define for the intrinsics is causing InitValueNumStoreStatics to get big enough that C++ optimization ends up being disabled, which means a lot of constant operations aren't folded. This rewrites it as a const table. It adds some redundant information to the tables that we #include/#define in several places but currently includes many assertions that the old and new values match.

Local size change of release clrjit_win_x64_x64.dll: 2,001,920 -> 1,735,680.  InitValueNumStoreStatics (261k) is replaced by 1.2k of static data.

Resolves #85953

17 months ago[NativeAOT] A few cleanups in stack walking on Windows (#86917)
Vladimir Sadov [Sun, 4 Jun 2023 21:29:52 +0000 (14:29 -0700)]
[NativeAOT] A few cleanups in stack walking on Windows (#86917)

17 months agoEnsure the correct `typeToConvert` parameter is being passed to constructor parameter...
Eirik Tsarpalis [Sun, 4 Jun 2023 16:37:42 +0000 (17:37 +0100)]
Ensure the correct `typeToConvert` parameter is being passed to constructor parameter converters. (#87111)

17 months agoAdd and use ConfigureAwaitOptions (#87067)
Stephen Toub [Sun, 4 Jun 2023 00:53:30 +0000 (20:53 -0400)]
Add and use ConfigureAwaitOptions (#87067)

* Add and use ConfigureAwaitOptions

Adds the ability to further control how awaits are performed, with the ConfigureAwaitOptions enum.  For .NET 8 this is just for `Task` / `Task<TResult>`, and for the latter, the `SuppressThrowing` option isn't supported (as it can make the TResult erroneous).

Also uses it throughout the repo to replace various custom awaiters, use of Task.Run, and places we were catching all exceptions to suppress them with awaits.  Some of these just help to clean up the code; others have / enable meaningful perf improvements.

* Address PR feedback

* Update src/libraries/System.Net.HttpListener/src/System/Net/Managed/HttpResponseStream.Managed.cs

17 months agoUnify trim warnings for accessing compiler generated code (#86816)
Vitek Karas [Sat, 3 Jun 2023 20:53:59 +0000 (13:53 -0700)]
Unify trim warnings for accessing compiler generated code (#86816)

This modifies the behavior of both the illink and ilc to match and to implement some changes we've discussed recently - https://github.com/dotnet/runtime/issues/86008.

The semantic changes (mostly as compared to previous illink behavior):
* Reflection access to a RUC virtual method will produce warning on all methods which have RUC, regardless of their relationships. Specifically if both the override and base methods are accessed, and they both have RUC, they will both generate a warning. (This effectively removes an optimization which illink had to avoid "duplicate" warnings where it tried to warn only on the base methods in this case. But this has holes - see https://github.com/dotnet/runtime/issues/86008).
* Reflection access to compiler generated code will not produce warnings even if the target has RUC on it. It proved to be really difficult to design a good experience for reporting warnings in these cases. The problem is that developer has little control over the generated code and fully reporting all warnings leads to lot of noise. The above optimization in the illink tried to solve some of this, but it's not very successful. So we're removing all of these warnings. The reasoning is that reflection access to compiler generated members is an undefined behavior (even on non-trimmed, normal CLR) - and is likely to break for example between compiler versions - and there's no diagnostics about it ignoring trimming. Trimming/AOT just makes it a little bit worse.
* AOT compiler will not implement warnings caused by reflection access to compiler generated code which has annotations either (so `IL2118`, `IL2119` and `IL2120`). The plan is to eventually remove these from illink as well.

Note that there are exceptions to the above rules, which can be described as: Accessing a token of a member in IL is considered a reflection access (because the token can be turned into a reflection object), but it is also considered a direct reference. So in that case marking is implemented as "reflection access", but diagnostics is implemented as "direct reference". What this means is that accessing a compiler generated member through its token will still produce all warnings (RUC or DAM) as for non-compiler-generated member. This is important for things like creation of `Action` from a lambda, where the lambda is a compiler generated method, but we need to produce warnings if it uses annotations for example.

Refactorings:
* Refactored code in MarkStep to move most of the diagnostics logic into `ReportWarningsForReflectionAccess` - this is to mirror the design in ilc and also to make it more in sync with the already existing `ReportWarningsForTypeHierarchyReflectionAccess`.

Test changes:
* Adapting existing tests to the new behavior
* Adding some new tests, specifically around reflection access to compiler generated code and token access to compiler generated code.
* Enables `CompilerGeneratedCodeAccessedViaReflection` for ilc

17 months ago[mono] Use underlying type in RuntimeHelpers.GetSpanDataFrom (#87019)
Aleksey Kliger (λgeek) [Sat, 3 Jun 2023 14:57:39 +0000 (10:57 -0400)]
[mono] Use underlying type in RuntimeHelpers.GetSpanDataFrom (#87019)

* [mono] Use underlying type in RuntimeHelpers.GetSpanDataFrom

Make it work correctly for spans of enums

Fixes https://github.com/dotnet/runtime/issues/86865

Note that in net8 RuntimeHelpers.CreateSpan<T> is an intrinsic, so
GetSpanDataFrom is never called directly.

But in net7 CreateSpan is not intrinsified on Mono, so the underlying
method really does get called.

* test: Print all hidden field names if we can't find the right one

17 months ago[main] Update dependencies from dotnet/emsdk dotnet/cecil dotnet/sdk (#87054)
dotnet-maestro[bot] [Sat, 3 Jun 2023 11:04:56 +0000 (13:04 +0200)]
[main] Update dependencies from dotnet/emsdk dotnet/cecil dotnet/sdk (#87054)

* Update dependencies from https://github.com/dotnet/emsdk build 20230601.1

Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
 From Version 8.0.0-preview.6.23281.1 -> To Version 8.0.0-preview.6.23301.1

* Update dependencies from https://github.com/dotnet/cecil build 20230601.1

Microsoft.DotNet.Cecil
 From Version 0.11.4-alpha.23265.2 -> To Version 0.11.4-alpha.23301.1

* Update dependencies from https://github.com/dotnet/sdk build 20230602.2

Microsoft.DotNet.ApiCompat.Task
 From Version 8.0.100-preview.6.23301.17 -> To Version 8.0.100-preview.6.23302.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
17 months ago[RISC-V] Sync comment and implementation (#87033)
ws77.cho [Sat, 3 Jun 2023 04:12:47 +0000 (13:12 +0900)]
[RISC-V] Sync comment and implementation (#87033)

17 months agoenable DATAS config via runtimeconfig.json (#87034)
Manish Godse [Sat, 3 Jun 2023 01:27:16 +0000 (18:27 -0700)]
enable DATAS config via runtimeconfig.json (#87034)

* enable DTAS config via runtimeconfig.json

* updating config name and switching it to INT_CONFIG

17 months agoDispose of linked CTS in QuicListener (#87057)
Stephen Toub [Sat, 3 Jun 2023 00:54:16 +0000 (20:54 -0400)]
Dispose of linked CTS in QuicListener (#87057)

17 months ago[wasm] Remove dependency on definition of MonoClass (#87077)
Katelyn Gadd [Sat, 3 Jun 2023 00:39:03 +0000 (17:39 -0700)]
[wasm] Remove dependency on definition of MonoClass (#87077)

The jiterpreter recently gained a dependency on the definition of MonoClass which broke debug builds. This PR changes it to use accessors that are available in both configurations.

17 months ago[wasm] Disable System.Text.Json AOT tests due to crashes (#87079)
Ankit Jain [Sat, 3 Jun 2023 00:03:49 +0000 (20:03 -0400)]
[wasm] Disable System.Text.Json AOT tests due to crashes (#87079)

V8, and chrome crash currently when running the tests.

Issue: https://github.com/dotnet/runtime/issues/86164

17 months agoRemove legacy stacksampler logic (#87076)
Aaron Robinson [Fri, 2 Jun 2023 23:53:11 +0000 (16:53 -0700)]
Remove legacy stacksampler logic (#87076)

* Remove legacy stacksampler logic

* Remove ALLOW_SXS_JIT_NGEN

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
17 months agoRemove win-arm RIDs (#87074)
Sven Boemer [Fri, 2 Jun 2023 22:51:28 +0000 (15:51 -0700)]
Remove win-arm RIDs (#87074)

17 months agoCreate DiagnosticInfo as an incremental Diagnostic replacement type. (#86908)
Jackson Schuster [Fri, 2 Jun 2023 21:21:05 +0000 (16:21 -0500)]
Create DiagnosticInfo as an incremental Diagnostic replacement type. (#86908)

Creates DiagnosticInfo record to replace Diagnostic in the incremental pipeline to work around dotnet/roslyn#68291

17 months agoRevert "[mono][aot] Deduplicate runtime invoke wrappers on iOS (#85908)" (#87066)
Milos Kotlar [Fri, 2 Jun 2023 21:15:32 +0000 (23:15 +0200)]
Revert "[mono][aot] Deduplicate runtime invoke wrappers on iOS (#85908)" (#87066)

We have encountered more frequent failures following the merge as outlined in #85908 (comment), so we will revert the change and try to reproduce the issue locally using the same version of macOS and iPhone as on the CI environment.

Reverts #85908

17 months ago[main] Update dependencies from dnceng/internal/dotnet-optimization (#86698)
dotnet-maestro[bot] [Fri, 2 Jun 2023 20:49:57 +0000 (15:49 -0500)]
[main] Update dependencies from dnceng/internal/dotnet-optimization (#86698)

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230523.4

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23273.4

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230524.4

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23274.4

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230525.8

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23275.8

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230526.6

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23276.6

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230527.6

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23277.6

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230528.2

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23278.2

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230529.4

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23279.4

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230530.6

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23280.6

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230531.5

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23281.5

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230601.6

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23272.4 -> To Version 1.0.0-prerelease.23301.6

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
17 months agoAccount for PredefinedCulturesOnly in CultureInfo LCID .ctor (#87002)
OwnageIsMagic [Fri, 2 Jun 2023 18:53:36 +0000 (21:53 +0300)]
Account for PredefinedCulturesOnly in CultureInfo LCID .ctor (#87002)

17 months agoFix missing link libraries in host components (#87042)
Elinor Fung [Fri, 2 Jun 2023 18:19:47 +0000 (11:19 -0700)]
Fix missing link libraries in host components (#87042)

- All host components link against dl - effectively, this handles hostfxr, hostpolicy, and nethost which were missing it
- hostpolicy links against pthread

17 months ago[wasm][debugger] Fix calling multiple times mono_wasm_asm_loaded when webcil is enabl...
Thays Grazia [Fri, 2 Jun 2023 16:55:02 +0000 (13:55 -0300)]
[wasm][debugger] Fix calling multiple times mono_wasm_asm_loaded when webcil is enabled (#87026)

* Fix calling multiple times mono_wasm_asm_loaded when webcil is enabled.

* Address @lewing comment

17 months agoEnable EVEX feature: embedded broadcast for Vector128/256/512.Add() in limited cases...
Ruihan-Yin [Fri, 2 Jun 2023 15:21:33 +0000 (08:21 -0700)]
Enable EVEX feature: embedded broadcast for Vector128/256/512.Add() in limited cases (#84821)

* Enable EVEX feature: embedded broadcast
Embedded Broadcast is enabled in Vector256<float>.Add() with limited cases:
1. Vector256.Add(Vec, Vector256.Create(DCon));
2. Vector256<float> VecCns = Vector256.Create(DCon);
   Vector256.Add(Vec, VecCns);

3. Vector256.Add(Vec, Vector256.Create(LCL_VAR));
4. Vector256<float> VecCns = Vector256.Create(LCL_VAR);
   Vector256.Add(Vec, VecCns);

Note: Case 2 4 can only be optimized when DOTNET_TieredCompilation = 0.

* remove some irrelevent change from previous main.

* Enable containment at Broadcast intrinsic
to improve the embedded broadcast enabling works.

* Convert the check logics on broadcast into a flag

* bug fixes:
1. fixed the contain logic at lowering, to accomadate the situation when
both operands for a EB compatible node are EB candidates.
2. fixed some unexpected EVEX.b set at some non-EVEX instructions on x86

* apply format patch.

* Add "insOpts" data structure to xarch:
 insOpts may contain information on the EVEX.b bit,
 currently only embedded broaddcast

* Add "OperIsBroadcastScalar" check:
This check is to ensure the intrinsic is actually a broadcast
scalar intrinsic, the reason to add this check is that gentree
flags are using overlapping definition, GTF_BROADCAST_EMBEDDED has
some conflicting definition, so we need to ensure the flag we checked
does not come from other overlapping flags.

* rebase the branch and resolve conflicts

* changes based on the reivews:
1. removed the gentree flag GTF_EMBEDDED_BROADCAST.
2. mark the embedded broadcast node by making it contained.
3. improved logics in GetMemOpSize() to return the correct pointer size
when embedded broadcast is enabled.
4. improved logics in genOperandDesc() to emit scalar when constant
vector operand is found to be created from scalar.

* apply format patch

* bug fixes

* bug fixes

* aaply format patch

* Enable embedded broadcast for Vector128<float>.Add

* Enable embedded broadcast for Vector512<float>.Add

* make double as embedded broadcast supported

* Add EB support to AVX_BroadcastScalarToVector*

* apply format patch

* Enable embedded broadcast for double const vector

* Enable embedded broadcast for integer Add.

* Changes based on the review:
1. Change GenTreeHWIntrinsic::OperIsEmbBroadcastHWIntrinsic
to OperIsEmbBroadcastCompatible
2. removed OperIsBroadcastScalar
3. formatting
4. correct errors in the comments.

* removed the gentree flag: GTF_VECCON_FROMSCALAR

* Bug fixes on embedded broadcast with AVX_Broadcast

* enable embedded broadcast in R_R_A path

* apply format patch

* bug fixes:
re-introduce "OperIsBroadcastScalar",
there are some cases when non-broadcast node (e.g. Load, Read)
contained by embedded broadcast and embedded broadcast
is enabled unexpectedly, using this method can filter out those cases.

* Changes based on reviews:
1. code style improvement
2. fixes typos and errors in the comments.
3. extract the operand swap logic when lowering Create node into
a function: TryCanonizeEmbBroadcastCandicate()

* unfold VecCon node when lowering if this node is
eligible for embedded broadcast.

* apply format patch

* bug fixes:
1. added missing default branch
2. filter out some possible embedded broadcast cases
for some better optimization

* resolve the mishandling for the previous conflict.

* move the unfolding logic to ContainChecks

* Code changes based on the review

* apply format patch

* support embedded broadcast for GT_IND
as the operand of a broadcast node.

* bug fixes:
Long type should only be on 64-bit system.

* apply format patch

* Introduce MakeHWIntrinsicSrcContained():
This function will handle the case that constant vector
is the operand of embedded broadcast ops.
If the constant vector is eligible for embedded broadcast,
will unfold the constatn vector to the corresponding broadcast
intrinsic form.

* Code changes based on reviews:
1. a helper function to detect embedded broadcast compatible flag
2. contain logic improvement.
3. typo fixes.

* Code changes based on review

* apply format patch

* Code changes based on review:
1. deleted irrelevant comments.

Move the contain check up to cover more cases.

* Code changes based on review:
1. Update comment to keep up with the changes in InstrDesc.
2. Removed un-needed argumnet in the irrelevant method.

17 months agoUpdate dependencies from https://github.com/dotnet/roslyn build 20230601.9 (#87056)
dotnet-maestro[bot] [Fri, 2 Jun 2023 14:43:49 +0000 (16:43 +0200)]
Update dependencies from https://github.com/dotnet/roslyn build 20230601.9 (#87056)

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.7.0-2.23280.4 -> To Version 4.7.0-2.23301.9

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
17 months agoUpdate APICompat.Task to latest version (#87046)
Viktor Hofer [Fri, 2 Jun 2023 14:43:19 +0000 (16:43 +0200)]
Update APICompat.Task to latest version (#87046)

* Update APICompat.Task to latest version

... and suppress the new errors that are flagged because of breaking changes introduced in .NET 8. See https://github.com/dotnet/sdk/pull/32930 for more details on the added validation in APICompat.

* Suppress new errors that were intentionally made

* Update Version.Details.xml

* Update CompatibilitySuppressions.xml

* Update CompatibilitySuppressions.xml

17 months agoImplement AsnReader.Clone (#86913)
Kevin Jones [Fri, 2 Jun 2023 14:18:12 +0000 (10:18 -0400)]
Implement AsnReader.Clone (#86913)

* Implement AsnReader.Clone

* Test that the clone is created from the correct slice

17 months agoDelete unused seed file support from PEWriter (#87015)
Jan Kotas [Fri, 2 Jun 2023 13:56:45 +0000 (06:56 -0700)]
Delete unused seed file support from PEWriter (#87015)

* Delete unused seed file support from PEWriter

* Delete more

17 months ago[browser] fix legacy interop tests (#87001)
Pavel Savara [Fri, 2 Jun 2023 13:14:24 +0000 (15:14 +0200)]
[browser] fix legacy interop tests (#87001)

* fix legacy tests

17 months ago[RISC-V][JIT] Implement genCodeForIncSaturate (#86891)
Dong-Heon Jung [Fri, 2 Jun 2023 10:30:02 +0000 (19:30 +0900)]
[RISC-V][JIT] Implement genCodeForIncSaturate (#86891)

- Fixed a failure in ./JIT/opt/AssertionPropagation/ArrBoundBinaryOp/ArrBoundBinaryOp.sh (CHECKED build)

17 months ago[main] Update dependencies from dotnet/xharness dotnet/runtime-assets dotnet/emsdk...
dotnet-maestro[bot] [Fri, 2 Jun 2023 10:21:54 +0000 (12:21 +0200)]
[main] Update dependencies from dotnet/xharness dotnet/runtime-assets dotnet/emsdk dotnet/hotreload-utils dotnet/icu dotnet/llvm-project (#86892)

* Update dependencies from https://github.com/dotnet/xharness build 20230529.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 8.0.0-prerelease.23272.1 -> To Version 8.0.0-prerelease.23279.1

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20230529.1

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23272.2 -> To Version 8.0.0-alpha.0.23279.1

* Update dependencies from https://github.com/dotnet/runtime-assets build 20230530.1

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Data.Common.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData
 From Version 8.0.0-beta.23273.1 -> To Version 8.0.0-beta.23280.1

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20230530.2

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 8.0.0-alpha.0.23272.2 -> To Version 8.0.0-alpha.0.23280.2

* Update dependencies from https://github.com/dotnet/llvm-project build 20230531.1

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23273.3 -> To Version 14.0.0-alpha.1.23281.1

* Update dependencies from https://github.com/dotnet/emsdk build 20230531.1

Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100.Transport
 From Version 8.0.0-preview.6.23277.2 -> To Version 8.0.0-preview.6.23281.1

* Update dependencies from https://github.com/dotnet/icu build 20230530.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 8.0.0-preview.4.23177.3 -> To Version 8.0.0-preview.6.23280.1

* Add `icudt_hybrid.dat` to `@(PlatformManifestFileEntry)`

Prompted by the build error:
```
[error].packages/microsoft.dotnet.sharedframework.sdk/8.0.0-beta.23280.3/targets/sharedfx.targets(288,5): error : (NETCORE_ENGINEERING_TELEMETRY=Build) The following files are missing entries in the templated manifest:
icudt_hybrid.dat. Add these file names with extensions to the 'PlatformManifestFileEntry' item group for the runtime pack and corresponding ref pack to include them in the platform manifest.
```

* Update dependencies from https://github.com/dotnet/llvm-project build 20230601.1

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23273.3 -> To Version 14.0.0-alpha.1.23301.1

* Update dependencies from https://github.com/dotnet/llvm-project build 20230601.2

runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 14.0.0-alpha.1.23273.3 -> To Version 14.0.0-alpha.1.23301.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
17 months agoEnable Native AOT testing in System.Text.Json. (#86975)
Eirik Tsarpalis [Fri, 2 Jun 2023 09:59:06 +0000 (10:59 +0100)]
Enable Native AOT testing in System.Text.Json. (#86975)

* Enable Native AOT testing in System.Text.Json. Fix #73431.

* Enabled AOT testing for generic theories/MakeGenericMethod tests. Address misc feedback.

* Remove hardcoded JsonSerializer calls from test suite.

17 months agoUpdate dependencies from https://github.com/dotnet/roslyn build 20230530.4 (#86954)
dotnet-maestro[bot] [Fri, 2 Jun 2023 07:03:52 +0000 (09:03 +0200)]
Update dependencies from https://github.com/dotnet/roslyn build 20230530.4 (#86954)

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.7.0-1.23269.2 -> To Version 4.7.0-2.23280.4

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
17 months agoUpdate dependencies from https://github.com/dotnet/arcade build 20230531.3 (#87000)
dotnet-maestro[bot] [Fri, 2 Jun 2023 07:03:09 +0000 (09:03 +0200)]
Update dependencies from https://github.com/dotnet/arcade build 20230531.3 (#87000)

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.23280.3 -> To Version 8.0.0-beta.23281.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
17 months agoFixing the InstructionSetDesc implications (#86486)
Tanner Gooding [Fri, 2 Jun 2023 03:25:13 +0000 (20:25 -0700)]
Fixing the InstructionSetDesc implications (#86486)

* Fixing the InstructionSetDesc implications

* Adding more NAOT smoke tests covering the missed instruction sets

* Simplify the HasInstructionSet(Avx512F) check in compSetProcessor

* Fixing the NAOT smoke tests

* Fixing some stale comments

* Fixing build failure

* Ensure the X86Serialize test lambda returns a bool

* Fixing build failure

* Ensure AVX2 isn't opportunistically supported and that dynamic checks work correctly for Vector128/256/512.IsHardwareAccelerated

* Ensure Avx512Vbmi has [Intrinsic] on the right members

* Fix the secondary isIsaSupported check to be properly opportunistic for NAOT

* Ensure vpermb is covered

* Allow opportunistic AvxVnni when Avx2 is opted into

* Don't expect opportunistic Avx2 or AvxVnni in the smoke tests

* Ensure Avx2.X64 checks ExpectedAvx2, not ExpectedAvx

* Change the filter the AVX512 NAOT smoke test on OSX

* Updating the CPUID test to cover new ISAs and correctly validate the hierarchy

* Add two more NAOT smoke tests which cover explicit ISA exclusion

* Add additional CpuId validation covering R2R scenarios using various ISA opt-in

* Ensure new R2R tests actually use R2R

* Don't try to expose an invalid --instruction-set combination

* Ensure xarch r2r tests only run on xarch

* Don't compare manufacturer name of CPUID 0x00000000 to 0x80000000

* Filter out the CPUID test on Mono and account for AVX-512 being unsupported on MacOS

17 months agoMark some loader tests as NativeAotIncompatible (#87035)
Elinor Fung [Fri, 2 Jun 2023 02:21:19 +0000 (19:21 -0700)]
Mark some loader tests as NativeAotIncompatible (#87035)

These tests are fundamentally not compatible with nativeaot - mark them as incompatible instead of disabling against an issue so that we stop building them.

17 months agoMore test baselining (#86988)
Michal Strehovský [Fri, 2 Jun 2023 02:02:02 +0000 (11:02 +0900)]
More test baselining (#86988)

I _think_ with this we can finally run a complete Pri-0 test pass and have it succeed.

17 months agoDelete various end symbols (#86992)
Michal Strehovský [Fri, 2 Jun 2023 02:01:39 +0000 (11:01 +0900)]
Delete various end symbols (#86992)

For various headers we need to be able to refer to ends of various sections within the compiler. We were generating named symbols for these, but they can also be references as "beginning symbol + delta". The end symbol often confuses debuggers and disassemblers and instead of saying "this symbol is FooSection+0x123", it will say "BarSectionEnd+0x123" and that's a useless information.

Delete the named end symbols in favor of generating relocs with deltas.

17 months ago[RISC-V] Copy SPC.dll when BuildDll is disabled (#86991)
Dong-Heon Jung [Fri, 2 Jun 2023 02:01:10 +0000 (11:01 +0900)]
[RISC-V] Copy SPC.dll when BuildDll is disabled (#86991)

17 months agoAdd comment about NativeAot RIDs (#87011)
Sven Boemer [Fri, 2 Jun 2023 01:59:14 +0000 (18:59 -0700)]
Add comment about NativeAot RIDs (#87011)

* Add comment about NativeAot RIDs

To make this easier to keep in sync (see https://github.com/dotnet/installer/pull/16545).

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
17 months ago[browser] Fix fingerprinting of relinked dotnet.js during build (#86048)
Marek Fišera [Fri, 2 Jun 2023 01:11:39 +0000 (03:11 +0200)]
[browser] Fix fingerprinting of relinked dotnet.js during build (#86048)

* Fix reading version of relinked dotnet.js during build
* Support .NET 7 file name
* Add WBT test
* Fix publish fingerprinting
* ConvertDllsToWebCil: fix path concatenation

---------

Co-authored-by: Ankit Jain <radical@gmail.com>
17 months agoStringMarshalling behavior override tests (#86963)
Jackson Schuster [Fri, 2 Jun 2023 00:04:09 +0000 (19:04 -0500)]
StringMarshalling behavior override tests (#86963)

Adds tests to make sure MarshalAs and MarshalUsing override the default string marshalling behavior set by the interface-wide StringMarshalling. No changes were necessary in the generator.

17 months ago[wasm] CI: Add more wasm specific paths (#87029)
Ankit Jain [Thu, 1 Jun 2023 22:58:30 +0000 (18:58 -0400)]
[wasm] CI: Add more wasm specific paths (#87029)

`src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/`
`src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/`
`src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/`

- Adding these ensures that changes in these will trigger only wasm
  jobs.

17 months agoDevirtualization with multiple guesses: JIT (#86809)
Egor Bogatov [Thu, 1 Jun 2023 22:36:11 +0000 (00:36 +0200)]
Devirtualization with multiple guesses: JIT (#86809)

17 months agoAdd individual compilation tests for each config binding overload (#86910)
Layomi Akinrinade [Thu, 1 Jun 2023 21:45:27 +0000 (14:45 -0700)]
Add individual compilation tests for each config binding overload (#86910)

* Add individual compilation tests for each config binding overload

* Update ConfigurationBindingGeneratorTests.cs

Restore exclusion of browser/wasm for test runs.

17 months agoRevert "Revert "Change our Android build and test legs to use the new CBL-Mariner...
Jeremy Koritzinsky [Thu, 1 Jun 2023 21:11:52 +0000 (14:11 -0700)]
Revert "Revert "Change our Android build and test legs to use the new CBL-Mariner-based images."" (#86967)

17 months ago[wasm] Optimize jiterpreter type cast opcodes & add zero page optimizations (#86928)
Katelyn Gadd [Thu, 1 Jun 2023 20:33:36 +0000 (13:33 -0700)]
[wasm] Optimize jiterpreter type cast opcodes & add zero page optimizations (#86928)

* Add inline fast-path for exact type matches when doing mint_castclass/mint_isinst in traces
* Invoke has_parent_fast directly when missing the fast-path
* Fully inline mint_unbox into traces
* Optimize the slow path for castclass/isinst by removing the opcode switch
* Fuse null checks into castclass, isinst and unbox
* Specialize code for special array interfaces at JIT time
* Disable zero page optimizations in builds with threading enabled
* Remove unused helpers

17 months agoOptimize constant i2/i4 shuffles in jiterpreter
Katelyn Gadd [Thu, 1 Jun 2023 20:29:45 +0000 (13:29 -0700)]
Optimize constant i2/i4 shuffles in jiterpreter

* Detect constant shuffle vectors for i2/i4 shuffles and expand them to byte shuffle vectors at JIT time
* Detect constant i1 shuffle vectors and emit them as constants to trigger v8 optimization
* v8 doesn't optimize splats so use the enormous encoding for v128 zero

17 months ago[mono][aot] Deferred failures code cleanup (#86998)
Milos Kotlar [Thu, 1 Jun 2023 20:02:26 +0000 (22:02 +0200)]
[mono][aot] Deferred failures code cleanup (#86998)

* Mono AOT deferred failures cleanup

* Move deferred type load failure callback to the runtime callbacks struct

17 months agoAdd support for SHA-3
Kevin Jones [Thu, 1 Jun 2023 16:59:33 +0000 (12:59 -0400)]
Add support for SHA-3

This adds API to interact with the SHA-3 algorithm to the framework.

Like all other cryptographic algorithms in .NET, this only functions on OSes where the underlying system exposes the algorithm.

17 months agoUpdate binder gen parser to issue diagnostics for invalid input types (#86856)
Layomi Akinrinade [Thu, 1 Jun 2023 16:33:36 +0000 (09:33 -0700)]
Update binder gen parser to issue diagnostics for invalid input types (#86856)

* Update binder gen parser to issue diagnostics for invalid input types

* Address feedback; tests for more invalid types; fix failing CI test

17 months ago[RISC-V] Fix typo in UMEntryThunkCode::Decode (#86997)
t-mustafin [Thu, 1 Jun 2023 14:31:03 +0000 (17:31 +0300)]
[RISC-V] Fix typo in UMEntryThunkCode::Decode (#86997)

17 months ago[wasm][build] Fix webcil publish temp path (#86994)
Marek Fišera [Thu, 1 Jun 2023 13:53:23 +0000 (15:53 +0200)]
[wasm][build] Fix webcil publish temp path (#86994)

Fix typo from #86972

17 months agoRead StartDiskNumber as uint32 (#83923)
Ruslan Murtazin [Thu, 1 Jun 2023 13:33:18 +0000 (16:33 +0300)]
Read StartDiskNumber as uint32 (#83923)

Fix #31825

Co-authored-by: Ruslan Murtazin <ruslan.murtazin@yahoo.com>
17 months ago[nativeaot][tests] Add Native AOT iOS perf scenarios (#85317)
Milos Kotlar [Thu, 1 Jun 2023 10:15:14 +0000 (12:15 +0200)]
[nativeaot][tests] Add Native AOT iOS perf scenarios (#85317)

This PR updates the CI jobs to include the Native AOT iOS performance scenarios. The changes include building the NativeAOT iOS scenarios and running them, as well as updating the underlying scripts and project files to support it. Additionally, it separates the scenarios from the current Mono AOT sample measurements.

17 months agoFix rounding error in getLikelyClassesOrMethods (#86965)
Egor Bogatov [Thu, 1 Jun 2023 09:57:48 +0000 (11:57 +0200)]
Fix rounding error in getLikelyClassesOrMethods (#86965)

17 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 219199...
dotnet bot [Thu, 1 Jun 2023 09:52:09 +0000 (02:52 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2191992 (#86981)

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

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

17 months ago[RISC-V] Optimize Load Immediate (#86790)
Alexander Soldatov [Thu, 1 Jun 2023 09:35:43 +0000 (12:35 +0300)]
[RISC-V] Optimize Load Immediate (#86790)

Reduce amount of instructions required for loading 64-bit immediate to
register. In the worst case for full 64 bit constant it's still require
8 instructions (LUI + ADDIW + SLLI + ADDI + SLLI + ADDI + SLLI + ADDI).
But addresses and constants which don't use full 64 bits might be loaded
using only 2, 4 or 6 instructions.

17 months agoUpdate runtime-codeql.yml to run 3x/week (#86979)
Mark Plesko [Thu, 1 Jun 2023 05:52:46 +0000 (22:52 -0700)]
Update runtime-codeql.yml to run 3x/week (#86979)

17 months agoTar: Improve unseekable stream handling (#84279)
Carlos Sánchez López [Thu, 1 Jun 2023 03:35:53 +0000 (20:35 -0700)]
Tar: Improve unseekable stream handling (#84279)

* Add tests that verify we handle unseekable streams correctly.
Adjust existing unseekable stream tests to verify correct for all formats and with multiple tar entries.

* Add expected data field locations for all supported formats.

* Add exception message for when attempting to write an unseekable data stream into an unseekable archive stream.

* Add seekability validation in public TarWriter entry writing methods.

* Add TarFile stream roundtrip tests for unseekable streams.

* Add missing async TarFile roundtrip tests.

* Support unseekable streams in TarHeader.Write.

* Reuse and simplify the code.

* More reuse, remove unused and not needed.

* Remove TarFile.CreateFromDirectoryAsync.File.Roundtrip.cs. Submit it in a separate PR.

* Remove unnecessary resx comments.

* Dedicated method for writing fields to buffer depending on the format.

* Specify `Data` in name of method that expects unseekable data stream. Add extra debug asserts.

* Delete unnecessary method.

* Rename WritePadding to WriteEmptyPadding

* Rename test variables

* Merge identical test arrays into one

* Invert if else to be more clear about conditions

* remove size assign comment

* Remove redundant debug assert

* Async padding byte array creation simplification

* Apply suggestions from code review

---------

Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
17 months agoUse IUtf8SpanFormattable.TryFormat in a few more places (#86931)
Stephen Toub [Thu, 1 Jun 2023 01:04:59 +0000 (21:04 -0400)]
Use IUtf8SpanFormattable.TryFormat in a few more places (#86931)

* Use IUtf8SpanFormattable.TryFormat in a few more places

* Update src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs

* Update src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
---------

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
17 months ago[wasm][build] Don't use GetTempFileName; emit webcil to subdir of obj (#86972)
Aleksey Kliger (λgeek) [Thu, 1 Jun 2023 00:33:49 +0000 (20:33 -0400)]
[wasm][build] Don't use GetTempFileName; emit webcil to subdir of obj (#86972)

See https://github.com/dotnet/runtime/issues/73793

Instead of using GetTempFileName (which can run out of temp file names
on Windows after 64K files), emit the temporary webcil files to a
directory in IntermediateOutputPath before copying them to the final
location, if they changed (which is elsewhere in
IntermediateOutputPath).

17 months ago[wasm] Use an older version of chrome for testing `113.0.5672.63` (#86968)
Ankit Jain [Wed, 31 May 2023 22:16:51 +0000 (18:16 -0400)]
[wasm] Use an older version of chrome for testing `113.0.5672.63` (#86968)

.. because of crashes being hit on linux.

Issue: https://github.com/dotnet/runtime/issues/86919

17 months agoClean-up error in `IDispatch::Invoke()` scenario (#86964)
Aaron Robinson [Wed, 31 May 2023 22:11:00 +0000 (15:11 -0700)]
Clean-up error in `IDispatch::Invoke()` scenario (#86964)

* Clean-up error in IDispatch::Invoke scenario

17 months agoFix warnings found with CA1861 Avoid constant arrays as arguments (#86229)
Buyaa Namnan [Wed, 31 May 2023 21:01:01 +0000 (14:01 -0700)]
Fix warnings found with CA1861 Avoid constant arrays as arguments (#86229)

* Fix warnings found with CA1861

* Update src/coreclr/tools/aot/ILCompiler/Program.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Remove supression from static field

* Revert using string.Split(char)

* Update src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationILGen.cs

---------

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
17 months agoSystem.Data: override System.Data.Sql tfm only when ArcadeBuildFromSource. (#86962)
Tom Deseyn [Wed, 31 May 2023 20:26:24 +0000 (22:26 +0200)]
System.Data: override System.Data.Sql tfm only when ArcadeBuildFromSource. (#86962)

17 months agoRemove some working tests from issues.targets (#86939)
Michal Strehovský [Wed, 31 May 2023 20:08:03 +0000 (05:08 +0900)]
Remove some working tests from issues.targets (#86939)

Fixes #86561
Fixes dotnet/runtimelab#1136

17 months ago[RISC-V] Fix typo in ReversePInvoke (#86958)
t-mustafin [Wed, 31 May 2023 18:47:30 +0000 (21:47 +0300)]
[RISC-V] Fix typo in ReversePInvoke (#86958)

17 months agoThe ConstructorBuilder and MethodBuilder generated parameter should not have default...
Badre BSAILA [Wed, 31 May 2023 17:53:25 +0000 (19:53 +0200)]
The ConstructorBuilder and MethodBuilder generated parameter should not have default value by default (#84550)

* The ConstructorBuilder and MethodBuilder generated parameter should not has default value by default

* return parameter has no default value

* use dbnull.value

* exclude test from native aot because it returns always a true

* add test for nativeaot

* refactor nativeaot test

* simplify ReturnParameter DefaultValueImpl

17 months agoAdd message for AmbiguousMatchException (#84512)
Marc Brooks [Wed, 31 May 2023 17:52:05 +0000 (12:52 -0500)]
Add message for AmbiguousMatchException (#84512)

Add information to what is ambiguously matched when an AmbiguousMatchException is thrown as we know what we found multiple matching items for.

Renames of SR/RESX strings. Removal of `.ToString()` calls. Remove unused strings from RESX RESX string rewording.
Change the exception format string to "found for" style.
Cleanup of DefaultBinder.cs FindMostDerived* to use the local variable.
Remove copy-pasta ThrowHelper.cs instance.
Don't emit the CustomAtrributeData's type
All MemberInfo cases pass a (possibly null) `DeclaringType`.
Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com>
17 months agoUpdate dependencies from https://github.com/dotnet/arcade build 20230530.3 (#86951)
dotnet-maestro[bot] [Wed, 31 May 2023 17:18:36 +0000 (10:18 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20230530.3 (#86951)

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.23280.1 -> To Version 8.0.0-beta.23280.3

Dependency coherency updates

Microsoft.DotNet.XliffTasks
 From Version 1.0.0-beta.23272.1 -> To Version 1.0.0-beta.23279.1 (parent: Microsoft.DotNet.Arcade.Sdk

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
17 months agoRemoved unnecessary string interpolation (#86945)
Piotr [Wed, 31 May 2023 15:46:51 +0000 (17:46 +0200)]
Removed unnecessary string interpolation (#86945)

17 months ago[LoongArch64] redesign the Prolog/Epilog for enabling OSR. (#86866)
Qiao Pengcheng [Wed, 31 May 2023 15:40:25 +0000 (23:40 +0800)]
[LoongArch64] redesign the Prolog/Epilog for enabling OSR. (#86866)

Also fix the comparing errors when debugging libraries.

17 months agoRemove implicitly dependent reference (#86938)
Varorbc [Wed, 31 May 2023 15:38:16 +0000 (23:38 +0800)]
Remove implicitly dependent reference (#86938)

17 months agoCleanup BitMapper sizeof type (#86881)
Marc Brooks [Wed, 31 May 2023 15:35:39 +0000 (10:35 -0500)]
Cleanup BitMapper sizeof type (#86881)

17 months agoEarly out in impMarkInlineCandidate for minopts (#86949)
Egor Bogatov [Wed, 31 May 2023 14:35:49 +0000 (16:35 +0200)]
Early out in impMarkInlineCandidate for minopts (#86949)

17 months ago[wasm][bench] Limit initial samples (#86953)
Radek Doulik [Wed, 31 May 2023 14:25:35 +0000 (16:25 +0200)]
[wasm][bench] Limit initial samples (#86953)

* [wasm][bench] Limit initial samples

Try to limit initial samples measurement to 1 second.

Currently some of string measurements with hybrid globalization turned on
can take hundreds of seconds. This makes the browser stop the benchmark
and the measurement job times out.

This should limit the initial samples to take cca 1 second or take just
one initial sample if it takes more time.

Also increase the initial samples for string comparison, where it was on
the edge and the times were flipping between cca 5 and 10 seconds.

* Do GC collect only when doing initial samples

17 months ago[NativeAOT] implement Interlocked.ReadMemoryBarrier intrinsic (#86842)
Vladimir Sadov [Wed, 31 May 2023 14:24:42 +0000 (07:24 -0700)]
[NativeAOT] implement Interlocked.ReadMemoryBarrier intrinsic (#86842)

* ReadMemoryBarrier

* remove more literals (use constants)

* missing include for win-arm64

* removed nonintrinsic implementations of ReadMemoryBarrier

* removed nonintrinsic MemoryBarrier()

* unified Interlocked.MemoryBarrier

* added a test for indirect calling Interlocked.MemoryBarrier

* PR feedback

* use no-inlining peoperties

* NoInlining must be with methods (not properties)