dotnet-maestro[bot] [Fri, 29 Oct 2021 17:10:02 +0000 (19:10 +0200)]
[main] Update dependencies from dnceng/internal/dotnet-optimization dotnet/arcade dotnet/roslyn-analyzers (#61004)
* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build
20211028.1
optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
From Version 1.0.0-prerelease.21527.1 -> To Version 1.0.0-prerelease.21528.1
* Update dependencies from https://github.com/dotnet/arcade build
20211028.3
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
From Version 7.0.0-beta.21527.5 -> To Version 7.0.0-beta.21528.3
* Update dependencies from https://github.com/dotnet/roslyn-analyzers build
20211028.1
Microsoft.CodeAnalysis.NetAnalyzers
From Version 7.0.0-preview1.21527.1 -> To Version 7.0.0-preview1.21528.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Alexander Köplinger [Fri, 29 Oct 2021 17:09:32 +0000 (19:09 +0200)]
Use Ubuntu 18.04 1ES pools and dotnet-buildtools-prereq docker images for enterprise linux pipeline (#61001)
Ubuntu 16.04 is no longer available on Azure Pipelines, move to 18.04 on 1ES pool and the Docker images from dotnet-buildtools-prereq.
Also add a workaround for https://github.com/dotnet/runtime/issues/34649 which we hit during the build.
dotnet-maestro[bot] [Fri, 29 Oct 2021 14:48:22 +0000 (16:48 +0200)]
Update dependencies from https://github.com/dotnet/linker build
20211028.2 (#61005)
Microsoft.NET.ILLink.Tasks
From Version 7.0.100-1.21525.2 -> To Version 7.0.100-1.21528.2
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Pavel Savara [Fri, 29 Oct 2021 13:10:53 +0000 (15:10 +0200)]
[wasm] preparation for module encapsulation (#60928)
- simplified fetch and script loading logic/polyfil
- clarified runtime-test.js based on Daniel's draft.
- extracted mono_wasm_invoke_js and mono_wasm_compile_function out of C macro into proper .ts function
- wrapped access to API via globalThis with warning on first use
- added cwraps.mono_wasm_add_assembly and cwraps.mono_wasm_load_runtime which Blazor uses
- fixed closures for generated functions, so that they don't use global Module reference
- mono_wasm_invoke_js now uses new Function instead of eval()
- removed deprecated Blazor functions
- fixed lint issues
Co-authored-by: Daniel Genkin <genkind@gmail.com>
Egor Bogatov [Fri, 29 Oct 2021 11:47:52 +0000 (14:47 +0300)]
JIT: "Scaled" addressing mode on ARM (#60808)
Ulrich Weigand [Fri, 29 Oct 2021 10:41:48 +0000 (12:41 +0200)]
Disable DllImportGenerator tests on s390x (#60833)
* Runtime tests fail since App.Host package is not available
* Unit tests fail since NuGet.Packaging 5.6.0 signature verification
does not work on big-endian systems (needs >= 5.11.0)
dotnet-maestro[bot] [Fri, 29 Oct 2021 09:23:44 +0000 (11:23 +0200)]
[main] Update dependencies from dotnet/linker (#60619)
* Update dependencies from https://github.com/dotnet/linker build
20211018.3
Microsoft.NET.ILLink.Tasks
From Version 7.0.100-1.21513.1 -> To Version 7.0.100-1.21518.3
* Update dependencies from https://github.com/dotnet/linker build
20211019.3
Microsoft.NET.ILLink.Tasks
From Version 7.0.100-1.21513.1 -> To Version 7.0.100-1.21519.3
* Update dependencies from https://github.com/dotnet/linker build
20211020.2
Microsoft.NET.ILLink.Tasks
From Version 7.0.100-1.21513.1 -> To Version 7.0.100-1.21520.2
* Update dependencies from https://github.com/dotnet/linker build
20211025.2
Microsoft.NET.ILLink.Tasks
From Version 7.0.100-1.21513.1 -> To Version 7.0.100-1.21525.2
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Mikhail Pilin [Fri, 29 Oct 2021 03:18:14 +0000 (05:18 +0200)]
Support ARM64/ARM environment variables for #53122. (#60916)
Andy Ayers [Fri, 29 Oct 2021 02:25:27 +0000 (19:25 -0700)]
JIT: Improve VN for (EQ/NE (RELOP ...), 0/1) (#60943)
Try and re-express these VNs in terms of the RELOP or its complement.
Elinor Fung [Fri, 29 Oct 2021 01:22:32 +0000 (18:22 -0700)]
Mark containing type for generated stub functions as unsafe (#60979)
Larry Ewing [Fri, 29 Oct 2021 00:30:29 +0000 (19:30 -0500)]
[mono][workload] Work around a msbuild bug in MatchOnMetadata (#60989)
* Work around a msbuild bug in MatchOnMetadata
* Reenable workload build tests and bump to a 7.0.100 sdk version
Jeremy Koritzinsky [Thu, 28 Oct 2021 23:13:39 +0000 (16:13 -0700)]
Build the native prereqs in the build-jit-job.yml (#60981)
Buyaa Namnan [Thu, 28 Oct 2021 22:36:06 +0000 (15:36 -0700)]
Fix Equals overload logic for some methods of an array created using MLC (#60894)
Adeel Mujahid [Thu, 28 Oct 2021 22:23:58 +0000 (01:23 +0300)]
Account for versioned VS in up-to-date check (#60970)
Co-authored-by: Juan Hoyos <juan.s.hoyos@outlook.com>
Andy Ayers [Thu, 28 Oct 2021 21:59:37 +0000 (14:59 -0700)]
Add historical note on optimizing aspects of Value Numbering (#60985)
Jeremy Koritzinsky [Thu, 28 Oct 2021 20:55:06 +0000 (13:55 -0700)]
Fix more alloc-dealloc mismatches (#60691)
Andy Ayers [Thu, 28 Oct 2021 20:02:36 +0000 (13:02 -0700)]
Script to collect asp.net benchmark method contexts for SPMI (#60953)
Steve Molloy [Thu, 28 Oct 2021 19:41:26 +0000 (12:41 -0700)]
Make noise if trying to use the cache after it's been disposed. (#57557)
Koundinya Veluri [Thu, 28 Oct 2021 18:35:58 +0000 (11:35 -0700)]
Fix a thread local test (#60892)
- Updated conditional fact to require precise GC for the test
- Fixes https://github.com/dotnet/runtime/issues/57102
Koundinya Veluri [Thu, 28 Oct 2021 18:33:56 +0000 (11:33 -0700)]
Remove some redundant threading tests, move some cases to libraries tests (#59073)
* Remove some redundant threading tests, move some cases to libraries tests
- Went through some of the tests. Most of them appeared to be redundant. Added a few missing tests and ported a few tests from CoreRT.
- Closes https://github.com/dotnet/runtime/issues/6372, the test is being removed
Parker Bibus [Thu, 28 Oct 2021 18:09:15 +0000 (13:09 -0500)]
Mitigate NU1103 Error showing up during Maui Builds (#60946)
* Test allowing 'unstable' packages since maui is not finding stable packages for some of the extension packages.
Jeremy Koritzinsky [Thu, 28 Oct 2021 17:51:55 +0000 (10:51 -0700)]
Explicitly emit a diagnostic for ref returns in GeneratedDllImport stubs. (#60720)
dotnet-maestro[bot] [Thu, 28 Oct 2021 17:34:55 +0000 (12:34 -0500)]
[main] Update dependencies from dnceng/internal/dotnet-optimization dotnet/xharness dotnet/arcade dotnet/emsdk dotnet/roslyn-analyzers dotnet/msquic (#60954)
* Update dependencies from https://github.com/dotnet/emsdk build
20211027.1
Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
From Version 7.0.0-alpha.1.21520.2 -> To Version 7.0.0-alpha.1.21527.1
* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build
20211027.1
optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
From Version 1.0.0-prerelease.21525.1 -> To Version 1.0.0-prerelease.21527.1
* Update dependencies from https://github.com/dotnet/xharness build
20211027.2
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 1.0.0-prerelease.21527.1 -> To Version 1.0.0-prerelease.21527.2
* Update dependencies from https://github.com/dotnet/arcade build
20211027.5
Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.GenFacades , Microsoft.DotNet.GenAPI , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SharedFramework.Sdk
From Version 7.0.0-beta.21527.1 -> To Version 7.0.0-beta.21527.5
* Update dependencies from https://github.com/dotnet/roslyn-analyzers build
20211027.1
Microsoft.CodeAnalysis.NetAnalyzers
From Version 7.0.0-preview1.21526.1 -> To Version 7.0.0-preview1.21527.1
* Update dependencies from https://github.com/dotnet/msquic build
20211027.1
System.Net.MsQuic.Transport
From Version 6.0.0-preview.7.21526.1 -> To Version 6.0.0-preview.7.21527.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Bruce Forstall [Thu, 28 Oct 2021 17:14:51 +0000 (10:14 -0700)]
Fix MD array helper intrinsics for complex `this` pointers (#60958)
The implementation of the MD array helpers didn't consider the possibility
of the array object being something complex, like a function call return value.
Also, add a test case covering many cases of invoking the MD array helpers.
Fixes #60957
Badre BSAILA [Thu, 28 Oct 2021 16:25:04 +0000 (18:25 +0200)]
Make CryptQueryObject call compliant to interop guidelines
Steve Harter [Thu, 28 Oct 2021 16:23:59 +0000 (11:23 -0500)]
Update JsonNode doc (#60925)
Katelyn Gadd [Thu, 28 Oct 2021 10:32:31 +0000 (03:32 -0700)]
Extract various changes from the invoke and custom marshaler PRs (#60877)
Various code cleanup and refactorings for the wasm bindings
Peter Sollich [Thu, 28 Oct 2021 08:04:49 +0000 (10:04 +0200)]
Make memory mapped stress log work for child processes. (#60828)
Make memory mapped stress log work for child processes.
There are two kinds of changes:
- in case the stresslog file cannot be created, fall back to the in-memory implementation
- support "{pid}" embedded in the file name - this will be replaced by the PID of the current process.
This enables two modes of operation regarding child processes:
- if the stresslog filename given does not contain "{pid}", the parent process will create the file, but the child process will use the in-memory stresslog. useful when we are not interested in the child process.
- if the stresslog filename given does contain "{pid}", both parent and child will get their own stresslog file. useful when we are in fact interested in both.
SingleAccretion [Thu, 28 Oct 2021 03:46:21 +0000 (06:46 +0300)]
Fix build-native.cmd for direct use (#60926)
The parsing loop shifts away the parameters, making use of %~dp0 after
it incorrect. Fix that by caching the relevant information.
Anthony Shaw [Thu, 28 Oct 2021 02:29:43 +0000 (13:29 +1100)]
Fix some typos in corhdr.h (#60895)
* Fix some typos in corhdr.h
* Remove "well known" namespace/attributes that aren't used in the CoreCLR libraries
Larry Ewing [Thu, 28 Oct 2021 01:38:44 +0000 (20:38 -0500)]
[mono][workloads] Workload 7.0.100 (#60893)
* Update some version bits
* Substitute NetCoreAppCurrent value don't expand it
* Update the emsdk version to 7.0.x
* Disable Wasm.Build.Tests temporarily
Sergei Papikian [Thu, 28 Oct 2021 01:03:50 +0000 (04:03 +0300)]
IFormatProvider getter refactor (#60815)
* refactor: IFormatProvider getter
* refactor: inline
Tomas Weinfurt [Thu, 28 Oct 2021 00:55:49 +0000 (17:55 -0700)]
always populate TargetHostName on SslStream (#60589)
* always populte TargetHostName on SslStream
* update check for server
Elinor Fung [Thu, 28 Oct 2021 00:42:04 +0000 (17:42 -0700)]
[DllImportGenerator] Don't flag methods that already have GeneratedDllImport (#60929)
Andy Ayers [Thu, 28 Oct 2021 00:41:45 +0000 (17:41 -0700)]
JIT: refactor jump threading to prepare for allowing side effects (#60884)
Update jump threading so that whenever possible it re-uses the original
block, rather than bypassing it. This lays the groundwork for a subsequent
change that will allow jump threading when the block with the threadable
jump has side effects.
Also handle the case where we have both a fall through pred and an ambiguous
pred, by treating the fall through pred as ambiguous.
Elinor Fung [Thu, 28 Oct 2021 00:39:23 +0000 (17:39 -0700)]
Make PreferredAttributeOrder test ConditionalTheory (#60940)
Theodore Tsirpanis [Wed, 27 Oct 2021 23:36:55 +0000 (02:36 +0300)]
Clean-up crossgen's NuGet dependencies et. al. (#59914)
* Remove two redundant package dependencies and update another one.
They were dragging along lots of packages, cluttering the dependency graph.
* Optimize crossgen's Program.IsValidPublicKey to use spans.
* Bring BinaryReader back in IsValidPublicKey.
And expedite a condition check that does not involve BinaryReader.
David Wrighton [Wed, 27 Oct 2021 23:25:20 +0000 (16:25 -0700)]
Fix issue where sometimes we would find the same module twice and cause the dotnet-pgo tool to fail (#60874)
Andy Ayers [Wed, 27 Oct 2021 22:20:22 +0000 (15:20 -0700)]
Add 2009 Jit Architecture Plan (excerpts) (#60939)
We plan to gradually open up portions of historical documents that seem
relevant to our current work on the JIT.
This PR includes a writeup that is the inspiration for the current SSA
and Value Numbering designs.
Badre BSAILA [Wed, 27 Oct 2021 21:50:53 +0000 (23:50 +0200)]
DateTimeMaskTest depends on the region configuration of the machine (#60840)
Eric Erhardt [Wed, 27 Oct 2021 19:45:08 +0000 (14:45 -0500)]
Update Codespaces configuration (#60900)
- mark onCreateCommand.sh as executable
- add more regions so users outside of West US can take advantage of prebuilt codespaces
- use v1-stable version, as recommended by docs
- use faster machines for dev productivity
Viktor Hofer [Wed, 27 Oct 2021 18:03:14 +0000 (20:03 +0200)]
Add analyzer assemblies to code coverage (#60859)
* Add analyzer assemblies to code coverage
Instrument analyzer assemblies as well when measuring code coverage.
Filter out the ones which aren't referenced via the P2P protocol.
* Update coverage.targets
Přemek Vysoký [Wed, 27 Oct 2021 17:46:25 +0000 (19:46 +0200)]
Detect more XHarness exit codes, lower installation timeout (#60908)
Jeremy Koritzinsky [Wed, 27 Oct 2021 17:03:34 +0000 (10:03 -0700)]
Move optdata and version file generation up to MSBuild from build-runtime (#58674)
* Move optdata and version file generation from the native build scripts up into the managed scripts. The native build scripts will now by default copy a fallback version file in place if the version files do not exist and will disable PGO if no pgo file path is passed in to the build-runtime scripts.
This removes all cases of build-runtime calling into MSBuild.
* Update CI to use the new prereqs model.
* Remove some old MSBuild arg pass-through that's no longer needed as build-runtime no longer calls into any MSBuild processes.
* Apply suggestions from code review
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Move some targets around based on feedback.
* Output version files in the artifacts/obj dir so they can be easily shared.
* Move native pgo into a targets file instead of being a separate project to be more static-graph friendly.
* Fix subsets.
* Share version file path by default
* Fix VER_FILEDESCRIPTION_STR
* Fix version fallback copies.
* Fix include path for the version headers.
* Update src/coreclr/dlls/mscordac/CMakeLists.txt
Co-authored-by: Juan Hoyos <19413848+hoyosjs@users.noreply.github.com>
* Enable easily sharing the fallback version files between all components of the repo.
* Remove some now-unused command-line options from our build scripts.
* Bump importance output to pass the pgo path between steps.
* Add eval statement to run copy_version_files script
* Rename some files and and standardize on a _version.c file name for Linux.
* Remove temp proj ref.
* Fix permissions
* Reference targets to produce version file in libraries native build.
* Fix CoreCLR build breaks
* Generate the version files for Mono
* include configurepaths.cmake on the Windows CoreFX build.
* Restore mono.proj when building it through monoaotcross.proj.
* Update copy script to work on macos.
* Make sure mono pulls in the shared version files.
* Add artifcats/obj dir as include dir for CoreCLR diagonstic components included in Mono
* Add artifacts/obj include for the whole mono build.
* Update CMakeLists.txt
* Fix NativeVersion.rc path on Windows.
* Fix linux version parsing to point at the right file.
* Fix mono version parsing (apparently the quotes make a difference here)
* Update src/coreclr/build-runtime.sh
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
* Update eng/native/version/copy_version_files.sh
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
* Update copy_version_files.sh to insert the current commit hash into _version.c.
* Apply suggestions from code review
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
* Update the _version.c writing script to only update the placeholder version file if it actually is a placeholder (not a real generated file).
* Generate the version files for wasm/browser as well.
* Fix Mono WASM cross build.
* Update eng/nativepgo.targets
Co-authored-by: Juan Hoyos <19413848+hoyosjs@users.noreply.github.com>
* Fix comparison for NativeOptimizationDataSupported.
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Juan Hoyos <19413848+hoyosjs@users.noreply.github.com>
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Zoltan Varga [Wed, 27 Oct 2021 16:54:00 +0000 (18:54 +0200)]
[mono][jit] Add a micro optimization to fill_runtime_generic_context (). (#60839)
Also increase the initial size of the class rgctx to 32 from 16, the first
level table frequently overflows, and the entries in the second level table
are slower to access, esp. from llvmonly code which contains an inline
fetch for the first level table.
Stephen Toub [Wed, 27 Oct 2021 16:44:08 +0000 (12:44 -0400)]
Use IndexOf(..., span) in Regex FindFirstChar (#60888)
* Use IndexOf(..., span) in Regex FindFirstChar
We currently use Boyer-Moore to find a multi-character prefix in FindFirstChar. That's good, and when it was originally added it was very likely better than IndexOf(..., string), but since then the latter has been vectorized and its throughput has improved significantly (we also plan to improve it further). While there are situations where Boyer-Moore does better, for general text searching and typical cases, IndexOf wins. So, this commit adds the ability for FindFirstChar to use IndexOf to search for a span, and prefers that over Boyer-Moore when it's applicable, namely when we're case-sensitive and left-to-right processing.
* Centralize check for whether IndexOf is supported
Kunal Pathak [Wed, 27 Oct 2021 16:43:29 +0000 (09:43 -0700)]
Stress: Do not create new IG for align instruction (#60901)
Kunal Pathak [Wed, 27 Oct 2021 16:12:44 +0000 (09:12 -0700)]
Change the queue to Windows.10.Amd64.X86.Rt (#60921)
dotnet-maestro[bot] [Wed, 27 Oct 2021 15:26:43 +0000 (17:26 +0200)]
[main] Update dependencies from 7 repositories (#60855)
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Premek Vysoky <premek.vysoky@microsoft.com>
Krzysztof Wicher [Wed, 27 Oct 2021 14:33:25 +0000 (16:33 +0200)]
disable DllImportGenerator.UnitTests.ConvertToGeneratedDllImportAnalyzerTests.TypeRequiresMarshalling_ReportsDiagnostic (#60911)
Mark Lopez [Wed, 27 Oct 2021 10:48:46 +0000 (05:48 -0500)]
Corrected link to .NET Foundation discussions, normalized links to use https. (#60867)
SingleAccretion [Wed, 27 Oct 2021 10:20:45 +0000 (13:20 +0300)]
Properly type primary selectors in `fgMemoryVNForLoopSideEffects` (#60505)
* Proper types in fgMemoryVNForLoopSideEffects
To simplify our model for what types the memory maps should
have and, in the future, enable asserts acting on that.
* Switch to only typing statics
As these are the only maps that represent values
representable and useful in the Jit's type system.
Elinor Fung [Wed, 27 Oct 2021 03:28:48 +0000 (20:28 -0700)]
Add configureonly option to host native build (#60889)
DeepakRajendrakumaran [Wed, 27 Oct 2021 03:09:36 +0000 (20:09 -0700)]
XARCH: Eliminate redundant mov to/from mem. (#59780)
* XARCH: Eliminate redundant mov to/from mem.
* Review changes:
1. Changing name to IsRedundantStackMov.
2. Add assert for format.
3. Move common code to helper.
* Adding check to skip optimization when dealing with movs creating GC Live objs.
John Salem [Wed, 27 Oct 2021 00:10:18 +0000 (17:10 -0700)]
Properly use result value for dump IPC cmd (#60726)
Adeel Mujahid [Tue, 26 Oct 2021 23:37:10 +0000 (02:37 +0300)]
Fix libs.tests build with gcc (#60757)
Jan Kotas [Tue, 26 Oct 2021 22:04:24 +0000 (15:04 -0700)]
Preserve last error in call-counting stubs (#60886)
Fixes #60819
Badre BSAILA [Tue, 26 Oct 2021 21:03:13 +0000 (23:03 +0200)]
SizeConst of MarshalAs(ByValTStr) loaded by MetadataLoadContext always returns zero (#60714)
* SizeConst of MarshalAs(ByValTStr) loaded by MetadataLoadContext always returns zero
* add separate case for UnmanagedType.ByValTStr and reuse existing test
Parker Bibus [Tue, 26 Oct 2021 20:10:47 +0000 (15:10 -0500)]
Disable SOD Pizza AOT Blazor test. Tracked by dotnet/performance/#2092 (#60876)
Viktor Hofer [Tue, 26 Oct 2021 19:23:54 +0000 (21:23 +0200)]
Update slngen and solution files (#60871)
Update slngen tooling to latest stable version and solution files since
a lot changed since the last time they were updated:
- NET7 (removal of older TFMs)
- Source Generators
Viktor Hofer [Tue, 26 Oct 2021 17:18:49 +0000 (19:18 +0200)]
Fix wrong property use in resolveContract.targets (#60868)
Helps with https://github.com/dotnet/runtime/issues/59390
Bruce Forstall [Tue, 26 Oct 2021 16:38:10 +0000 (09:38 -0700)]
Add inline target (callsite/callee) to inline output messages (#60661)
e.g.,
```
Inlines into
06000005 [via ExtendedDefaultPolicy] MainApp:Main():int
[1 IL=0005 TR=000008
06000004] [callee: below ALWAYS_INLINE size] MainApp:TestNewInline_A_Inline(int):int
[2 IL=0003 TR=000032
06000003] [call site: profitable inline] MainApp:TestNewInline_B_Inline(int):int
[3 IL=0003 TR=000045
06000002] [call site: profitable inline] MainApp:TestNewInline_C_Inline(int):int
[4 IL=0003 TR=000058
06000001] [callee: below ALWAYS_INLINE size] MainApp:TestNewInline_D_Inline(int):int
[0 IL=0004 TR=000075
06000095] [FAILED: callee: noinline per IL/cached result] System.Console:WriteLine(int)
[0 IL=0011 TR=000066
06000095] [FAILED: callee: noinline per IL/cached result] System.Console:WriteLine(int)
[0 IL=0011 TR=000053
06000095] [FAILED: callee: noinline per IL/cached result] System.Console:WriteLine(int)
[0 IL=0009 TR=000038
06000095] [FAILED: callee: noinline per IL/cached result] System.Console:WriteLine(int)
[0 IL=0032 TR=000025
0600009A] [FAILED: call site: within catch region] System.Console:WriteLine(System.String)
[0 IL=0027 TR=000024
06000454] [FAILED: call site: target not direct] System.Exception:get_Message():System.String:this
```
John Salem [Tue, 26 Oct 2021 16:37:55 +0000 (09:37 -0700)]
Don't cache commandline in coreclr diagnostics server (#60275)
Elinor Fung [Tue, 26 Oct 2021 15:16:32 +0000 (08:16 -0700)]
[DllImportGenerator] Stop flagging methods with well-known unsupported types for conversion (#60841)
* Make analyzer stop flagging methods with well-known unsupported types for conversion
* Make fixer put attribute arguments in preferred order
Santiago Fernandez Madero [Tue, 26 Oct 2021 14:01:29 +0000 (07:01 -0700)]
Update compatibility package and unpin compiler version (#60847)
* Update compatibility package and unpin compiler version
Tom Deseyn [Tue, 26 Oct 2021 12:42:57 +0000 (14:42 +0200)]
Process: throw ArgumentNullException when ArgumentList contains a null. (#59562)
* Process.Start: validate ArgumentList doesn't contain null.
* Add a custom message.
* PR feedback
Stephen Toub [Tue, 26 Oct 2021 11:11:44 +0000 (07:11 -0400)]
Fix DGML debug tests for Regex NonBacktracking (#60853)
Jakob Botsch Nielsen [Tue, 26 Oct 2021 09:02:55 +0000 (11:02 +0200)]
Use preferred region from PAL for JIT reloc hints (#60747)
We currently have two schemes that try to ensure jitted code and statics
end up close to each other and close to coreclr. In Windows, we have
USE_UPPER_ADDRESS that lazily will reserve memory for loader heaps that
is close to coreclr. For PAL, we eagerly reserve a large chunk of memory
nearby during start up. However for PAL we were not using this region to
report back to the JIT that addresses in this range can use rip-relative
addressing. Add this support.
I have also cleaned up some of the code around USE_UPPER_ADDRESS: I have
renamed it to USE_LAZY_PREFERRED_RANGE and removed some dead code.
dotnet-maestro[bot] [Tue, 26 Oct 2021 08:52:01 +0000 (10:52 +0200)]
[main] Update dependencies from dotnet/runtime dnceng/internal/dotnet-optimization dotnet/arcade dotnet/roslyn-analyzers dotnet/msquic dotnet/xharness (#60767)
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Adeel Mujahid [Tue, 26 Oct 2021 07:05:43 +0000 (10:05 +0300)]
Use SDK-selected runtime in IL SDK (#60400)
* Use SDK-selected runtime in IL SDK
* Disable ProduceReferenceAssembly in IL SDK
* Reorder to Import before the override
Andy Gocke [Tue, 26 Oct 2021 05:00:31 +0000 (22:00 -0700)]
Up retry for ETXTBSY (#60741)
* Up retry for ETXTBSY
Still seeing occasional failure in Alpine
(https://dev.azure.com/dnceng/public/_build/results?buildId=1434759) so
raising the retry time.
* Linearly scale wait time
Elinor Fung [Tue, 26 Oct 2021 03:15:01 +0000 (20:15 -0700)]
[DllImportGenerator] Skip unit tests that hit exceptions due to roslyn-sdk#590 (#60848)
Aleksey Kliger (λgeek) [Tue, 26 Oct 2021 02:39:13 +0000 (22:39 -0400)]
[metadata] Break up mono_metadata_parse_type_internal (#60725)
* [metadata] Break up mono_metadata_parse_type_internal
Separate the type allocation and cleanup logic from the main decoding logic and
from the cached instance lookup.
Also free the allocated memory, if any, in case of decoding errors.
Bruce Forstall [Tue, 26 Oct 2021 01:42:03 +0000 (18:42 -0700)]
Implement System.Array functions used by MD arrays as intrinsics (#60816)
Specifically, implement:
- GetLength
- GetLowerBound
- GetUpperBound
These are implemented as intrinsics for MD arrays only, when given
a constant dimension argument that is less than the array rank (that is,
in range).
Thus, exceptional cases fall back to the IL code which throws an exception
as appropriate.
Example x64 codegen for 2-D `int[,]` array (instead of call or inlined call):
GetLength(1):
```
mov r9d, dword ptr [rcx+20]
```
GetLowerBound(1):
```
mov r9d, dword ptr [rcx+28]
```
GetUpperBound(1):
```
mov r9d, dword ptr [rcx+28]
mov r10d, dword ptr [rcx+20]
lea r10d, [r9+r10-1]
```
Stephen Toub [Tue, 26 Oct 2021 00:49:58 +0000 (20:49 -0400)]
Refactor Regex FindFirstChar (#60822)
* Refactor Regexcompiler/Emitter.FindFirstChar
These have become unwieldy, with multiple large code blocks for finding the first character at which to perform a full match, and we'll be adding more soon. This simply splits each of those out into their own method. No functional changes.
* Use switch in RegexInterpreter.FindFirstChar
We don't need to re-evaluate which mechanism to use on every FindFirstChar call... we can do so once in the ctor and then just switch on that in the actual FindFirstChar call.
Viktor Hofer [Mon, 25 Oct 2021 20:49:36 +0000 (22:49 +0200)]
Use SDK's .NETFramework refpack version (#60555)
Use the MicrosoftNETFrameworkReferenceAssembliesLatestPackageVersion property which is exposed by the SDK instead of the one exposed by Arcade to make sure that we are always targeting the latest version.
Andy Gocke [Mon, 25 Oct 2021 20:06:50 +0000 (13:06 -0700)]
Skip more failing DllImport tests (#60836)
Follow-up on https://github.com/dotnet/runtime/pull/60773
Andy Ayers [Mon, 25 Oct 2021 18:51:36 +0000 (11:51 -0700)]
Initial support for partially jitted methods (#60791)
Introduce a new form of patchpoint for rarely-executed blocks in a method
(typically, blocks with throws). Instead of jitting the code in those blocks,
add code to call a new patchpoint helper (similar to the existing one) which
finds or creates the jitted code for the method beyond this point, and then
transitions control to that code.
Suppressing codegen for exception throws in this way gives similar benefits
to the throw helper transformation, without needing to modify source. This
currently works only in Tier0, but in principle could be extended to handle
optimized code.
Kunal Pathak [Mon, 25 Oct 2021 17:20:19 +0000 (10:20 -0700)]
fix the summarize bug (#60834)
Viktor Hofer [Mon, 25 Oct 2021 17:00:31 +0000 (19:00 +0200)]
Don't trim PNSE assemblies and enable trimming for inbox assets on all .NETCoreApp versions (#58345)
* Don't trim PNSE assemblies
Don't trim platform not supported assemblies, since even in "library" trimming mode, the trimmer might remove some non-public members if they are not called within the assembly. In the case of PNSE assemblies this is most likely always the case.
Egor Bogatov [Mon, 25 Oct 2021 15:12:03 +0000 (18:12 +0300)]
Print "callsites by likely classes" chart in 'dotnet-pgo dump' command (#59306)
Paul Biggar [Mon, 25 Oct 2021 15:00:45 +0000 (11:00 -0400)]
Swap using the provided indexes (#55331)
SwapElements is passed two indexes, however, it ignored the second index
and instead used `index + 1`. It just so happened that the caller used
`index + 1` as the second index, but that might not have been the case.
沈星繁 [Mon, 25 Oct 2021 11:21:25 +0000 (19:21 +0800)]
Add HttpClient.PatchAsJsonAsync() apis (#60672)
* feat: add PatchAsJsonAsync methods
* fix: add new api to ref file
* feat: support net46 and netstandard2.0
* refactor: use preprocesser directives to switch between different PatchAsync implementations
* test: validate http method also when validating request
* refactor: implmente extension methods for netstandard that match netcoreapp implmentations
* Update src/libraries/System.Net.Http.Json/src/System/Net/Http/Json/HttpClientJsonExtensions.Patch.cs
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
* refactor: split net standard PatchAsync implementation to another file
* docs: add xml docs for public PatchAsJsonAsync APIs
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
Zoltan Varga [Mon, 25 Oct 2021 08:56:41 +0000 (10:56 +0200)]
[mono][interp] Allow interp->jit transitions for generic methods. (#60461)
Zoltan Varga [Mon, 25 Oct 2021 08:56:20 +0000 (10:56 +0200)]
[mono][jit] Reorganize the creation of the initlocals bblock. (#60804)
This is needed because the gsharedvt init code was emitted into it,
and that code might contain branches in llvmonly mode, so
emit_rgctx_fetch_inline () could not be enabled for it. This
caused gsharedvt methods to always emit a slow jit icall in
the gsharedvt init code.
Bibletoon [Mon, 25 Oct 2021 06:15:40 +0000 (09:15 +0300)]
Add ObjectDisposedException.Throw for object instance and type (#58684)
Jan Kotas [Sun, 24 Oct 2021 22:23:42 +0000 (15:23 -0700)]
Integrate changes in shared files from feature/NativeAOT (#60811)
ebraminio [Sun, 24 Oct 2021 18:50:57 +0000 (22:20 +0330)]
Optimize PersianCalendar.AddMonths calculations (#60778)
Olli Saarikivi [Sun, 24 Oct 2021 16:04:01 +0000 (09:04 -0700)]
More stack overflow avoidance in regex NonBacktracking (#60786)
* Add stackoverflow avoidance to SymbolicRegexNode
Remove unused Restrict methods instead of adding avoidance.
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Add more stack overflow avoidance in regex
This follows a full audit of the NonBacktracking code.
* Apply suggestions from code review
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Jakob Botsch Nielsen [Sun, 24 Oct 2021 00:19:42 +0000 (02:19 +0200)]
Add a COMPlus variable to throw runtime exception on JIT asserts (#60631)
Add COMPlus_JitThrowOnAssertionFailure: if nonzero, the runtime will
throw an InvalidProgramException with the assertion message if a JIT
assert is hit during compilation. Previously this would bring down the
process. Use this from the Fuzzlyn pipeline scripts to reduce examples
that hit JIT asserts automatically, since this can now be done much more
efficiently.
Andy Ayers [Sat, 23 Oct 2021 16:09:24 +0000 (09:09 -0700)]
JIT: some enhancements to redundant branch opts (#60732)
Handle cases where the dominating compare is the reverse of the compare
we're trying to optimize. For example, if `(x > y)` dominates `(y <= x)`
we may be able to optimize the dominated compare.
Addresses aspects of #48115.
Jalitha [Sat, 23 Oct 2021 14:18:59 +0000 (01:18 +1100)]
Fix typo (#60797)
Fan Yang [Sat, 23 Oct 2021 11:18:06 +0000 (07:18 -0400)]
Use XHarnessAppBundleToTest to create helix work items when runtime tests run on iOSSimulator (#58870)
2709 runtime tests were enabled to run with iOSSimulator x64.
Co-authored-by: Přemek Vysoký <premek.vysoky@microsoft.com>
Clément Notin [Sat, 23 Oct 2021 10:44:43 +0000 (12:44 +0200)]
Fix typo in comment: NoPropogateInherit -> NoPropagateInherit (#60717)
Parker Bibus [Fri, 22 Oct 2021 22:55:43 +0000 (17:55 -0500)]
Maui File location and target runtime updates (#60784)
* Update the file location and android runtimes. The Maui android architecture targets are being updated to include all android targets.
* Updated the targets and props copy location.
* Add in the correct depends on for the maui build.
* The initial file move did not actually delete the folder being moved, delete it.
ebraminio [Fri, 22 Oct 2021 22:50:09 +0000 (02:20 +0330)]
Use Math.CopySign in CalendricalCalculationsHelper (#60776)
Robin Lindner [Fri, 22 Oct 2021 21:23:54 +0000 (23:23 +0200)]
API Implementation: Add Indexer to Vectors (#60517)
* Add indexer for Vector2
* Add indexer for Vector3
* Add indexer for Vector4
* Add indexer for Quaternion
* Add indexer for Matrix3x2
* Add indexer for Matrix4x4
* Add indexer for Vector64<T>, Vector128<T> and Vector256<T>
* Implement better codegen
* Replace switch-tree by if-else-construct and add add Debug.Assert call to indexer of Matrix3x2
* More performant indexer implementation for Vector64<T>
* Improve performance of Indexers for Vector64<T>, Vector128<T> and Vector256<T>
* Improve code readability
* Easier index implementation for Vector64<T>, Vector128<T> and Vector256<T>
* Implement slimmer index implementation for Matrix3x2<T> and Matrix4x4<T>
* Implement GetElement/SetElement on various types
* Usage of Vector2 instead of Vector4
* Implement GetElement/SetElement for Vector2 and Vector3
* Remove setters
* Made Count const in Vector2, Vector3 and Vector4
* Implement GetElement/WithElement Extensions for Quaternion, Vector2, Vector3 and Vector4
* Setter implementation for Matrix3x2 and Matrix4x4
* Fix Quaternion
* Clone vectors in WithElement of QuaternionExtensions, Vector2Extensions, Vector3Extensions, Vector4Extensions
* Make QuaternionExtensions, Vector2Extensions, Vector3Extensions and Vector4Extensions internal
* Replace Extension Methods with normal static methods in Quaternion, Vector2, Vector3 and Vector4
* Make WithElement public and SetElementUnsafe internal in Quaternion, Vector2, Vector3 and Vector4
* Add methods and indexers to references
* Fix Matrix3x2 and Matrix4x4
* Update that the setter of Quaternion, Vector2, Vector3 and Vector4 sets `this` to the result of WithElement
* Simplify SetElementUnsafe in Vector2, Vector3 and Vector4
* Simplify SetElementUnsafe in Quaternion
* Add test cases for Matrix3x2, Matrix4x4, Quaternion, Vector2, Vector3 and Vector4
* Add indexer to reference for Vector64<T>, Vector128<T> and Vector256<T>
* Fix solution file
* Make WithElement in Quaternion, Vector2, Vector3 and Vector4 internal
* Fix project file of System.Private.CoreLib.Shared
* Fix indentation in System.Numerics.Vectors reference
* Code improvements
* Fix solution file
* Remove unsafe from reference
* Add Tests for Vector64<T>, Vector128<T> and Vector256<T>
* Create Test project for System.Runtime.Intrinsics and move vector tests from System.Runtime to System.Runtime.Intrinsics
* Fix test cases
* recreate System.Runtime.sln
* Fix System.Runtime.sln and remove old Vector Tests
* Implement usage of ThrowHelper for Matrix3x2 and Matrix4x4
* Replace Assert.All over array by Assert.Equal in Vector128Tests
* Replace Assert.All over array by Assert.Equal in Vector256Tests
* Replace Assert.All over array by Assert.Equal in Vector64Tests
* Fix indexer tests for Vector64<T>
* Fix indexer tests for Vector128<T>
* Fix indexer tests for Vector256<T>
* Fix indexer of Matrix3x2
* Fix indexer of Matrix4x4
Ben Adams [Fri, 22 Oct 2021 21:17:10 +0000 (22:17 +0100)]
Improve IndexOfAny(byte,byte,byte) (#40894)
Co-authored-by: Jeff Handley <jeff.handley@microsoft.com>
Jeremy Koritzinsky [Fri, 22 Oct 2021 20:33:46 +0000 (13:33 -0700)]
Disable tests that are failing with JIT asserts on ARM64 (#60773)
Bruce Forstall [Fri, 22 Oct 2021 18:47:49 +0000 (11:47 -0700)]
Remove xunit-performance dependency in tests (#60711)
* Remove dependence on obsolete xunit-performance
We use BenchmarkDotNet in the dotnet/performance repo for
benchmarking now. These copies of the benchmarks are for
correctness testing, and for ease of debugging.
* Make benchmarks look more like the dotnet/performance versions