platform/upstream/dotnet/runtime.git
2 years agoLinker into runtime diff2 (#78049)
Tlakaelel Axayakatl Ceja [Wed, 9 Nov 2022 00:16:11 +0000 (16:16 -0800)]
Linker into runtime diff2 (#78049)

* Merge and remove common files
Remove arcade eng\common directory in src\tools\illink since now we will use the runtime arcade infra
Remove build.cmd/build.sh and lint.cmd/lint.sh in src\tools\illink directory since now they will execute via a subset
Remove/Merge common files from src\tools\illink root:
 - .gitattributes
 - .gitignore
 - .github
 - .gitmodules
 - after.illink.sln.targets
 - code_of_conduct.md
 - global.json
 - LICENSE.txt
 - NuGet.config
 - THIRD-PARTY-NOTICES.TXT
Remove/Merge common files from src\tools\illink\eng:
 - Build.props
 - Publishing.props
 - Signing.props
 - SourceBuild.props
 - SourceBuildPrebuiltBaseline.xml
 - Tools.props
 - Version.Details.xml
 - Versions.props

* Create subsets to be able to build illink
Create a variable for the tools folder in runtime
Add subsets tools.illink and tools.illinktests for building illink and unitest it
Add Microsoft.DotNet.Cecil dependencies to runtime and to illink projects
Some workarounds to be able to build illink
Delete some cecil information from the external folder since now its a package

* Refactorings to make test work
Test projects use to have relative paths based on the current working directory to know where to find stuff, now that the project is in a different place things are not found, this commit changes to instead use MSBuild variables to calculate where things are
Add the cecil package to tests
Change a cecil test that verify the official package name to only care about the important pieces

* Enable pipeline
Add a variable to recognize when illink contains a change, and set an exclusion of the src/tools/* for other repos
Reuse the dotnet-linker-tests pipeline file to also run illink unitests every time there are illink changes

* Fix Markdown lint

* Remove checked-in binaries

* Use nunit for linker tests and fix cecil version test

2 years agoMerge branch 'main' of /home/tlakollo/Consolidation/linker
dotnet-bot [Tue, 8 Nov 2022 15:41:04 +0000 (07:41 -0800)]
Merge branch 'main' of /home/tlakollo/Consolidation/linker

2 years agoMerge pull request dotnet/linker#3099 from dotnet/enable_codeql
Mitchell Hwang [Tue, 8 Nov 2022 15:27:21 +0000 (10:27 -0500)]
Merge pull request dotnet/linker#3099 from dotnet/enable_codeql

Enable CodeQL with TSA

Commit migrated from https://github.com/dotnet/linker/commit/3fd8e281bfdbdb35ab3d3aa301b9439dd8c0d4c4

2 years ago[mono] Added null-checks for LDFLDA on pointers. (#77827)
Jan Dupej [Tue, 8 Nov 2022 15:14:34 +0000 (16:14 +0100)]
[mono] Added null-checks for LDFLDA on pointers. (#77827)

* Added a null check for LDFLDA with pointers.

* Reenabled LDFLDA pointer null-check runtime test for mono.

* Added null check for LDFLDA in Mono interpreter.

* [mono][interp] LDFLDA fix for null pointers now keeps more optimizations intact.

2 years agoFix build break due to IDE0060 (#78025)
Stephen Toub [Tue, 8 Nov 2022 15:08:17 +0000 (10:08 -0500)]
Fix build break due to IDE0060 (#78025)

2 years agoFIx area path
Mitchell Hwang [Tue, 8 Nov 2022 15:02:05 +0000 (10:02 -0500)]
FIx area path

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Commit migrated from https://github.com/dotnet/linker/commit/01c5fa40575f9d9816680247414b4ed9b8c21fef

2 years agoFix typo in timeout. (#78011)
Jiri Cincura ↹ [Tue, 8 Nov 2022 14:28:51 +0000 (15:28 +0100)]
Fix typo in timeout. (#78011)

2 years ago[mono][wasm] Small cleanups (#77954)
Zoltan Varga [Tue, 8 Nov 2022 14:13:31 +0000 (09:13 -0500)]
[mono][wasm] Small cleanups (#77954)

* [mono][wasm] Pass -DEMSCRIPTEN_SYSTEM_PROCESSOR=wasm to cmake so Emscripten.cmake doesn't set CMAKE_SYSTEM_PROCESSOR to x86.

* [mono][wasm] Fix the hello world sample.

2 years agounify error handling for FileStream and Pipe Streams (#77543)
Adam Sitnik [Tue, 8 Nov 2022 14:12:52 +0000 (15:12 +0100)]
unify error handling for FileStream and Pipe Streams (#77543)

2 years agoRemove .NET 6 Console Key Parser (#77977)
Adam Sitnik [Tue, 8 Nov 2022 14:09:54 +0000 (15:09 +0100)]
Remove .NET 6 Console Key Parser (#77977)

2 years agoEnable IDE0060 (Remove unused parameter) analyzer (#72667)
Marek Safar [Tue, 8 Nov 2022 13:05:34 +0000 (14:05 +0100)]
Enable IDE0060 (Remove unused parameter) analyzer (#72667)

2 years ago[wasm] Add intrinsics for clz and ctz instructions (#77777)
Radek Doulik [Tue, 8 Nov 2022 11:25:18 +0000 (12:25 +0100)]
[wasm] Add intrinsics for clz and ctz instructions (#77777)

* [wasm] Add intrinsics for clz and ctz instructions

Add intrinsics for leading and trailing zero count for wasm.

Introduce new internal class WasmBase for non-SIMD wasm intrinsics.
These are always used in AOT build, unlike SIMD intrinsics, which are
disabled by default.

* Fix CI build

* Fix CI build again

* Review feedback

Refactor the code to avoid adding ifdefs

* Fix build

* Fix build

* Fix build

* Fix CI build

2 years agoJIT: Fix GenTreeCall::Equals for virtual vs static calls (#77981)
Jakob Botsch Nielsen [Tue, 8 Nov 2022 10:18:07 +0000 (11:18 +0100)]
JIT: Fix GenTreeCall::Equals for virtual vs static calls (#77981)

Fix #77710

2 years agoImplement Console.SetWindowSize() for linux (#75824)
Hyungju Lee [Tue, 8 Nov 2022 08:46:29 +0000 (17:46 +0900)]
Implement Console.SetWindowSize() for linux (#75824)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Michał Petryka <35800402+MichalPetryka@users.noreply.github.com>
Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
2 years agoOptimize (WasmRoot|WasmExternalRoot).clear (#77521)
Katelyn Gadd [Tue, 8 Nov 2022 08:45:44 +0000 (00:45 -0800)]
Optimize (WasmRoot|WasmExternalRoot).clear (#77521)

Optimize (WasmRoot|WasmExternalRoot).clear to not use a memory barrier when zeroing a root for improved interop perf

2 years ago[wasm] Update repository URL in package.json (#77937)
Marek Fišera [Tue, 8 Nov 2022 06:56:37 +0000 (07:56 +0100)]
[wasm] Update repository URL in package.json (#77937)

Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr>
2 years agoFix sprintf deprecation error with Xcode 14.1 (#77950)
Austin Wise [Tue, 8 Nov 2022 05:47:52 +0000 (21:47 -0800)]
Fix sprintf deprecation error with Xcode 14.1 (#77950)

* Fix sprintf deprecation error with Xcode 14.1

* Update src/tests/Common/Platform/platformdefines.cpp

Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
2 years agoAdd AVX-512 testing pipeline (#77930)
Bruce Forstall [Tue, 8 Nov 2022 02:29:58 +0000 (18:29 -0800)]
Add AVX-512 testing pipeline (#77930)

* Add AVX-512 testing pipeline

Introduce DOTNET_JitForceEVEXEncoding to force EVEX encoding when
possible. This will fail when not an an AVX-512 capable machine,
by design (to know we are properly testing on capable machines).

Current pipeline definition only runs coreclr tests with
JitForceEVEXEncoding set. Currently defined to automatically trigger when
one of the JIT files instrsxarch.h, emitxarch.cpp, or emitxarch.h are
changed, as it is expected these will be changed frequently as the AVX-512
feature is implemented. It is also expected this will be manually triggered
as appropriate. Eventually, this pipeline will be removed and tests folded
into the existing jitstress-isas-x86 pipeline.

* Formatting

* Disable Linux and OSX testing

Those OSes currently do not have AVX-512 capable machines in our test lab.

2 years agoFixes typo in TimerQueue.Portable.cs comment (#77997)
Kamron Batman [Tue, 8 Nov 2022 00:46:13 +0000 (16:46 -0800)]
Fixes typo in TimerQueue.Portable.cs comment (#77997)

Fixes a typo in a comment in TimerQueue.Portable.cs

2 years agoImprove coreclr test infra (#77929)
David Wrighton [Tue, 8 Nov 2022 00:19:53 +0000 (16:19 -0800)]
Improve coreclr test infra (#77929)

These fixes were built for PR #74886; however, as that PR is so utterly large and unreviewable, I've pulled out the test infra changes for separate review

Changes
- Increase the number of trampolines in the llvm aot compilation process to 20,000 from 10,000 (This avoids running out of them in some of the hardware intrinsics tests
- Add a concept of striping tests when running under GC stress
  - To use this new feature, specify <NumberOfStripesToUseInStress>N</NumberOfStripesToUseInStress> within the merged test assembly. If this value is set, then the tests within that merged test assembly will be run across N different work items instead of 1 when running under any form of GC stress based scenario. At this moment the largest supported value of N is 99
- Emit the testresults.xml file as a file which is exported from the tests. This is useful for debugging testresult.xml parsing failures
- Fix the testresults summary generator to never emit an empty CDATA string. If one is present the parser may fail the parse.
- In the XUnitWrapperGenerator fix the implementation of the Outerloop and ActiveIssue when used with a conditional member.
- Add PlatformDetection.IsMonoLLVMAOT, PlatformDetection.IsMonoLLVMFULLAOT, and PlatformDetection.IsMonoInterpreter boolean properties to the PlatformDetection type for use with the ActiveIssue attribute
- Add some documentation about project files for coreclr tests, as well as some documentation on the command line parameters for merged test runner assemblies

2 years agoAdd readmes for configuration packages, part 2 (#77982)
MSDN.WhiteKnight [Mon, 7 Nov 2022 23:06:34 +0000 (04:06 +0500)]
Add readmes for configuration packages, part 2 (#77982)

2 years agoAdd KeptByAttribute to validate an item was kept due to a specific dependency (dotnet...
Jackson Schuster [Mon, 7 Nov 2022 22:47:42 +0000 (16:47 -0600)]
Add KeptByAttribute to validate an item was kept due to a specific dependency (dotnet/linker#3096)

The tests we have in the linker try to ensure that something can only be kept for a certain reason, but it can be hard to ensure it's not being kept for another reason. For example, sometimes we use typeof(TestType) to mark a type, but that also makes it relevant to variant casting, which can cause parts of TestType to be kept for unintended reasons.

This PR creates the KeptByAttribute which accepts a fully qualified string in Cecil format to indicate depenency provider (the thing that is creating the dependency that marks the item with the attribute), as well as a string representing the DependencyKind to specify the "reason" there was a dependency between the two. It also can accept a System.Type, or a System.Type + name of the member to indicate the dependency provider.

Commit migrated from https://github.com/dotnet/linker/commit/dc5e60f5f2becf0b462d37ad918443126e80b49b

2 years agoAllow deleting any kind of nodes after address mode formation (#77872)
Bruce Forstall [Mon, 7 Nov 2022 20:57:30 +0000 (12:57 -0800)]
Allow deleting any kind of nodes after address mode formation (#77872)

* Allow deleting any kind of nodes after address mode formation

This is a general solution to #77152, allowing for deleting any
set of nodes that contributed to an address mode, especially those
nodes on the `op1` side of a GT_MUL with a zero `op2`.

Note that for the #77152 case, this deletes all the `op1` nodes,
but leaves behind a dead temp var that was created as part of
long MUL rationalization.

Fixes #77152.

* Add DEBUG_DESTROY_NODE

2 years agoFix StreamReader EOF handling and improve perf (#69888)
Levi Broderick [Mon, 7 Nov 2022 20:14:48 +0000 (12:14 -0800)]
Fix StreamReader EOF handling and improve perf (#69888)

* Fix StreamReader EOF handling and improve perf

* Address PR feedback

* Remove erroneous asserts

Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoRefactor ProcessStartInfoTests to use WindowsTestAccount (#77804)
hangy [Mon, 7 Nov 2022 18:24:34 +0000 (18:24 +0000)]
Refactor ProcessStartInfoTests to use WindowsTestAccount (#77804)

* Allow generated password to be retrieved from WindowsTestAccount

* Use WindowsTestAccount class in TestUserCredentialsPropertiesOnWindows instead of manual Interop

2 years agoRevert "Update assembly version from hardcoded to MajorVersion (#74157)" (#77899)
Eric StJohn [Mon, 7 Nov 2022 18:03:53 +0000 (10:03 -0800)]
Revert "Update assembly version from hardcoded to MajorVersion (#74157)" (#77899)

This reverts commit f84c1b5cd9fa6a0b1ab6d96ce3a55a4fe8438d00.

2 years agoFix typo in docs of AdvSimd.Arm64.TransposeOdd (#76971)
TechPizza [Mon, 7 Nov 2022 16:10:19 +0000 (17:10 +0100)]
Fix typo in docs of AdvSimd.Arm64.TransposeOdd (#76971)

2 years agoImprove IndexOf handling in regex source generator / compiler (#77925)
Stephen Toub [Mon, 7 Nov 2022 15:23:44 +0000 (10:23 -0500)]
Improve IndexOf handling in regex source generator / compiler (#77925)

This PR does a few related things:
1. Consolidates _most_ (but not all) use of IndexOf variants into a single helper that can then be used from multiple locations to avoid code duplication and make it easier for us to extend in the future with additional IndexOf variants.
2. Stops using IndexOf when doing lazy backtracking in an optional.
3. Special-cases "any" repeaters to not do any character checking.
4. Adds use of IndexOf (via the new helper) into repeaters.

2 years agoAdd and use a MakeSrcRegOptional that validates IsSafeToContainMem was called (#77895)
Tanner Gooding [Mon, 7 Nov 2022 15:11:41 +0000 (07:11 -0800)]
Add and use a MakeSrcRegOptional that validates IsSafeToContainMem was called (#77895)

* Add and use a MakeSrcRegOptional that validates IsSafeToContainMem was called

* Applying formatting patch

* Revert the MakeSrcRegOptional in ContainCheckDivOrMod due to an assert

* Moving TryMakeSrcContainedOrRegOptional into the lower.cpp file

2 years agocheck the right return value for mmap (#77952)
Manish Godse [Mon, 7 Nov 2022 14:44:03 +0000 (06:44 -0800)]
check the right return value for mmap (#77952)

2 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20221104.2 (dotnet...
dotnet-maestro[bot] [Mon, 7 Nov 2022 14:10:38 +0000 (14:10 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 20221104.2 (dotnet/linker#3102)

[main] Update dependencies from dotnet/arcade

Commit migrated from https://github.com/dotnet/linker/commit/64a008951149274863b494fca552f68a4e13ca28

2 years agoRemove unnecessary encoding allocations in System.Private.DataContractSerialization...
Krzysztof Wicher [Mon, 7 Nov 2022 10:11:20 +0000 (11:11 +0100)]
Remove unnecessary encoding allocations in System.Private.DataContractSerialization (#76366)

* Remove unnecessary encoding allocations in System.Private.DataContractSerialization

* Address PR feedback

2 years agoControl if invalid configuration values are swallowed or thrown (#77708)
Steve Dunn [Sun, 6 Nov 2022 23:08:52 +0000 (23:08 +0000)]
Control if invalid configuration values are swallowed or thrown (#77708)

2 years agoCorrect typo in README (#77958)
Jon Galloway [Sun, 6 Nov 2022 22:31:19 +0000 (14:31 -0800)]
Correct typo in README (#77958)

2 years agoInclude dependently promoted fields in SSA (#77238)
SingleAccretion [Sun, 6 Nov 2022 16:58:03 +0000 (19:58 +0300)]
Include dependently promoted fields in SSA (#77238)

* Remove quirks

* Early prop fix for call asgs

* Include all tracked locals in SSA

* Remove a (now incorrect) comment

* Fix a typo

* Encoding fixes

 1) The definition of SIMPLE_NUM_COUNT was wrong.
 2) SsaNumInfo::Composite, in the compact case, did not clear the old value.
 3) SsaNumInfo::Composite, in the outlined case, did not copy the already
    (compactly) encoded simple names.

* Fix store numbering

The load path needs to use the offset relative to
the store's target location.

* Clarify 'fieldValueOffset' calculations

2 years agoFix mono arm assert with large return structs (#77854)
Bill Holmes [Sun, 6 Nov 2022 16:02:30 +0000 (11:02 -0500)]
Fix mono arm assert with large return structs (#77854)

* Fix mono arm assert with large return structs

When the return struct is large the store instruction offset is too
large. When this happens, put the large offset in a register.

* Adding JIT test for large return structs

2 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20221104.2 (#77940)
dotnet-maestro[bot] [Sun, 6 Nov 2022 12:38:35 +0000 (04:38 -0800)]
Update dependencies from https://github.com/dotnet/arcade build 20221104.2 (#77940)

Microsoft.DotNet.ApiCompat , 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.22552.1 -> To Version 8.0.0-beta.22554.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years ago[main] Update dependencies from dotnet/icu dotnet/runtime-assets dotnet/emsdk dotnet...
dotnet-maestro[bot] [Sun, 6 Nov 2022 12:37:56 +0000 (04:37 -0800)]
[main] Update dependencies from dotnet/icu dotnet/runtime-assets dotnet/emsdk dotnet/roslyn-analyzers dotnet/roslyn (#77829)

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

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.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 7.0.0-beta.22531.1 -> To Version 7.0.0-beta.22552.2

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

Microsoft.NET.Workload.Emscripten.net7.Manifest-8.0.100
 From Version 8.0.0-alpha.1.22510.1 -> To Version 8.0.0-alpha.1.22552.9

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.3.4-beta1.22551.1 -> To Version 3.3.4-beta1.22553.1

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 8.0.0-alpha.1.22531.1 -> To Version 8.0.0-alpha.1.22553.1

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

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.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 7.0.0-beta.22531.1 -> To Version 7.0.0-beta.22553.1

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.3.4-beta1.22551.1 -> To Version 3.3.4-beta1.22553.2

* Update dependencies from https://github.com/dotnet/roslyn build 20221103.5

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.5.0-1.22528.14 -> To Version 4.5.0-1.22553.5

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

Microsoft.NET.Workload.Emscripten.net7.Manifest-8.0.100
 From Version 8.0.0-alpha.1.22510.1 -> To Version 8.0.0-alpha.1.22554.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoFix rerunning crossgen2 tests (#77903)
Jakob Botsch Nielsen [Sat, 5 Nov 2022 22:22:58 +0000 (23:22 +0100)]
Fix rerunning crossgen2 tests (#77903)

2 years agoOptimize XxHash3 on ARM platform (#77881)
Alexandre Mutel [Sat, 5 Nov 2022 15:05:12 +0000 (16:05 +0100)]
Optimize XxHash3 on ARM platform (#77881)

* Optimize XxHash3 on ARM platform

* Extract code to MultiplyWideningLower

* Update src/libraries/System.IO.Hashing/src/System/IO/Hashing/XxHash3.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoSwitch custom attribute hash from using CClosedHashEx to SHash (#77933)
Elinor Fung [Sat, 5 Nov 2022 13:28:30 +0000 (06:28 -0700)]
Switch custom attribute hash from using CClosedHashEx to SHash (#77933)

* Switch custom attribute hash from CClosedHashEx to SHash

* Remove CClosedHashEx

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
2 years ago[JIT] X64 - More replacement sequences for integer multiplication by a constant ...
Will Smith [Sat, 5 Nov 2022 03:01:26 +0000 (20:01 -0700)]
[JIT] X64 - More replacement sequences for integer multiplication by a constant (#77137)

* Using 3 instruction sequence for x64 multiply

* Do not do this in morph. Do it in codegen now.

* Fixing codegen

* Only allow values under 127 and do not skip mov - correctness testing

* Try to fix tests

* cleanup

* Moving to Lowering

* Quick fix

* Fully works in lowering now

* Account for all ints

* Take into account codegen opts

* Minor cleanup

* Minor cleanup

* Fixed test

* Added int multiply disasm checks. Fixed SuperFileCheck namespace bug. Made SuperFileCheck anchors more likely to match.

* Update comments

* Update comments

* Update comments

* Update comments

* Formatting

* Fixing build

* Fixing build again

* minor rename

* Moving x64 multiply codegen optimizations to lowering

* Using ReplaceWithLclVar

* Feedback. Removed use of FULL-LINE as it is more readable not strictly necessary. Forgot to add an additional instruction to a disasm test.

* Minor fix

* Formatting

* Adding codegen opts back, but disabling lowering opts if min-opts is enabled

* Little more changes

* Formatting

* Remove codegen opts

* Update comments

* Added test case for address-exposed

* Added TryLowerLshWithConstant

* Cleanup

* Removed TryLowerLshWithConstant

* Handle GT_LSH to emit lea if const is 3

* Added tests.

* Updated comments

* Revert LowerShift

* Remove IndexWithScale

* Fix build

* Update comment

* Formatting

* Update comments. Fix disasm test.

* Another minor test change

* Fix test

* Fix test

* Feedback

* Update IntMultiply.cs

* Update codegenxarch.cpp

* Update codegenxarch.cpp

2 years agoDisable Microsoft.NETCore.Runtime.JIT.Tools for source build (#77928)
Jan Kotas [Sat, 5 Nov 2022 01:37:46 +0000 (18:37 -0700)]
Disable Microsoft.NETCore.Runtime.JIT.Tools for source build (#77928)

Fixes #77920

2 years agoAdding EVEX encoding logic for RR/AM pathways (#77419)
DeepakRajendrakumaran [Sat, 5 Nov 2022 00:34:58 +0000 (17:34 -0700)]
Adding EVEX encoding logic for RR/AM pathways (#77419)

* Cleaning up TODO-XARCH-CLEANUP on EA_8BYTE size.

* Adding EVEX encoding pathways for emitOutputRR().

* Adding EVEX encoding support for AM paths.

* Moving 'JitStressEvexEncoding' under Debug flag and other review cleanup.

2 years agoRemove nonexistent tests from PAL test run files (#77917)
Aaron Robinson [Fri, 4 Nov 2022 23:34:44 +0000 (16:34 -0700)]
Remove nonexistent tests from PAL test run files (#77917)

2 years agoWork around invalid IR with field morphing temps (#77848)
SingleAccretion [Fri, 4 Nov 2022 21:06:14 +0000 (00:06 +0300)]
Work around invalid IR with field morphing temps (#77848)

* Add a test

* Use unique temps for zero-offset field morphing

To avoid running into invalid IR issues.

2 years agoSuppress warnings for deprecated keychain APIs
Kevin Jones [Fri, 4 Nov 2022 20:53:27 +0000 (16:53 -0400)]
Suppress warnings for deprecated keychain APIs

2 years agoVectorize {Last}IndexOfAny{Except} for ASCII needles (#76740)
Miha Zupan [Fri, 4 Nov 2022 20:02:45 +0000 (13:02 -0700)]
Vectorize  {Last}IndexOfAny{Except} for ASCII needles (#76740)

* Vectorize {Last}IndexOfAny{Except} for ASCII needles

* Add a ShouldUseSimpleLoop helper

* Review feedback

2 years agoAdd FrozenDictionary/Set (#77799)
Stephen Toub [Fri, 4 Nov 2022 19:49:15 +0000 (15:49 -0400)]
Add FrozenDictionary/Set (#77799)

* Import original frozen collections source with updates to successfully compile

Co-authored-by: Martin Taillefer <mataille@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
* Overhaul frozen collections (API, implementation, tests)

* Address PR feedback

Co-authored-by: Martin Taillefer <mataille@microsoft.com>
2 years agoAdd System.IO.Hashing ref csproj (#77856)
Stephen Toub [Fri, 4 Nov 2022 19:48:51 +0000 (15:48 -0400)]
Add System.IO.Hashing ref csproj (#77856)

* Add System.IO.Hashing ref csproj

* Fix System.IO.Hashing ref source and add sln

2 years agoIf conversion should not convert PHI nodes (#77886) (#77888)
Alan Hayward [Fri, 4 Nov 2022 18:59:29 +0000 (18:59 +0000)]
If conversion should not convert PHI nodes (#77886) (#77888)

* If conversion should not convert PHI nodes (#77886)

* Add regression test

2 years agoImprove JIT bit sets (#77876)
Bruce Forstall [Fri, 4 Nov 2022 17:07:53 +0000 (10:07 -0700)]
Improve JIT bit sets (#77876)

1. `AllVarBitSetTraits::GetArrSize()` was allocating far too much memory:
one size_t for every bit in the vector.
2. Cache the array size for `BitVecTraits::GetArrSize()` -- this function was
showing up hot in a perf run (x86 SPMI replay).
3. Stop passing `sizeof(size_t)` to `GetArrSize()` -- we always assume bitsets
work in size_t units.

2 years agoJIT: Propagate only BBF_COPY_PROPAGATE flags during inliner substitution (#77845)
Jakob Botsch Nielsen [Fri, 4 Nov 2022 16:27:34 +0000 (17:27 +0100)]
JIT: Propagate only BBF_COPY_PROPAGATE flags during inliner substitution (#77845)

2 years agoAdding issue #77889 to GenerateRuntimeGraphTests. (#77890)
Jan Dupej [Fri, 4 Nov 2022 15:59:23 +0000 (16:59 +0100)]
Adding issue #77889 to GenerateRuntimeGraphTests. (#77890)

2 years agosource-build: set the properties to build for mono runtime. (#77786)
Tom Deseyn [Fri, 4 Nov 2022 15:33:34 +0000 (16:33 +0100)]
source-build: set the properties to build for mono runtime. (#77786)

2 years agoUpdate api-review-process.md (#77860)
Dan Moseley [Fri, 4 Nov 2022 15:25:42 +0000 (09:25 -0600)]
Update api-review-process.md (#77860)

* Update api-review-process.md

* Update docs/project/api-review-process.md

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoRemove SharedFxLookup tests (#77858)
Elinor Fung [Fri, 4 Nov 2022 14:53:15 +0000 (07:53 -0700)]
Remove SharedFxLookup tests (#77858)

These were a roundabout/confusing way of testing that we roll forward
patch/minor for framework resolution by default and how we resolve
dependencies based on assembly version when the dependency is included
in multiple frameworks. We have existing tests that are clearer and
lighter weight that do this.

2 years agoRemove `palrt` from JIT and remove `memcpy` from PAL (#77556)
Aaron Robinson [Fri, 4 Nov 2022 14:22:18 +0000 (07:22 -0700)]
Remove `palrt` from JIT and remove `memcpy` from PAL (#77556)

* Remove palrt from JIT and remove memcpy from PAL

The compiles and runs without palrt.
The memcpy in the PAL was a thin wrapper and
didn't appear to add any additional value. The
PAL export was removed and the memcpy macro
was removed in most cases.

2 years agoMove LibraryImports to Common (#77674)
Robin Lindner [Fri, 4 Nov 2022 14:21:38 +0000 (15:21 +0100)]
Move LibraryImports to Common (#77674)

2 years agoAdd readme for System.Linq (#77672)
Krzysztof Wicher [Fri, 4 Nov 2022 13:47:49 +0000 (14:47 +0100)]
Add readme for System.Linq (#77672)

* Add readme for System.Linq

* Add readmes for .Parallel, .Queryable

* remove remark about not accepting refactoring changes due to new language features

* PR feedback

* static -> extension

2 years ago[wasm] WasmAppHost docs (#77265)
Marek Fišera [Fri, 4 Nov 2022 09:36:03 +0000 (10:36 +0100)]
[wasm] WasmAppHost docs (#77265)

Co-authored-by: Ankit Jain <radical@gmail.com>
2 years agoUse backport workflow from arcade repo (#77844)
Alexander Köplinger [Fri, 4 Nov 2022 09:11:54 +0000 (10:11 +0100)]
Use backport workflow from arcade repo (#77844)

* Use backport workflow from arcade repo

The arcade repo now includes the backport workflow as a reusable workflow so we can reference it from there and cleanup code duplication.

* Preserve custom PR description template

2 years agoAdd BinaryPrimitives.ReverseEndianness for spans of elements (#76339)
Stephen Toub [Fri, 4 Nov 2022 08:57:47 +0000 (04:57 -0400)]
Add BinaryPrimitives.ReverseEndianness for spans of elements (#76339)

2 years agoStandardize test script naming to CLRTestBa{tc,s}hP{re,ost}Commands (#76483)
Mark Plesko [Fri, 4 Nov 2022 08:30:33 +0000 (01:30 -0700)]
Standardize test script naming to CLRTestBa{tc,s}hP{re,ost}Commands (#76483)

Main change is BashCLRTestPreCommands -> CLRTestBashPreCommands. As part of this I noticed that wasm tests overwrite the Bash precommands, and fixing that breaks them so it isn't touched here. Also, there are several non-Commands variables that start with Ba{tc,s}hTest that aren't touched here.

Remove check on RunCrossGen2 in disasm checks as that is intended as a shell environment variable, not an msbuild variable.

Convert a few more tests to the new environment variable format.

2 years ago[wasm] browser profiler (again) (#77779)
Pavel Savara [Fri, 4 Nov 2022 07:26:56 +0000 (08:26 +0100)]
[wasm] browser profiler (again) (#77779)

* 0e24ea7 again
* fix support for shells
* report only when enabled

2 years agoDesign to support ByRefLike types in Generics (#67129)
Aaron Robinson [Fri, 4 Nov 2022 02:40:20 +0000 (19:40 -0700)]
Design to support ByRefLike types in Generics (#67129)

* Design to support ByRefLike types in Generics

* Trim whitespace

* Review feedback

* Remove words

* Update based on feedback

* Add F# as being impacted.

* Feedback and clarify wording for constrained calls.

* Add well-known IL sequences for boxing
Record APIs where compiler constraint analysis should be suppressed.
Defined analysis suppression attribute.

* Minor nits.

* Update docs/design/features/byreflike-generics.md

Co-authored-by: Jared Parsons <jaredpparsons@gmail.com>
* Review feedback

* Update to design doc

* Misspelling

* Update byreflike-generics.md

Co-authored-by: Jared Parsons <jaredpparsons@gmail.com>
2 years agoRemove "wprintf" from PAL (#77852)
Aaron Robinson [Fri, 4 Nov 2022 02:24:58 +0000 (19:24 -0700)]
Remove "wprintf" from PAL (#77852)

The last usage was in FormatMessageW, which
only used wprintf syntax for messages that used
embedded printf format between two "!". We do
not use this feature in any of our messages so
this code path is technically unused.

Remove _snwprintf_s from PAL

Remove _vsnwprintf_s from PAL

_woutput_s was not removed because it is intertwined
with the implementation for printf. The linker will just
prune the implementation anyways.

FormatMessageW errors if embedded formatting is used
Update PAL tests for FormatMessageW

2 years agoOptimize XxHash3 (#77756)
Alexandre Mutel [Thu, 3 Nov 2022 20:45:56 +0000 (21:45 +0100)]
Optimize XxHash3 (#77756)

* Optimize XxHash3

* Update src/libraries/System.IO.Hashing/src/System/IO/Hashing/XxHash3.cs

* Fix var

* Fix compilation errors for < .NET 7.0

* Fix issue on scalar code path

Co-authored-by: Stephen Toub <stoub@microsoft.com>
2 years agoFix op_Inequality for `Vector64<T>` (#77815)
David Wrighton [Thu, 3 Nov 2022 20:45:03 +0000 (13:45 -0700)]
Fix op_Inequality for `Vector64<T>` (#77815)

Recent changes to the implementation of the `Vector64<T>` type caused a regression to the fallback path for inequality. In particular it changed from inequality to checking of all elements were unequal, which is a different operation.

2 years agoUpdate superpmi-collect queues (#77825)
Jakob Botsch Nielsen [Thu, 3 Nov 2022 19:36:23 +0000 (20:36 +0100)]
Update superpmi-collect queues (#77825)

2 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20221102.1 (#77828)
dotnet-maestro[bot] [Thu, 3 Nov 2022 19:05:56 +0000 (14:05 -0500)]
Update dependencies from https://github.com/dotnet/arcade build 20221102.1 (#77828)

Microsoft.DotNet.ApiCompat , 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.22528.1 -> To Version 8.0.0-beta.22552.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoUpdate dependencies from https://github.com/dotnet/linker build 20221102.1 (#77830)
dotnet-maestro[bot] [Thu, 3 Nov 2022 18:52:34 +0000 (13:52 -0500)]
Update dependencies from https://github.com/dotnet/linker build 20221102.1 (#77830)

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22551.1 -> To Version 7.0.100-1.22552.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoUse correct container definitions in perf_slow.yml (#77774)
Alexander Köplinger [Thu, 3 Nov 2022 18:40:34 +0000 (19:40 +0100)]
Use correct container definitions in perf_slow.yml (#77774)

Fallout from https://github.com/dotnet/runtime/pull/75473, container handling happens in platform-matrix.yml now.

2 years agoMake ResourceManager.BaseName work as documented. (#75497)
madelson [Thu, 3 Nov 2022 17:58:25 +0000 (13:58 -0400)]
Make ResourceManager.BaseName work as documented. (#75497)

* Make ResourceManager.BaseName work as documented.

This property is documented to return the "qualified namespace name and
the root resource name of a resource file". However, previously when
constructing a ResourceManager with a Type the BaseName property would
instead return the name of the type without its namespace.

fix #74918

* Remove _locationInfo field

* Add additional test cases for ResourceManager.BaseName.

Address feedback from https://github.com/dotnet/runtime/pull/75497#issuecomment-1262913704.

* Fix BaseName test case in response to https://github.com/dotnet/runtime/pull/75497#issuecomment-1295500698

2 years agoUnify RunCrossGen2 environment variable to be set to 1 instead of "true" (#77808)
Jakob Botsch Nielsen [Thu, 3 Nov 2022 17:15:40 +0000 (18:15 +0100)]
Unify RunCrossGen2 environment variable to be set to 1 instead of "true" (#77808)

Various places were setting this to "true" and various other places to
"1". Always use "1" in the environment variable and "true" in the
msbuild property. This fixes local runs of crossgen2 tests (using
src/tests/run.cmd runcrossgen2tests) -- these were not skipping
FileCheck tests before as the test wrapper script only checks for "1".

2 years agoDo not add null checks for boxed statics (#77796)
SingleAccretion [Thu, 3 Nov 2022 17:05:03 +0000 (20:05 +0300)]
Do not add null checks for boxed statics (#77796)

* Do not add some null checks

* Fix ARR_ELEM exceptions

2 years agoAvoid some unnecessary MemoryStream.ToArray calls (#77832)
Stephen Toub [Thu, 3 Nov 2022 16:49:57 +0000 (12:49 -0400)]
Avoid some unnecessary MemoryStream.ToArray calls (#77832)

2 years agoMono workloads: Fix building non-mono project when `RunAOTCompilation=true` (#77762)
Ankit Jain [Thu, 3 Nov 2022 15:41:51 +0000 (11:41 -0400)]
Mono workloads: Fix building non-mono project when `RunAOTCompilation=true` (#77762)

This manifested in a case where a non-mono project was passed a mono specific property `RunAOTCompilation=true`, but instead of it getting ignored, the build failed with:

```
/usr/local/share/dotnet/sdk/7.0.200-preview.22521.7/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.targets(38,5):

error NETSDK1147: To build this project, the following workloads must be installed: macos [/private/tmp/c/c.csproj]
error NETSDK1147: To install these workloads, run the following command: dotnet workload restore [/private/tmp/c/c.csproj]
```

And this is because the `MonoAOTCompiler.Task` is imported with:

https://github.com/dotnet/runtime/blob/82aa87f9cdf9ac20f0f685016648c36247a76ff1/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/WorkloadManifest.targets.in#L57-L57

- This happens for net6, and net8 projects.

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

cc @steveisok @lewing

2 years ago[wasm] Bump tests timeout 15mins to 30mins, for .. (#77819)
Ankit Jain [Thu, 3 Nov 2022 15:40:57 +0000 (11:40 -0400)]
[wasm] Bump tests timeout 15mins to 30mins, for .. (#77819)

.. `xharness`.

Some library tests, like `System.Text.RegularExpressions.Tests` can take more than 15mins.

- Also, fix building `console-v8` sample with `make`

2 years agoUse more spans in `System.Reflection.Metadata` et. al. (#76574)
Theodore Tsirpanis [Thu, 3 Nov 2022 15:29:21 +0000 (17:29 +0200)]
Use more spans in `System.Reflection.Metadata` et. al. (#76574)

* Use Unsafe.As in ImmutableByteArrayInterop.

Code quality increases.

* Optimize methods in the BlobUtilities class.

* Include more information in exceptions thrown from catch blocks.

* Use spans in BlobContentId, avoiding ImmutableByteArrayInterop.

* Use spans in BlobWriter, reducing pinning and ImmutableArrayInterop.

* Use spans in BlobBuilder, reducing pinning and ImmutableArrayInterop.

* Remove NoInlining from the throw helpers.

It prevents the JIT from looking into the method's body, realizing it's a throw helper, and doing what's best (such as considering it cold).

* Inline `BlobUtilities.Read(Immutable)?Bytes`.

* Avoid a length check introduced by the use of `BinaryPrimitives`.

* Remove `DisallowNull` from `ImmutableArrayInterop.DangerousCreateFromUnderlyingArray`.

* Remove an early bail-out if the buffer was empty.

* Stop using value tuples.

* Fix tests and expose writing a span to BlobWriter.

* Fix stack overflows.

* Shorten BlobUtilities methods that write integers.

* Optimize some methods in `MemoryBlock`.

2 years agoEnable CodeQL with TSA
mdh1418 [Thu, 3 Nov 2022 15:15:19 +0000 (23:15 +0800)]
Enable CodeQL with TSA

Commit migrated from https://github.com/dotnet/linker/commit/c8099e29e107d20780d3ae9d655917d1a3bb177a

2 years ago#76881 internal properties in GetRuntimeProperties are not shown (#77169)
Meri Khamoyan [Thu, 3 Nov 2022 15:03:31 +0000 (19:03 +0400)]
#76881 internal properties in GetRuntimeProperties are not shown (#77169)

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

2 years agoFixes typos and formatting in comments (#76975)
Michael Aranda [Thu, 3 Nov 2022 14:20:52 +0000 (08:20 -0600)]
Fixes typos and formatting in comments (#76975)

2 years agoImplement Environment.IsPrivilegedProcess (#77355)
Ilya [Thu, 3 Nov 2022 14:13:51 +0000 (19:13 +0500)]
Implement Environment.IsPrivilegedProcess (#77355)

* Implement Environment.IsPrivilegedProcess

* Address feedback

* Use one static

* Fix mono wasm

* Address feedback 2

* Address feedback 3

* Fix typo.

* Fix wasm

2 years agocorrect code snippets (#77581)
RaymondY [Thu, 3 Nov 2022 14:13:15 +0000 (22:13 +0800)]
correct code snippets (#77581)

Let them be valid C# code. Uniform code style as well.

2 years agoFix ThunkGenerator build break (#77816)
Jan Kotas [Thu, 3 Nov 2022 14:04:02 +0000 (07:04 -0700)]
Fix ThunkGenerator build break (#77816)

Apply all style auto-fixers on ThunkGenerator

2 years agoFix wrong metadata name in test (#77806)
Jakob Botsch Nielsen [Thu, 3 Nov 2022 10:37:34 +0000 (11:37 +0100)]
Fix wrong metadata name in test (#77806)

2 years agoUpdate tar test data version (#77785)
Adeel Mujahid [Thu, 3 Nov 2022 09:01:15 +0000 (11:01 +0200)]
Update tar test data version (#77785)

2 years agoJIT: Enable phi-based jump threading when SSA updates aren't needed (#77748)
Andy Ayers [Thu, 3 Nov 2022 04:18:41 +0000 (21:18 -0700)]
JIT: Enable phi-based jump threading when SSA updates aren't needed (#77748)

Leverage the new SSA accounting to look for cases of phi-based jump threading
that will not require SSA updates. In particular cases where the phis are all
locally consumed.

Also update documentation on the SSA checker implementation (which aims to
ensure that the SSA accounting we're relying on here is accurate).

2 years agoRemove empty BEGIN/END_ENTRYPOINT_* macros (#77810)
Elinor Fung [Thu, 3 Nov 2022 03:26:36 +0000 (20:26 -0700)]
Remove empty BEGIN/END_ENTRYPOINT_* macros (#77810)

2 years ago[mono] Avoid returning true from RuntimeType.IsActualEnum for generic parameters...
Zoltan Varga [Thu, 3 Nov 2022 00:48:15 +0000 (20:48 -0400)]
[mono] Avoid returning true from RuntimeType.IsActualEnum for generic parameters. (#77763)

Related: https://github.com/dotnet/runtime/pull/71685.

2 years agoSystem.Threading.RateLimiting de-queue canceled request (#77182)
Ali Khalili [Wed, 2 Nov 2022 21:17:08 +0000 (21:17 +0000)]
System.Threading.RateLimiting de-queue canceled request (#77182)

* Dequeue canceled request before making decision for processing queue’s requests

2 years agoUpdate assembly version from hardcoded to MajorVersion (#74157)
Carlos Sanchez [Wed, 2 Nov 2022 20:28:48 +0000 (13:28 -0700)]
Update assembly version from hardcoded to MajorVersion (#74157)

* Update assembly version from hardcoded to MajorVersion

* Bump version to 8 in XsdDataContractExporterTests

* Retrieve major version dynamically for expected message in TypesTest_Negative

* Retrieve major version dynamically for expected message in SurrogateProvider_MemberData

* Manually generate the TestData.resources.
The dotnet exec command generated by the msbuild Target had to be manually executed in the cmdline with the target framework folders for RemoteExecutor hardcoded to net7.0-windows so the resources file could be generated.

* Avoid hardcoded 8 in additional SurrogateTests line

* Fix Diagnostics.EventLog supression message

* Update assembly version from hardcoded to MajorVersion

* Bump version to 8 in XsdDataContractExporterTests

* Retrieve major version dynamically for expected message in TypesTest_Negative

* Retrieve major version dynamically for expected message in SurrogateProvider_MemberData

* Manually generate the TestData.resources.
The dotnet exec command generated by the msbuild Target had to be manually executed in the cmdline with the target framework folders for RemoteExecutor hardcoded to net7.0-windows so the resources file could be generated.

* Avoid hardcoded 8 in additional SurrogateTests line

* Fix Diagnostics.EventLog supression message

* Extract the LocalEchoServer bits from the projects

.. so that the helix bits are in a LocalEchoServer.helix.targets ,
instead of being special-cased in sendtohelix-wasm.targets .
- And this is setup and used by the test projects by importing one file.

* Build the LocalEchoServers specifically without using artifacts .

- The RemoteLoopServer, and NetCoreServer are projects used as aspnetcore
middleware, and loaded by xharness.
- These are built against the live artifacts, same as other projects.
    - But this can be a problem when the libraries in `runtime` are on a
    newer assembly version (say `8.0.0`), but xharness is still built with
    `7.0.0` libraries.
    - In that case, xharness fails to load the middleware:

```
Application startup exception: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.

...

Could not load file or assembly 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.Assembly.GetTypes()
   at Microsoft.DotNet.XHarness.CLI.CommandArguments.TypeFromAssemblyArgument`1.GetLoadedTypes()+MoveNext() in /_/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/Arguments/TypeFromAssemblyArgument.cs:line 29
   at Microsoft.DotNet.XHarness.CLI.Commands.WebServer.<>c__DisplayClass0_0.<Start>b__9(TestWebServerOptions options) in /_/src/Microsoft.DotNet.XHarness.CLI/Commands/WebServer.cs:line 60
   at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name)
   at Microsoft.Extensions.Options.OptionsCache`1.<>c__3`1.<GetOrAdd>b__3_0(String name, ValueTuple`2 arg)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd[TArg](TKey key, Func`3 valueFactory, TArg factoryArgument)
   at Microsoft.Extensions.Options.OptionsCache`1.GetOrAdd[TArg](String name, Func`3 createOptions, TArg factoryArgument)
   at Microsoft.DotNet.XHarness.CLI.Commands.WebServer.TestWebServerStartup.Configure(IApplicationBuilder app, IOptionsMonitor`1 optionsAccessor) in /_/src/Microsoft.DotNet.XHarness.CLI/Commands/WebServer.cs:line 126
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.WebHost.BuildApplication()
```

- Build the project in isolation from rest of the repo, so that it is
built with references only from the SDK. The built assembly can then be
deployed for use with xharness, just like before.

* add missing files

* [wasm] fixup extensions targets for LocalEchoServer

* [wasm] Use eng/targetingpacks.targets instead of wasm specific targets

* [wasm] Avoid duplicate imports, and don't use the targetingpacks.targets

.. for runtime tests since the paths are set explicitly in the project

* [wasm] Workaround for https://github.com/dotnet/runtime/issues/77707

The middleware projects are now being built separately, so they can
target a different TFM. But when `RunAOTCompilation=true` is set, like
on CI/AOT builds, the build breaks with:

```
To build this project, the following workloads must be installed: macos [/__w/1/s/Build.proj]
To install these workloads, run the following command: dotnet workload restore [/__w/1/s/Build.proj]
```

This is described in https://github.com/dotnet/runtime/issues/77707 .
And the issue is present in `7.0 rc1` also, which is currently used for
building the repo. To workaround it, we unset some properties which
aren't needed anyway for the middleware projects builds.

Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
2 years agoFix missing dispose on rate limiting (#76784)
Ali Khalili [Wed, 2 Nov 2022 20:26:19 +0000 (20:26 +0000)]
Fix missing dispose on rate limiting (#76784)

2 years agoAvoid locking during host trace flush when not necessary (#77765)
Elinor Fung [Wed, 2 Nov 2022 20:09:05 +0000 (13:09 -0700)]
Avoid locking during host trace flush when not necessary (#77765)

2 years ago[main] Update dependencies from 7 repositories (#77594)
dotnet-maestro[bot] [Wed, 2 Nov 2022 17:57:48 +0000 (17:57 +0000)]
[main] Update dependencies from 7 repositories (#77594)

[main] Update dependencies from 7 repositories

2 years agoFix triple slash documentation for System.Runtime.Intrinsics (#76687)
Drew Kersnar [Wed, 2 Nov 2022 17:02:30 +0000 (12:02 -0500)]
Fix triple slash documentation for System.Runtime.Intrinsics (#76687)

* Add missing type param documentation for Vector64.Create<T>

* Add summaries to the Vector types

* Fix typeparamref

* Address PR feedback

2 years ago[main] Update dependencies from dotnet/linker (#77595)
dotnet-maestro[bot] [Wed, 2 Nov 2022 16:56:10 +0000 (12:56 -0400)]
[main] Update dependencies from dotnet/linker (#77595)

* Update dependencies from https://github.com/dotnet/linker build 20221027.4

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22525.3 -> To Version 7.0.100-1.22527.4

* Update dependencies from https://github.com/dotnet/linker build 20221031.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22525.3 -> To Version 7.0.100-1.22531.1

* Update dependencies from https://github.com/dotnet/linker build 20221031.2

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22525.3 -> To Version 7.0.100-1.22531.2

* Update dependencies from https://github.com/dotnet/linker build 20221101.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22525.3 -> To Version 7.0.100-1.22551.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2 years agoUse SR.Format in a few more places (#77615)
Adeel Mujahid [Wed, 2 Nov 2022 16:55:56 +0000 (18:55 +0200)]
Use SR.Format in a few more places (#77615)

2 years agoAvoid reporting empty debug info ranges to the vm (#77289)
Brian Bohe [Wed, 2 Nov 2022 16:41:08 +0000 (09:41 -0700)]
Avoid reporting empty debug info ranges to the vm (#77289)

* Removing empty variable live ranges

The debugger is not using empty variable live ranges.
We are reporting them because they can get extended
later if the variable becomes alive in the immediately
next emitted instruction. If an empty live range is
not getting extended, which we can realize after
emitting all the code or creating a new live range
for the same variable, we can remove it.

* Extending variable live ranges in more cases

When the emitter moved to the next group but has not
emitted any instruction, and the variable died and
becomes alive again, we would like to extend its range.

* Avoiding creating a new debug range when previous is empty

* Updating check for empty debug ranges

* Updating print

* Avoiding printing twice variable live range

* Avoiding reporting empty variable ranges to the vm

* Revert "Avoiding printing twice variable live range"

This reverts commit 4e1cf47dd6cdf9d45ce4a51eaa05b3ec6e4b3b41.

* Revert "Updating print"

This reverts commit 7b79b0d955daa4dc9770b604d6780591b51c9ee1.

* Revert "Updating check for empty debug ranges"

This reverts commit e8b102d489d79028750068decf4f427ad8e5f69f.

* Revert "Avoiding creating a new debug range when previous is empty"

This reverts commit a11fd5d0ffaa98631d731bec1f2619f1d108d33a.

* Revert "Extending variable live ranges in more cases"

This reverts commit 609605a1ca7cf1c0c843dbaf353432ec9ed846e2.

* Revert "Removing empty variable live ranges"

This reverts commit 66d18e031f83c8efe864981b35c0548af49e0714.

* Freeing vm memory when there is no debug info

* Persisting JIT-EE contract on empty debug info

* Update src/coreclr/jit/ee_il_dll.cpp

Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Co-authored-by: Brian Bohe <brianbohe@microsoft.com>
Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>