Skip to content

Sync with upstream main branch #40

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 156 commits into from

Conversation

joshpeterson
Copy link

This is an automatically generated pull request to merge changes from the upstream main branch.

maraf and others added 30 commits February 5, 2022 10:44
- Fix including additional scenario test folders as HelixWorkItems.
- Disable `System.Net.WebSockets.Client.Tests` on NodeJS, before we fix NodeJS.
- Fix paths to echo and remote loop servers.

Co-authored-by: Ankit Jain <[email protected]>
…e actionable. (dotnet#64836)

Update the Roslyn Testing SDK version and update the DllImportGenerator unit tests to crash in a way that produces a dump for some of our intermittent issues (dotnet#60909, dotnet#62223). This mechanism will crash the process during the "exception filter" phase, so it will still have the throwing frame on the stack (no unwinding). Hopefully this will enable us to get more actionable dumps to investigate these issues and determine if they're Roslyn bugs or GC holes.
* Brought back changes from dotnet#54437

* Fixed tests

* feedback
…64843)

Fixes a couple of issues exposed by forward sub, where containment analysis
was allowing unsafe reordering of operands.

Closes dotnet#64828.

Generalize the safety check so that a store to a local not live into a handler
can be reordered with respect to node causing exceptions. Happily this leads
to almost uniformly better code despite the more stringent checking added above.

Add a workaround for the late callbacks into the containment checker made on
unlinked nodes. Assume these are always safe.

Also add extra checks; fast path early out; assertion in MakeSrcContained.
This can be used to avoid aborting the AOT process if a loader
error occurs. The methods which fail to load will not be AOTed and
the failures will happen at runtime.

Related:
dotnet#63654
* Do not add a zero-offset FldSeq to LCL_FLD directly

"fgAddFieldSeqForZeroOffset"'s contract is that it is passed
an *address*. If that address is a LCL_FLD, we must use the
"zero-offset sequence map", not the sequence of LCL_FLD itself,
as that represents LCL_FLD's own value, not the value it produces
(LCL_FLD == IND(LCL_FLD_ADDR), and LCL_FLD's sequence is the one
attached to LCL_FLD_ADDR, not IND).

* Fix the same issue in "ChangeOper"

* Read zero-offset FldSeqs on LclFld in VN
The link was not rendering correctly, as the link text and target were on separate lines.
As the added comment states, we must do this to get dependent
promotion, as otherwise the compiler does not support independent
promotion of structs not fully eliminated from the IR, save some
special cases (such as multi-reg structs).

We will only need to do this very rarely, as otherwise we mark
SIMD locals used by SIMDs/HWIs specially when creating those
nodes so as not to promote them.

This issue was revealed by forward substituion, where we had:

SIMD a = OBJ(ADDR(b)) // b is SIMD too
HWI(a)

And forward-substituted the promoted "b" into "HWI". Notably,
by the time we are forward-substituting, "we cannot really do
anything about it", as struct promotion has already run, and
by the time we get to morph, we too cannot do much save some
gymnastics with conjuring up a tree of inserts from individual
fields.
…nAsciiByte (dotnet#64814)

The `&&` operator takes precedence over `||`, make it explicit by wrapping in parenthesis which also makes it consistent with other usages like https://github.com/dotnet/runtime/blob/57bfe474518ab5b7cfe6bf7424a79ce3af9d6657/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8Utility.Transcoding.cs#L887

Sse2 implies little endian so the check only needs to apply to AdvSimd.
Their initialization is handled by the parent local.

Closes dotnet#64808.
* Propagate exception sets for block assignments

* Propagate exception sets for simple assignments

* Fix fgValueNumberCastHelper

To not rely on VNs of setup/placeholder args.

* Enable the checker
This ensures we normalize returned indirs of locals, even when we fold
it into an access of a promoted local's field. This may change a signed
indir into access of an unsigned field, which may need a sign-extending
cast to be inserted.

It is not ideal that fgMorphRetInd can 'lose' this information, but
given that it is a specialized optimization it seems the simplest
solution is to just rely on the follow-up normalization.

Fix dotnet#61359
* Emit OP_FCONV_TO_U8/U4 instead of OP_FCONV_TO_U.

* Remove OP_FCONV_TO_U implementations across all back ends.

* Remove duplicated mono_fconv_u8/u4 icall wrappers.

* Fixes dotnet#64570
* Fixing race condition.

* Completely avoid race condition as @lewing suggested.

* keeping old name

* Addressing @radical comments

* Addressing @lewing comments.

* fix unrelated change

* Addressing @lewing comment offline.
… team visibility (dotnet#64915)

Before the bot reacted to the /backport command anywhere in the comment, now it needs to be at the start of the line.

Additionally, if the check for repo collaborator fails print a link to the Microsoft team on GitHub to change visibility (most common failure case).
* Move one more 20H2 queue to server 2022

Fix one more instance not covered by dotnet#64827.
This should fix the same failure in runtime-extra-platforms.

* Update IsIcuCompatiblePlatform
)

* FullPath property now returns fully qualified path

Gets the fully qualified path after combining the directory and name part
as per the thread discussion. Also added and updated tests for the new change.

Fix dotnet#62606

* OldFullPath returns fully qualified path

To be consistent with new behavior of FullPath from FileSystemEventArgs
same change was applied for RenamedEventArgs including updated tests.

Fix dotnet#62606

* Marked some test cases as Windows OS specific

In the context of using an actual full path
which can vary on Unix vs Windows

Fix dotnet#62606

* Using Path.Join instead of the custom Combine

Adjusted unit tests to match the new logic.

Fix dotnet#62606

* Account for corner case when fullPath matches root

The previous buggy implementation of RenamedEventArgs
produced a convenient side-effect for PhysicalFilesWatcher.

Without the trailing slash adde by RenamedEventArgs the root
was longer than the fullPath by a trailing slash.

Fix dotnet#62606

* Handle relative paths from CWD in given drive

Fix dotnet#62606

* Clearly separated unix and windows test cases

Implemented most of the code review suggestions.

Fix dotnet#62606

* Use EnsureTrailingSeparator instead of custom code

Also made unit tests more focused by
removing needless asserts from the tests

Fix dotnet#62606

* Keeping the old behavior with trailing separator

Reverted the changes to PhysicalFilesWatcher
and added back the trailing separator behavior
as per code review suggestion

Fix dotnet#62606

* Used Path.Combien vs PathInternalEnsureSeparator

As per code review suggestions.

Fix dotnet#62606

* Added blank line for readability

Pipeline retrigger. Some pipelines timed out, most probably transient issues.

Fix dotnet#62606
dotnet#64102)

* vtable setup fix for generic default interface methods in mono runtime

When processing the overrides from interface default methods we should
check if the interface class is a generic type definition first and
inflate with the interface class context.

Test case included.

* Update test to ensure that the correct context is used
…GCONT. (dotnet#64200)

The introduction of the managed API for signal handling (PosixSignal)
inadvertently caused terminal configuration to no longer be performed
when no managed handlers are registered.

This adds back the unconditional registration for SIGINT/SIGQUIT/SIGCONT.

The missing registrations can cause the terminal to stop echoing when an
application terminates on Ctrl-C.
* Update dependencies from https://github.com/dotnet/arcade build 20220203.1

Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework , 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.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk
 From Version 2.5.1-beta.22080.1 -> To Version 2.5.1-beta.22103.1

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.22101.2 -> To Version 1.0.0-prerelease.22104.1

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

Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.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.22075.1 -> To Version 7.0.0-beta.22103.2

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

Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
 From Version 7.0.0-alpha.2.22102.3 -> To Version 7.0.0-alpha.2.22103.4

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.2-alpha.0.22081.2 -> To Version 1.0.2-alpha.0.22103.1

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

runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
 From Version 11.1.0-alpha.1.22081.2 -> To Version 11.1.0-alpha.1.22103.3

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

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 7.0.0-preview.2.22101.1 -> To Version 7.0.0-preview.2.22103.1

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

Microsoft.NET.Workload.Emscripten.Manifest-7.0.100
 From Version 7.0.0-alpha.2.22102.3 -> To Version 7.0.0-alpha.2.22104.1

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

runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.11.0-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter
 From Version 1.0.0-alpha.1.22073.1 -> To Version 1.0.0-alpha.1.22104.2

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

Microsoft.NETCore.ILAsm , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.App.Runtime.win-x64 , System.Runtime.CompilerServices.Unsafe , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Text.Json
 From Version 7.0.0-preview.2.22080.2 -> To Version 7.0.0-preview.2.22103.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Přemek Vysoký <[email protected]>
elinor-fung and others added 26 commits February 10, 2022 19:03
…#65123)

* Subtract instead of cartesian product in targets

See dotnet#64000 (comment). These targets were quite expensive and noticeable in no-op builds. Instead of building the cartesian product via item batching, using subtraction which avoids unnecessary items to be computed.

* Update resolveContract.targets

* Update targetingpacks.targets

* Update resolveContract.targets

* Update resolveContract.targets
* Avoid InitialTarget in libs tree for CoreLib

InitialTargets are quite expensive as they run for every project invocation, even if the target invoked doesn't require the InitialTarget to run. Libraries projects only have one InitialTarget for correctly referencing CoreLib which can be changed so that it runs before RAR.
* Update to StyleCopAnalyzers 1.2.0-beta.406

* Add missing newlines at end of files to satisfy changes to SA1518
There was existing logic to spill but it was there to avoid duplicating costly trees and was
not considering possible interference. Unfortunately, this method is invoked in morph
preorder and child node flags can't be trusted for interference checks.

Fix is to update `fgMakeMultiUse` so it will spill any exposed local.
* Introducing GenTreeDebugOperKind

To track invariants related to opers in asserts
without increasing the size of the primary oper
kind table.

Some shuffling of the oper table to make it look better.

* More "gtlist.h" cleanup

Put all OperIsIdir opers together, fix up formatting,
move opers around to more logical places.

* Remove redundant asserts

* GTK_NOTLIR -> DBK_NOTLIR

There is not a lot of point in this being a "release"
oper kind, as it is really only useful for debug checks.

* GTK_NOCONTAIN -> DBK_NOCONTAIN

* Fix formatting...
…ns` (dotnet#63767)

* Everithing but ref

* Update ValidateOptions.cs

* Update ref

* ConfigureNamedOptions TDep is notnull

* PostConfigureOptions Tdep is notnull

* OptionsMonitor.OnChange name is notnull

* Revert non-nullable changes

* Fix invalid ref

* Failures notnull only when Failed

* FailureMessage is notnull

* Validation is nonnull

* Update OptionsValidationTests.cs

* OptionsFactory.Create name is nonnull
We require that the maximum number of prolog instructions all fit in one
instruction group. Recent changes appear to have increased the number of
instructions we are generating the prolog, leading to NOWAY assert on
Release builds and test failure on linux-arm64.

Bump up the number to avoid this problem, and leave some headroom for
possible additional needs.

Fixes dotnet#64162, dotnet#64793.
* Respect generator projects in slngen
We recently bumped the Android NDK in dotnet#64567, add a check to CMakeLists-android.txt to validate it.
Preparatory work for fixing the x64 epilog unwind problem for OSR methods.
Changes the jit guid since the PatchpointInfo data structure is altered.
)

* Use generic math in System.Numerics.Vectors (dotnet#60365)

* Add more use of the Generic Math (dotnet#60365)

* Got rid of the dynamic cast (dotnet#60365)

Co-authored-by: Tanner Gooding <[email protected]>
…roslyn-analyzers (dotnet#65068)

[main] Update dependencies from dotnet/arcade dotnet/xharness dotnet/roslyn-analyzers
…net#65231)

* Setup testing jobs, change repo to test perf repo, and added apk-name parameter to pre.py for mobile scenarios.

* Update dotnet install type to be daily. This matches the link for installing net 6.0 in the maui contributing dev requirements list.

* Try lowercase package name.

* List post build folder stuff.

* Add android output format as apk.

* Disable package replacement to see if that is the issue location.

* Revert "Disable package replacement to see if that is the issue location."

This reverts commit 31cffe7.

* Always try to publish the binlog files.

* Comment out the props file to see if that fixes the AOT error.

* Readd props references.

* Try building without AOT.

* Disable Maui Android Scenarios so that at least iOS on main are being build and measured for SOD.

* Forgot to remove the uploading of the Android APP.

* Disable download attempt of the MauiAndroidApp.

* Reenable full perf run.

* Set the setup branch back to main.

* Undisable MauiScenario.targets file. It semi-causes the AOT issue but should still be enabled for other working builds.

* Add reason for the commented out sections.
@joshpeterson
Copy link
Author

It looks like the build failed on Windows. Let's skip this one and wait until next week.

@joshpeterson joshpeterson deleted the bot-upstream-main-merge-2022-02-12 branch March 10, 2022 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.