platform/upstream/dotnet/runtime.git
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)

17 months agoFix recursive type support when consuming source generated code from the .NET 6 sdk...
Eirik Tsarpalis [Wed, 31 May 2023 13:59:31 +0000 (14:59 +0100)]
Fix recursive type support when consuming source generated code from the .NET 6 sdk. (#86821)

17 months agoCI: specify BaseOS for the unknown rid build. (#86688)
Tom Deseyn [Wed, 31 May 2023 13:54:47 +0000 (15:54 +0200)]
CI: specify BaseOS for the unknown rid build. (#86688)

17 months agoUse underlying type converter for nullable type (#84208)
Badre BSAILA [Wed, 31 May 2023 11:29:27 +0000 (13:29 +0200)]
Use underlying type converter for nullable type (#84208)

* Use underlying type converter for nullable type

* verify that we use underlying type converter for nullable types

* rollback a little change

* Update src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Unit.Tests/JsonSourceGeneratorTests.cs

* Update src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Unit.Tests/JsonSourceGeneratorTests.cs

* Use consistent indentation.

* Fix runtime support for nullable properties with custom converters.

---------

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
17 months agoUse Knobs to populate AppContext switches (#86883)
Michal Strehovský [Wed, 31 May 2023 09:34:54 +0000 (18:34 +0900)]
Use Knobs to populate AppContext switches (#86883)

Previously AppContext switches were set by injecting a method that calls `AppContext.SetSwitch` at startup. Use the configuration blob added in #86068 instead. This makes startup a tiny bit faster and the outputs a tiny bit smaller.

Fixes #77054.

17 months ago[mono][aot] Add support for deferred failures during AOT compilation (#86554)
Milos Kotlar [Wed, 31 May 2023 09:32:00 +0000 (11:32 +0200)]
[mono][aot] Add support for deferred failures during AOT compilation (#86554)

* Add deferred failures to the AOT comiler

* Move type_load_failure_callback to mono-error.c

* Add default mono_class_set_deferred_type_load_failure_callback

* Disable failing test in llvm AOT configurations

17 months ago[mono][interp] Preserve type information of stack args when inlining (#86898)
Vlad Brezae [Wed, 31 May 2023 09:04:16 +0000 (12:04 +0300)]
[mono][interp] Preserve type information of stack args when inlining (#86898)

In order to enable more devirtualization. Type information from caller method should always be more specific (or the same) as the one coming from inlined method signature.

17 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 219120...
dotnet bot [Wed, 31 May 2023 07:24:26 +0000 (00:24 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2191208 (#86925)

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

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

17 months agoDo less work building Delegate.GetMethodInfo lookup (#86930)
Michal Strehovský [Wed, 31 May 2023 05:40:57 +0000 (14:40 +0900)]
Do less work building Delegate.GetMethodInfo lookup (#86930)

This code is very problematic for startup. We're spending 6.6% of startup samples of the Stage2 app in `ComputeLdftnReverseLookup_InvokeMap`. This code supports `Delegate.GetMethodInfo` and builds a reverse lookup table to lookup code metadata from code address. The data structure we have in the image is optimized for lookups in the other direction. 2.2% of the total time is spent trying to decode the entrypoint as an unboxing stub (the requires looking up unwinding info for the method). Shortcut this and do it only for valuetypes.

Medium term we'd want to do something about this. In the end this is the same problem as https://github.com/dotnet/runtime/pull/79921#discussion_r1056547078. Except this time we need to be able to lookup this information both ways (from metadata to function pointer and from function pointer to metadata). One thing I'm thinking about is whether we could store the hashcode of the owning type in the unwinding information of the method to give us something to go off.

17 months ago[main] Update dependencies from dotnet/arcade (#86494)
dotnet-maestro[bot] [Wed, 31 May 2023 05:16:44 +0000 (07:16 +0200)]
[main] Update dependencies from dotnet/arcade (#86494)

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

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

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

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

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

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.23268.1 -> To Version 8.0.0-beta.23274.6

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

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

Dependency coherency updates

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

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

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

Dependency coherency updates

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

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

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

Dependency coherency updates

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

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

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

Dependency coherency updates

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

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

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.23268.1 -> To Version 8.0.0-beta.23279.4

Dependency coherency updates

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

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

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

Dependency coherency updates

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

* Remove duplicate package references

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
17 months agoRemove comment in ZipFile.Create.cs (#86927)
Marc Brooks [Wed, 31 May 2023 04:32:32 +0000 (23:32 -0500)]
Remove comment in ZipFile.Create.cs (#86927)

* Remove comment in ZipFile.Create.cs

In #85491 the stream-based version of the `DoCreateFromDirectory` override copy-pasted comments from the string-based version
```csharp
// Rely on Path.GetFullPath for validation of sourceDirectoryName and destinationArchive
```
The last clause of that comment is not relevant in the stream-based version (the argument is `Stream destination`) so deleted that clause.

It's possible that the other comment is also misleading as we test the `compressionLevel ` argument just above (unlike in the `String destinationArchive` version
```csharp
            // Checking of compressionLevel is passed down to DeflateStream and the IDeflater implementation
            // as it is a pluggable component that completely encapsulates the meaning of compressionLevel.
```

* Remove compressionLevel validation comment

Co-authored-by: Carlos Sánchez López <1175054+carlossanlop@users.noreply.github.com>
---------

Co-authored-by: Carlos Sánchez López <1175054+carlossanlop@users.noreply.github.com>
17 months ago[wasm] Exploit unallocated zero page to remove null checks in jiterpreter (#86403)
Katelyn Gadd [Wed, 31 May 2023 02:50:34 +0000 (19:50 -0700)]
[wasm] Exploit unallocated zero page to remove null checks in jiterpreter (#86403)

* Fuse null and length checks for getelema1 and getchr
* Sense whether zero page optimizations are safe based on the location of the emscripten stack and contents of memory near zero
* Improve jiterpreter stats formatting

17 months agoEnsure Memory<T>/ReadOnlyMemory<T> are marked as unsupported types. (#86900)
Eirik Tsarpalis [Tue, 30 May 2023 22:12:23 +0000 (23:12 +0100)]
Ensure Memory<T>/ReadOnlyMemory<T> are marked as unsupported types. (#86900)

* Ensure Memory<T>/ReadOnlyMemory<T> are marked as unsupported types.

* Update src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/InvalidTypeTests.cs

17 months agoFix ClrEtwAllMeta.lst for the ContentionLockCreated event (#86907)
Koundinya Veluri [Tue, 30 May 2023 21:19:28 +0000 (14:19 -0700)]
Fix ClrEtwAllMeta.lst for the ContentionLockCreated event (#86907)

17 months agoFix deserialization of nullable structs with constructors. (#86896)
Eirik Tsarpalis [Tue, 30 May 2023 18:25:02 +0000 (19:25 +0100)]
Fix deserialization of nullable structs with constructors. (#86896)

17 months agoFix assert failure in grow_heap_segment for SVR GC. (#86889)
Peter Sollich [Tue, 30 May 2023 17:55:52 +0000 (19:55 +0200)]
Fix assert failure in grow_heap_segment for SVR GC. (#86889)

For my previous change, I overlooked the fact that we may call grow_heap_segment from within should_proceed_for_no_gc(), so it's too late to turn off gradual_decommit_in_progress_p after this method returns.

17 months agoImplement stream-based ZipFile ExtractToDirectory and CreateFromDirectory method...
Carlos Sánchez López [Tue, 30 May 2023 16:48:39 +0000 (09:48 -0700)]
Implement stream-based ZipFile ExtractToDirectory and CreateFromDirectory method overloads (#85491)

* ref: Add stream-based ZipFile.CreateFromDirectory and ZipFile.ExtractToDirectory methods.

* src: Add stream-based ZipFile.CreateFromDirectory ZipFile.ExtractToDirectory methods.

* tests: Move wrongly placed tests to the correct class.

* tests: Add stream-based tests for ZipFile.CreateFromDirectory and ZipFile.ExtractToDirectory.

* src: Documentation and resource strings.

* tests: More tests for unseekable/unreadable/unwritable streams.

* Address suggestions and include more exception validation tests.

* Fix braces after resolving conflict.

* Use AssertExtensions.SequenceEqual for clearer error message.

* Reset the resx file again.

* Order results of dir enumeration tests

17 months agoChange the LockCreated event to ContentionLockCreated (#86817)
Koundinya Veluri [Tue, 30 May 2023 15:46:52 +0000 (08:46 -0700)]
Change the LockCreated event to ContentionLockCreated (#86817)

- The event was added in .NET 8, I have updated the event name based on the suggestion in https://github.com/microsoft/perfview/pull/1731#issuecomment-1293961643.
- The name now matches the convention used for most other events, and shows up as Contention/LockCreated as expected in PerfView

17 months agoAdd PipeOptions.FirstPipeInstance enum value (#83936)
Tarun047 [Tue, 30 May 2023 14:49:19 +0000 (20:19 +0530)]
Add PipeOptions.FirstPipeInstance enum value (#83936)

Co-authored-by: Gudipati.Tarun <Gudipati.Tarun@wisetechglobal.com>
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
17 months agoFix formatting issues in DependencyGraphViewer (#86890)
Vitek Karas [Tue, 30 May 2023 10:09:42 +0000 (03:09 -0700)]
Fix formatting issues in DependencyGraphViewer (#86890)

Whitespace only change, to fix tabs/spaces and trailing spaces.
Without this the tool doesn't build.

17 months ago[RISC-V] Fix receiving of 2nd register in struct (#86144)
t-mustafin [Tue, 30 May 2023 07:47:14 +0000 (10:47 +0300)]
[RISC-V] Fix receiving of 2nd register in struct (#86144)

* [RISC-V] Fix receiving of 2nd register in struct

* jit-format patch apply

17 months ago[RISC-V][JIT] Fix branch (#86482)
Dong-Heon Jung [Tue, 30 May 2023 07:45:53 +0000 (16:45 +0900)]
[RISC-V][JIT] Fix branch (#86482)

* [RISC-V][JIT] Fix branch

* [RISC-V][JIT] Updated emitJumpDistBind

* jit-format

* Update JALR offset value

* Updated by reviews

* Updated by reviews and fix

* [RISC-V][JIT] Fixed the dest reg of jalr

- Pass `./JIT/jit64/opt/cse/HugeField2/HugeField2.sh` test

17 months ago[wasm][globalization] `HybridGlobalization` fix bug in change case (#86799)
Ilona Tomkowicz [Tue, 30 May 2023 06:54:51 +0000 (08:54 +0200)]
[wasm][globalization] `HybridGlobalization` fix bug in change case (#86799)

* Fix + test.

* Fix surrogates problem, document final sigma.

* Update change-case.ts

* Fix NLS

17 months ago[NativeAOT] Fix MD array GC series (#86877)
Vladimir Sadov [Tue, 30 May 2023 06:03:26 +0000 (23:03 -0700)]
[NativeAOT] Fix MD array GC series (#86877)

* Fix MD array GC series

* add a test

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
17 months agoDo not compute debug names of reflection objects (#86880)
Michal Strehovský [Tue, 30 May 2023 05:45:14 +0000 (14:45 +0900)]
Do not compute debug names of reflection objects (#86880)

We're spending 5% of Stage2 app startup computing debug names.

This code originates from .NET Native where we had a "release mode with developer experience mode enabled" mode that tried to make troubleshooting trimming issues easier. One of the things it did was providing names of things in the debugger. Since we lack compiler support for this, developer experience mode is always enabled right now.

Since in .NET 5+ people are not supposed to troubleshoot trimming issues in the debugger, this mode doesn't make much sense (we also don't have a managed debugger to surface the `DebuggerDisplay` anyway)

17 months agoRead public GC options if available (#86068)
Andrii Kurdiumov [Tue, 30 May 2023 03:44:37 +0000 (09:44 +0600)]
Read public GC options if available (#86068)

17 months agoAnnotate test with IsPreciseGcSupported (#86869)
Jan Kotas [Tue, 30 May 2023 03:07:56 +0000 (20:07 -0700)]
Annotate test with IsPreciseGcSupported (#86869)

Fixes #86861

17 months agoImplement resource lookup in satellite assemblies (#86689)
Michal Strehovský [Mon, 29 May 2023 23:58:32 +0000 (08:58 +0900)]
Implement resource lookup in satellite assemblies (#86689)

Fixes #86651.

This was implemented in .NET Native so we just need to resurface it from the compiler.

Note that this is not full support for satellite assemblies (in the assembly binder, etc.) that never existed and nobody ever asked for and I don't even know what it entails.

17 months agoFaster ConstructorInfo.Invoke (#86855)
Michal Strehovský [Mon, 29 May 2023 21:06:42 +0000 (06:06 +0900)]
Faster ConstructorInfo.Invoke (#86855)

* Faster ConstructorInfo.Invoke

Speeds up reflection-invoking constructors by about 30%.

Noticed we spend some time in the `ConstructorInfo` invocation infrastructure for no good reason.

* We'd first allocate an instance of the object using a general purpose allocator (that first needs to dissect the `MethodTable` to figure out how to allocate), and then
* We'd call into general-purpose Invoke infrastructure that would validate the `this` is valid.

Neither of those are necessary - we can figure out the right allocator at the time the method invoker is first accessed, and validating `this` is not necessary because we _just_ allocated the right one.

* This is reachable and the old behavior was needed

* Apply suggestions from code review

---------

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
17 months ago[browser][MT] fix different url base of the worker (#86863)
Pavel Savara [Mon, 29 May 2023 17:09:19 +0000 (19:09 +0200)]
[browser][MT] fix different url base of the worker (#86863)

* fix different url base of the worker

17 months ago[RISC-V] Fix linking problem (#86870)
broudy3 [Mon, 29 May 2023 16:58:32 +0000 (18:58 +0200)]
[RISC-V] Fix linking problem (#86870)

17 months ago[main] Update dependencies from dotnet/roslyn-analyzers (#86793)
dotnet-maestro[bot] [Mon, 29 May 2023 16:53:50 +0000 (11:53 -0500)]
[main] Update dependencies from dotnet/roslyn-analyzers (#86793)

* Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20230525.7

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.3.5-beta1.23270.2 -> To Version 3.3.5-beta1.23275.7

* Fix new findings with CA1822 analyzer

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Buyaa Namnan <bunamnan@microsoft.com>
17 months ago[main] Update dependencies from dotnet/llvm-project dotnet/runtime-assets dotnet...
dotnet-maestro[bot] [Mon, 29 May 2023 15:58:46 +0000 (10:58 -0500)]
[main] Update dependencies from dotnet/llvm-project dotnet/runtime-assets dotnet/emsdk dotnet/runtime (#86678)

* Update dependencies from https://github.com/dotnet/llvm-project build 20230523.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.23269.1 -> To Version 14.0.0-alpha.1.23273.1

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

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.23269.1 -> To Version 14.0.0-alpha.1.23273.3

* Update dependencies from https://github.com/dotnet/runtime-assets build 20230523.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.23265.1 -> To Version 8.0.0-beta.23273.1

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

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

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

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

* Bump main version to Preview 6

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

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

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

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

* Update dependencies from https://github.com/dotnet/runtime build 20230529.2

Microsoft.NET.ILLink.Tasks , Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json
 From Version 8.0.0-preview.5.23272.1 -> To Version 8.0.0-preview.5.23279.2

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Carlos Sánchez López <1175054+carlossanlop@users.noreply.github.com>
17 months ago[codespaces] Fix V8 error when running lib tests (#86871)
Ilona Tomkowicz [Mon, 29 May 2023 15:02:47 +0000 (17:02 +0200)]
[codespaces] Fix V8 error when running lib tests (#86871)

17 months ago[mono][interp] Use vectorized opcodes for Vector<T> operators (#86859)
Vlad Brezae [Mon, 29 May 2023 13:48:21 +0000 (16:48 +0300)]
[mono][interp] Use vectorized opcodes for Vector<T> operators (#86859)

* [mono][interp] Remove some duplicated code in transform-simd.c

* [mono][interp] Intrinsify Vector<T> operators

They do the same thing as the Vector128 counterpart

* [mono][interp] Add missing simd opcodes

17 months agoFix unfailing helix test run when testResults.xml are missing (#86342)
Marie Píchová [Mon, 29 May 2023 10:47:10 +0000 (12:47 +0200)]
Fix unfailing helix test run when testResults.xml are missing (#86342)

* Attempt to fix unfailing helix test run when testResults.xml are missing

* Feedback and docker image attemted fix

* Commenting out RHEL7 for a test run to see if there are any remaining problems elsewhere

* AlmaLinux 8 instead of RHEL7

* Test docker image

* Kdepak asi soudruzi udelali chybu

* Fixed docker from centos stream 9 to 8

* Test with different Queue

* Fixed docker image name

17 months agoLocalized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 218982...
dotnet bot [Mon, 29 May 2023 07:53:51 +0000 (00:53 -0700)]
Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2189827 (#86818)

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

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

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

17 months agoRevert "Change our Android build and test legs to use the new CBL-Mariner-based image...
Michal Strehovský [Mon, 29 May 2023 05:51:10 +0000 (14:51 +0900)]
Revert "Change our Android build and test legs to use the new CBL-Mariner-based images. (#86776)" (#86854)

This reverts commit 559f630beea2d72e9357505a891ea514e731650c.

17 months ago[browser][mt] Update memory views after growth, refactor string processing, fix Share...
Isabelle Santin [Sun, 28 May 2023 19:57:15 +0000 (14:57 -0500)]
[browser][mt] Update memory views after growth, refactor string processing, fix SharedArrayBuffer detection (#86664)

Co-authored-by: pavelsavara <pavel.savara@gmail.com>
17 months agoMultiple GDV: ignore non-inlineable candidates (#86835)
Egor Bogatov [Sat, 27 May 2023 18:38:16 +0000 (20:38 +0200)]
Multiple GDV: ignore non-inlineable candidates (#86835)

17 months agoFix tiered PGO info in TC Settings event (#86827)
Koundinya Veluri [Sat, 27 May 2023 18:37:18 +0000 (11:37 -0700)]
Fix tiered PGO info in TC Settings event (#86827)

- Moved initialization of the tiered PGO config values in EEConfig to before the TC Settings event is sent
- After this change, the TC Settings event shows the correct flags when tiered PGO is enabled

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

17 months agoFix packs subset build (#86832)
Adeel Mujahid [Sat, 27 May 2023 14:31:56 +0000 (17:31 +0300)]
Fix packs subset build (#86832)

17 months agoAdd NativeAOT build and runtime pack for linux-bionic (#86781)
Michal Strehovský [Sat, 27 May 2023 07:38:18 +0000 (16:38 +0900)]
Add NativeAOT build and runtime pack for linux-bionic (#86781)

Build and runtime pack for linux-bionic (Android without the Java part).

I tried not to regress the existing CoreCLR Android build that is based on a crossrootfs (#56622) - the if's basically deal with that. Note that it's likely broken anyway (#66562).

17 months agoUse `u8` literals in `ManagedTextSection`. (#86657)
Theodore Tsirpanis [Sat, 27 May 2023 00:14:23 +0000 (03:14 +0300)]
Use `u8` literals in `ManagedTextSection`. (#86657)

17 months agoCI: Fix running the workaround for `NuGet-Migrations` issue (#85692)
Ankit Jain [Fri, 26 May 2023 23:50:09 +0000 (19:50 -0400)]
CI: Fix running the workaround for `NuGet-Migrations` issue (#85692)

* CI: Fix running the workaround for `NuGet-Migrations` issue

The workaround adds:

`(CONSOLE_TEMP_DIR=&quot;%24(mktemp -d)&quot; %3B &quot;$DOTNET_ROOT/dotnet&quot; new console -o &quot;$CONSOLE_TEMP_DIR&quot; %3B rm -rf &quot;$CONSOLE_TEMP_DIR&quot;) || true`

which uses `$DOTNET_ROOT/dotnet`. But this is set for `HelixPreCommand`
which runs *before* `DOTNET_ROOT` is set.

Instead, use `HelixCommandPrefixItem`.

* rename HelixCommandPrefixItem to HelixCommandPrefixEnvVarItem

* Fix in helixpublishwitharcade.proj also

* Add the workaround for legacy payloads also, which includes wasm runtime tests

* fix typo

17 months agoAddress Metrics APIs issues (#86740)
Tarek Mahmoud Sayed [Fri, 26 May 2023 23:34:55 +0000 (16:34 -0700)]
Address Metrics APIs issues (#86740)

17 months agoAdd support for types with parameterized ctors to config binder gen (#86365)
Layomi Akinrinade [Fri, 26 May 2023 21:58:23 +0000 (14:58 -0700)]
Add support for types with parameterized ctors to config binder gen (#86365)

* Add support for types with parameterized ctors to config binder gen

* Ensure param-prop binding & exception behavior match reflection implementation

* Fix ctor preference logic and enable passing test

17 months agoChange our Android build and test legs to use the new CBL-Mariner-based images. ...
Jeremy Koritzinsky [Fri, 26 May 2023 21:38:17 +0000 (14:38 -0700)]
Change our Android build and test legs to use the new CBL-Mariner-based images. (#86776)

17 months ago[ComInterfaceGenerator] Fix StringMarshalling error message and actually copy attribu...
Jackson Schuster [Fri, 26 May 2023 20:52:09 +0000 (13:52 -0700)]
[ComInterfaceGenerator] Fix StringMarshalling error message and actually copy attributes from methods to shadows (#86731)

Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
17 months agoJIT: Pick some low-hanging fruit in physical promotion throughput (#86792)
Jakob Botsch Nielsen [Fri, 26 May 2023 19:39:48 +0000 (21:39 +0200)]
JIT: Pick some low-hanging fruit in physical promotion throughput (#86792)

* Skip any IR traversals entirely if there are no candidates locals for
  physical promotion
* During accounting, do a quick pre-check for candidates in each
  statement using the linked locals list, before doing the tree walk.

Result:
```
Collection                                       PDIFF
aspnet.run.windows.x64.checked.mch              -0.59%
benchmarks.run.windows.x64.checked.mch          -0.65%
benchmarks.run_pgo.windows.x64.checked.mch      -0.65%
benchmarks.run_tiered.windows.x64.checked.mch   -0.65%
coreclr_tests.run.windows.x64.checked.mch       -0.66%
libraries.crossgen2.windows.x64.checked.mch     -0.61%
libraries.pmi.windows.x64.checked.mch           -0.63%
libraries_tests.pmi.windows.x64.checked.mch     -0.68%
```

17 months agoJIT: Have physical promotion insert read backs before possible implicit control flow...
Jakob Botsch Nielsen [Fri, 26 May 2023 19:15:33 +0000 (21:15 +0200)]
JIT: Have physical promotion insert read backs before possible implicit control flow (#86706)

Physical promotion relies on being able to read back any promoted field
that is fresher in its struct local before control flows to any
successor block. This was failing to take implicit control flow into
account.

Fix #86498

17 months agoJIT: Allow RBO for known relops even without a dominator (#86774)
Jakob Botsch Nielsen [Fri, 26 May 2023 19:12:09 +0000 (21:12 +0200)]
JIT: Allow RBO for known relops even without a dominator (#86774)

Delay the check for whether there is a dominator to the case where we're
actually going to try to infer from it.

17 months agoGuarded devirtualization: multiple type checks (#86551)
Egor Bogatov [Fri, 26 May 2023 18:47:12 +0000 (20:47 +0200)]
Guarded devirtualization: multiple type checks (#86551)

Co-authored-by: Andy Ayers <andya@microsoft.com>