platform/upstream/dotnet/runtime.git
17 months agoImplement JsonStringEnumConverter<TEnum> (#87224)
Eirik Tsarpalis [Wed, 7 Jun 2023 23:20:34 +0000 (00:20 +0100)]
Implement JsonStringEnumConverter<TEnum> (#87224)

* Fix NativeAOT support for JsonStringEnumConverter.

* Fix merge issue.

* Implement JsonStringEnumConverter<TEnum>.

* Remove leftover comments.

* Revert unnecessary suppression.

* Update compatibility suppressions.

* Add missing XML docs

* Fix capitalization.

* add local project compatibility suppressions

* apply suggestion in all location

* Fix failing test.

* Ensure both converter factories throw an appropriate exception when passed invalid inputs.

17 months agoImprove codegen for AVX-512 comparisons and general handling of `TYP_MASK` (#87089)
Tanner Gooding [Wed, 7 Jun 2023 23:01:59 +0000 (16:01 -0700)]
Improve codegen for AVX-512 comparisons and general handling of `TYP_MASK` (#87089)

* Add the various base kmask instructions

* Updating lowering to better handle the AVX512 comparisons that produce a mask

* Remove INS_Flags_IsMskSrcSrcEvexInstruction as its the same as INS_Flags_IsDstDstSrcAVXInstruction

* Save 1-byte on the encoding for CompareEqualMask and signed CompareGreaterThanMask

* Apply formatting patch

* Ensure kmovd is encoded correctly and kmov is disassembled correctly

* Ensure vpcmpgtq is actually handled

* Fix the definition of a couple kmask instructions

* Ensure gtNewSimdCmpOpAll node creates correct IR for simdSize == 64

* Add , that were dropped when resolving merge

* Ensure that the new hwintrinsiclistxarch entries don't assert ValueNum

17 months agoApply source build patch (#87226)
Jan Kotas [Wed, 7 Jun 2023 22:32:37 +0000 (15:32 -0700)]
Apply source build patch (#87226)

Fixes #83695

17 months agoUse Unsafe.BitCast for Interlocked.{Compare}Exchange of float/double (#87166)
Huo Yaoyuan [Wed, 7 Jun 2023 22:28:01 +0000 (06:28 +0800)]
Use Unsafe.BitCast for Interlocked.{Compare}Exchange of float/double (#87166)

* Update {Compare}Exchange in coreclr to use Unsafe.As

* Remove corresponding FCalls

* Share with mono

* Remove Mono icalls

* Add AggressiveInlining

* Remove unused union type in mono

17 months ago[VM] Fix potential undefined behavior (#87119)
Trung Nguyen [Wed, 7 Jun 2023 22:26:37 +0000 (08:26 +1000)]
[VM] Fix potential undefined behavior (#87119)

Use pointer arithmetic instead of direct array access to avoid
compilers, specifically GCC, to discover undefined behavior and
generate unintended code when optimization is turned on.

The array involved is `pSeries->val_serie`, which is declared as
a fixed sized array of size 1. However, `index` is always a
non-negative integer, and we want to access the memory at
`-index`, which is either zero or negative.

17 months agoEnsure the CPUID tests cover a couple hwintrinsic disablement edge cases (#87127)
Tanner Gooding [Wed, 7 Jun 2023 21:56:11 +0000 (14:56 -0700)]
Ensure the CPUID tests cover a couple hwintrinsic disablement edge cases (#87127)

* Ensure CPUID tests have BMI1/BMI2 use the AVX hierarchy checks, not AVX2

* Ensure CPUID tests check the DOTNET_EnableSSE3_4 environment variable

* Fix a build failure in X86Base/CpuId.cs

* Ensure that BMI1/BMI2 are checking the right bits

17 months agoAllow duplicate feature switch settings (#87207)
Michal Strehovský [Wed, 7 Jun 2023 20:50:18 +0000 (05:50 +0900)]
Allow duplicate feature switch settings (#87207)

Fixes #86186.

17 months agoTweak assert in AsyncTaskMethodBuilder (#87215)
Stephen Toub [Wed, 7 Jun 2023 19:43:49 +0000 (15:43 -0400)]
Tweak assert in AsyncTaskMethodBuilder (#87215)

17 months agoAdd timestamps to XUnitLogChecker output (#86737)
Mark Plesko [Wed, 7 Jun 2023 18:08:59 +0000 (11:08 -0700)]
Add timestamps to XUnitLogChecker output (#86737)

* Add timestamps to XUnitLogChecker output

* format

* Handle $ strings

* Combine two Writes into one

17 months agoFix handling of CreateScalarUnsafe for embedded broadcast (#87134)
Tanner Gooding [Wed, 7 Jun 2023 18:05:27 +0000 (11:05 -0700)]
Fix handling of CreateScalarUnsafe for embedded broadcast (#87134)

* Adding a regression test for dotnet/runtime#87116

* Ensure IsContainableHWIntrinsicOp takes into account whether CreateScalarUnsafe is coming from memory for embedded broadcast

17 months ago[wasm] Add workaround `NuGet-Migrations` issue for a missed case (#87041)
Ankit Jain [Wed, 7 Jun 2023 15:37:38 +0000 (11:37 -0400)]
[wasm] Add workaround `NuGet-Migrations` issue for a missed case (#87041)

One case was missed in the earlier attempt at this, which caused some of
the tests in wasm runtime tests to not get the workaround script.

One such example - `JIT.PGO`

The other cases had:
```sh
export WasmTestAppArgs="$WasmTestAppArgs --exclusion-list=TestExclusionList.txt"
chmod +x ./RunTests.sh
(CONSOLE_TEMP_DIR="$(mktemp -d)" ; "$DOTNET_ROOT/dotnet" new console -o "$CONSOLE_TEMP_DIR" ; rm -rf "$CONSOLE_TEMP_DIR") || true
./RunTests.sh
```

.. and the broken one has:

```sh
dotnet $CORE_ROOT/xunit/xunit.console.dll profiler/unittest/profiler.unittest.XUnitWrapper.dll -parallel collections -nocolor -noshadow -xml testResults.xml -trait TestGroup=profiler.unittest
```

.. no workaround with `dotnet new ..`.

17 months agoMove the CreateCastingConverter<T>() method to the base JsonConverter type. (#87211)
Eirik Tsarpalis [Wed, 7 Jun 2023 14:16:19 +0000 (15:16 +0100)]
Move the CreateCastingConverter<T>() method to the base JsonConverter type. (#87211)

17 months agoMake LocalizedApp test stop requiring UTF8 output encoding (#87176)
Elinor Fung [Wed, 7 Jun 2023 14:09:21 +0000 (07:09 -0700)]
Make LocalizedApp test stop requiring UTF8 output encoding (#87176)

17 months agoSet ApiCompatIgnoreTargetPlatformMoniker for packable projects (#87212)
Viktor Hofer [Wed, 7 Jun 2023 13:41:42 +0000 (15:41 +0200)]
Set ApiCompatIgnoreTargetPlatformMoniker for packable projects (#87212)

Follow-up change on a bugfix/feature in APICompat: https://github.com/dotnet/sdk/commit/b8c07fee1b150d46e5c4229cf1f0d81da20393a5

17 months agoAdd back fixed xunit decimal, IntPtr and UIntPtr commented test cases (#87084)
João Nuno Mota [Wed, 7 Jun 2023 12:43:16 +0000 (13:43 +0100)]
Add back fixed xunit decimal, IntPtr and UIntPtr commented test cases (#87084)

17 months agoDisable S.T.Json tests on NativeAOT (#87203)
Michal Strehovský [Wed, 7 Jun 2023 08:31:22 +0000 (17:31 +0900)]
Disable S.T.Json tests on NativeAOT (#87203)

We're getting OOM-killed in the CI. See #87078.

I'm also changing how we do warning suppressions. We still need to suppress most of AOT warnings because xUnit/tests are not warning clean, but the warning about generic recursion is critical for the product and should fail the build.

17 months ago[wasm] Disable System.Text.Json/AOT tests (#87157)
Ankit Jain [Wed, 7 Jun 2023 03:48:32 +0000 (23:48 -0400)]
[wasm] Disable System.Text.Json/AOT tests (#87157)

- this was disabled earlier from highresource_aot builds, but that had a
  side-effect of enabling them for regular aot builds.

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

17 months agoJIT: Clean up BB successor iteration (#86839)
Jakob Botsch Nielsen [Tue, 6 Jun 2023 17:17:50 +0000 (19:17 +0200)]
JIT: Clean up BB successor iteration (#86839)

* Remove old code
* Use visitor with an array as part of AllSuccessorEnumerator

17 months agoCleanup scripts for PGO cleanup (dotnet/performance#3067). (#87163)
Jiri Cincura ↹ [Tue, 6 Jun 2023 16:54:54 +0000 (18:54 +0200)]
Cleanup scripts for PGO cleanup (dotnet/performance#3067). (#87163)

17 months agoFix creating cultures with extensions in the name (#87114)
Tarek Mahmoud Sayed [Tue, 6 Jun 2023 16:05:41 +0000 (09:05 -0700)]
Fix creating cultures with extensions in the name (#87114)

17 months agoEnable EventPipe support in MacOS (#86766)
Lakshan Fernando [Tue, 6 Jun 2023 15:27:56 +0000 (08:27 -0700)]
Enable EventPipe support in MacOS (#86766)

* Enable EventPipe support in MacOS

* Fix FreeBSD build break

* FB

17 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 219474...
dotnet bot [Tue, 6 Jun 2023 15:27:33 +0000 (08:27 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2194745 (#87168)

17 months ago[fabricbot] Do not add needs-further-triage to issues still marked as untriaged ...
Jeff Handley [Tue, 6 Jun 2023 15:15:13 +0000 (08:15 -0700)]
[fabricbot] Do not add needs-further-triage to issues still marked as untriaged (#87160)

17 months agoupdate QuicConnection.ConnectAsync exceptions (#87048)
Tomas Weinfurt [Tue, 6 Jun 2023 15:02:23 +0000 (17:02 +0200)]
update QuicConnection.ConnectAsync exceptions (#87048)

* update QuicConnection.ConnectAsync exceptions

* feedback from review

17 months agoReenabled k-nucleotide-9 test. (#87058)
Jan Dupej [Tue, 6 Jun 2023 10:58:48 +0000 (12:58 +0200)]
Reenabled k-nucleotide-9 test. (#87058)

17 months agoUpdate area-owners.json to reflect change in area-owners.md (#87144)
Jeff Handley [Tue, 6 Jun 2023 08:14:04 +0000 (01:14 -0700)]
Update area-owners.json to reflect change in area-owners.md (#87144)

17 months ago[RISC-V][JIT] Fix arithmetics (#86996)
Dong-Heon Jung [Tue, 6 Jun 2023 08:10:04 +0000 (17:10 +0900)]
[RISC-V][JIT] Fix arithmetics (#86996)

* [RISC-V][JIT] Fix multiplication instruction

* [RISC-V][JIT] Fix a test failure

- value_numbering_checked_arithmetic_with_constants_ro

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