platform/upstream/dotnet/runtime.git
3 years ago[main] Update dependencies from 6 repositories (#55395)
dotnet-maestro[bot] [Tue, 13 Jul 2021 02:40:24 +0000 (21:40 -0500)]
[main] Update dependencies from 6 repositories (#55395)

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

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.Windows.Extensions.TestData
 From Version 6.0.0-beta.21356.1 -> To Version 6.0.0-beta.21358.1

* Update dependencies from https://github.com/mono/linker build 20210708.3

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21357.1 -> To Version 6.0.100-preview.6.21358.3

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210709.4

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.21357.3 -> To Version 1.0.0-prerelease.21359.4

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21355.1 -> To Version 1.0.1-alpha.0.21359.1

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21355.1 -> To Version 1.0.1-alpha.0.21360.1

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210711.3

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.21357.3 -> To Version 1.0.0-prerelease.21361.3

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

Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Runtime.CompilerServices.Unsafe , System.Text.Json
 From Version 6.0.0-preview.7.21355.1 -> To Version 6.0.0-preview.7.21361.10

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21355.1 -> To Version 1.0.1-alpha.0.21361.1

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

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100
 From Version 6.0.0-preview.7.21358.1 -> To Version 6.0.0-preview.7.21362.1

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

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100
 From Version 6.0.0-preview.7.21358.1 -> To Version 6.0.0-preview.7.21362.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
3 years agoMove the "do not zero-extend setcc" optimization to lower (#53778)
SingleAccretion [Tue, 13 Jul 2021 00:38:46 +0000 (03:38 +0300)]
Move the "do not zero-extend setcc" optimization to lower (#53778)

* Strongly type StoreInd lowering

* Improve clarity of code through the use of helpers

* Move the "do not zero-extend setcc" to lowering

It is XARCH-specific and moving it eliminates questionable code
that is trying to compensate for CSE changing the store.

* Delete now unnecessary copying of the relop type

3 years ago[mono][debugger] Support debug after hot-reload (#55220)
Thays Grazia [Tue, 13 Jul 2021 00:27:30 +0000 (21:27 -0300)]
[mono][debugger] Support debug after hot-reload  (#55220)

* Add test case for debug after hot reload.

* Implementing debug after hot reload, on runtime side, and on client side for wasm.

* Reuse some code.

* Remove unrelated comment.

* Reuse code.

* Refactor new code.

* Fix log.

* Apply suggestions from code review

Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
* Fixing hot reload without debug information.

* replacing spaces with tabs.

* Fixing CI.

Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>
3 years agoChange RandomAccess.Write* methods to be void-returning (#55490)
Stephen Toub [Mon, 12 Jul 2021 23:39:21 +0000 (19:39 -0400)]
Change RandomAccess.Write* methods to be void-returning (#55490)

3 years agoImprove perf of Utf8Parser.TryParse(out [u]long, default) (#52423)
Levi Broderick [Mon, 12 Jul 2021 23:14:26 +0000 (16:14 -0700)]
Improve perf of Utf8Parser.TryParse(out [u]long, default) (#52423)

3 years agoFix more alloc-dealloc mismatches and use-after-scopes (#55420)
Jeremy Koritzinsky [Mon, 12 Jul 2021 22:55:26 +0000 (15:55 -0700)]
Fix more alloc-dealloc mismatches and use-after-scopes (#55420)

* Fix another dynamically-sized allocation to use new/delete instead of the mismatched new[]/delete.

* Fix use-after-scope

* Fix another alloc-dealloc mismatch

* Update src/coreclr/vm/threadstatics.cpp

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Use standard size_t instead of custom SIZE_T typedef.

* Fix formatting.

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years agoLook up the ICustomMarshaler implementation methods based on runtime type (#55439)
Jeremy Koritzinsky [Mon, 12 Jul 2021 21:47:52 +0000 (14:47 -0700)]
Look up the ICustomMarshaler implementation methods based on runtime type (#55439)

3 years agoFile.Unix: Replace: increase Windows compatibility (#50234)
Tom Deseyn [Mon, 12 Jul 2021 21:22:17 +0000 (23:22 +0200)]
File.Unix: Replace: increase Windows compatibility (#50234)

* File.Unix: Replace: increase Windows compatibility

- When source and destination are not a file throw UnauthorizedAccessException.
- When source and destination are the same file throw IOException.

* Include paths in exception message

Co-authored-by: Jeff Handley <jeff.handley@microsoft.com>
3 years agoExpose the platform directly for apple products (#55381)
Larry Ewing [Mon, 12 Jul 2021 20:37:40 +0000 (15:37 -0500)]
Expose the platform directly for apple products (#55381)

Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
3 years agoPrevent AV in processinfo2 while suspended (#55379)
John Salem [Mon, 12 Jul 2021 20:02:28 +0000 (13:02 -0700)]
Prevent AV in processinfo2 while suspended (#55379)

3 years agoImplement part of SslCertificateTrust (#55104)
Tomas Weinfurt [Mon, 12 Jul 2021 19:57:21 +0000 (12:57 -0700)]
Implement part of SslCertificateTrust  (#55104)

* snatpshot

* snapshot

* add csproj'

* update

* more ckeanup

* more cleanup

* feedback from review

* fix mail tests

* feedabck from review

* feedback from review

* make constructor private

3 years agoRemove NuGet config in HTTP stress (#55519)
Juan Hoyos [Mon, 12 Jul 2021 19:24:17 +0000 (12:24 -0700)]
Remove NuGet config in HTTP stress (#55519)

3 years ago[mono] Add some WASM AOT documention. (#55498)
Zoltan Varga [Mon, 12 Jul 2021 17:59:13 +0000 (13:59 -0400)]
[mono] Add some WASM AOT documention. (#55498)

3 years agoUse inline Vector{128|256}.Create for constants (#54827)
Günther Foidl [Mon, 12 Jul 2021 16:53:50 +0000 (18:53 +0200)]
Use inline Vector{128|256}.Create for constants (#54827)

* Used VectorXYZ.Create for constants in Base64

* Used VectorXYZ.Create for constants in BitArray

* Remove conditional compilation

It's only built for NetCoreAppCurrent, so no need to special case older runtimes.

3 years ago[hot_reload] Add support for row modifications; CustomAttribute updates (#55445)
Aleksey Kliger (λgeek) [Mon, 12 Jul 2021 16:40:16 +0000 (12:40 -0400)]
[hot_reload] Add support for row modifications; CustomAttribute updates (#55445)

This fixes https://github.com/dotnet/runtime/issues/55097 - which allows us to support C# nullability analysis once again in hot reload deltas.

Specifically we allow EnC deltas to include modifications of existing rows in the CustomAttribute table as long as the Parent and Type columns stay the same (that is: a custom attribute modification that still applies to the same element - and uses the same custom attribute constructor, but may have a different value).

To support this, we add a new BaselineInfo:any_modified_rows array that keeps track for each table whether any rows have been modified (as opposed to added) by any EnC delta. When the runtime calls mono_metadata_decode_row, if there have been any deltas that modified a row in the requested table, we call hot_reload_effective_table_slow which find the latest delta that modified that row. If there have only been additions, we stop at the first delta that added the row we're looking for, if there are modifications, we look through all the deltas and return the latest one.

* [hot_reload] Add test for updating custom attribute ctor values

   Just changing the arguments of a custom attribute constructor should generate an update to the CustomAttributes table with the same parent and .ctor.  That kind of change should be allowed by Mono and CoreCLR

* [hot_reload] Allow custom attribute row modifications if Parent and Type unchanged.

   Allows updates to the constructor arguments (or property values)

* [hot_reload] Implement table lookup of modified rows

   Add a bool array on the base image to keep track of whether each table had any row modifications (as opposed to row additions) in any generation.

   If there was a modification, take the slow path in mono_image_effective_table even if the index we're looking at is in the base image.

   Update hot_reload_effective_table_slow so that if there was a modified row, we look at all the deltas to see if there's an even later update to that row.  (When there are only additions, keep same behavior as before - only look
as far as the generation that added the row we wanted to find).

   Also refine the assertion in hot_reload_relative_delta_index to properly account for EnCMap entries that correspond to modifications - in that case we might stop searching a metadata delta before we hit the end of the table if the
EnCmap entries start pointing to rows that are past the one we wanted to look up.

* Update the CustomAttributeUpdates test to check attribute value

   Check that we get the updated custom attribute string property value.

* Re-enable nullability for hot reload tests

   Mono can now deal with the custom attributes modifications that Roslyn emits

3 years agoAdd crash report to createdump for Linux Watson (#55438)
Mike McLaughlin [Mon, 12 Jul 2021 15:55:14 +0000 (08:55 -0700)]
Add crash report to createdump for Linux Watson  (#55438)

Add crash report to createdump for Linux Watson

For Linux Watson the crash report will contains the .NET Core version, the faulting process name (the module/assembly containing Main) and the managed exception info (including the exception HRESULT) and thread stack trace of the thread the caused the crash.

Add the CLRDATA_MODULE_IS_MAIN_MODULE flag to the DAC's IXCLRDataModule::GetFlags API.

Add code to get the managed method name and write it out as "method_name" (even on MacOS).

Add native frame symbolization (unmanaged_name) using dladdr.

Only get the image info once and save in a global

Demangle the stack frame symbols

Only write PH_HDR_CANARY section if neccessary

3 years ago[wasm] WebSocket is already disposed by after abort. (#55075)
Pavel Savara [Mon, 12 Jul 2021 15:43:53 +0000 (17:43 +0200)]
[wasm] WebSocket is already disposed by after abort. (#55075)

_innerWebSocket is already disposed by after abort.

3 years agoQUIC logging update (#55500)
Natalia Kondratyeva [Mon, 12 Jul 2021 15:22:18 +0000 (17:22 +0200)]
QUIC logging update (#55500)

Together with #55483 this updates all logging to use msquic handles instead of hash code - for listeners, connections and streams. The format of handle is the same as msquic one.

3 years agoEnable CA1419 (SafeHandle public parameterless ctor) (#55460)
Stephen Toub [Mon, 12 Jul 2021 14:18:04 +0000 (10:18 -0400)]
Enable CA1419 (SafeHandle public parameterless ctor) (#55460)

3 years agoFix android uninstall command and add validations (#55431)
Fan Yang [Mon, 12 Jul 2021 13:24:55 +0000 (09:24 -0400)]
Fix android uninstall command and add validations (#55431)

3 years agoExpose a global switch to disable IPV6 (#55012)
Anton Firszov [Mon, 12 Jul 2021 12:24:54 +0000 (14:24 +0200)]
Expose a global switch to disable IPV6 (#55012)

Fixes #47583. Resolves #52287, #54807 and similar issues, without changing customer application code.

Introduces an AppContext switch `System.Net.DisableIPv6` and environment variable `DOTNET_SYSTEM_NET_DISABLEIPV6` to emulate the lack of OS-level IPv6 support. This is useful to workaround dual-stack socket issues when the OS reports support of IPv6, but some other underlying infrastructure element (typically VPN) doesn't function well with IPv6 request.

For consistency, this switch also impacts NameResolution and Ping, not only Sockets.

3 years agoMinor QUIC test improvements (#55494)
Geoff Kizer [Mon, 12 Jul 2021 09:06:32 +0000 (02:06 -0700)]
Minor QUIC test improvements (#55494)

* reduce timeout in SetListenerTimeoutWorksWithSmallTimeout

* replace AssertArrayEqual with AssertExtensions.SequenceEqual

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
3 years agoUpdate tag references to dotnet-buildtools/prereqs (#55426)
Matt Thalman [Mon, 12 Jul 2021 08:30:10 +0000 (01:30 -0700)]
Update tag references to dotnet-buildtools/prereqs (#55426)

Updating Docker image tag references that are obsolete and replaced by references to mcr.microsoft.com/dotnet-buildtools/prereqs. See dotnet/dotnet-docker#2848.

3 years agoremove waiting on start event (#55442)
Geoff Kizer [Mon, 12 Jul 2021 05:29:04 +0000 (22:29 -0700)]
remove waiting on start event (#55442)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
3 years agomake quic tracing easir to correlate with MsQuic (#55483)
Tomas Weinfurt [Mon, 12 Jul 2021 03:32:52 +0000 (20:32 -0700)]
make quic tracing easir to correlate with MsQuic (#55483)

3 years agouse updated fedora image with msquic (#55424)
Tomas Weinfurt [Mon, 12 Jul 2021 03:17:19 +0000 (20:17 -0700)]
use updated fedora image with msquic (#55424)

* use updated fedora image with msquic

* fix ping

3 years agodisable Quic AcceptStream_ConnectionAborted_ByClient_Throws on Linux (#55481)
Tomas Weinfurt [Mon, 12 Jul 2021 02:27:46 +0000 (19:27 -0700)]
disable Quic AcceptStream_ConnectionAborted_ByClient_Throws on Linux (#55481)

3 years agoFix mono CORDBI build (#55482)
Juan Hoyos [Mon, 12 Jul 2021 01:59:57 +0000 (18:59 -0700)]
Fix mono CORDBI build (#55482)

3 years agoUse init rather than ms extension syntax (#55475)
Adeel Mujahid [Mon, 12 Jul 2021 01:07:13 +0000 (04:07 +0300)]
Use init rather than ms extension syntax (#55475)

3 years agoImprove MetricsEventSource error handling (#55466)
Noah Falk [Mon, 12 Jul 2021 00:30:04 +0000 (17:30 -0700)]
Improve MetricsEventSource error handling (#55466)

Previously exceptions that escaped user provided callbacks for observable instruments would have terminated all further metric collection. Now those exceptions are caught and reported, only potentially interfering with other observable instruments in the same collection interval.

3 years ago[mono] Improve aot code generation for isinst for sealed classes. (#55450)
Zoltan Varga [Sun, 11 Jul 2021 19:59:37 +0000 (15:59 -0400)]
[mono] Improve aot code generation for isinst for sealed classes. (#55450)

Generate the same code as in the non-aot case, i.e. compare
the vtable with a constant.

3 years agoMove PosixSignalRegistration to corelib (#55433)
Stephen Toub [Sun, 11 Jul 2021 18:13:35 +0000 (14:13 -0400)]
Move PosixSignalRegistration to corelib (#55433)

* Move PosixSignalRegistration to corelib

* Fix trimming issue on mobile targets

3 years agoAdding more tests for the generic math feature (#55377)
Tanner Gooding [Sun, 11 Jul 2021 15:24:08 +0000 (08:24 -0700)]
Adding more tests for the generic math feature (#55377)

* Fixing some issues in the generic math implementation

* Adding generic math tests for integer types

3 years agoW^X support (#54954)
Jan Vorlicek [Sun, 11 Jul 2021 14:46:53 +0000 (16:46 +0200)]
W^X support (#54954)

* W^X support

This change is the last part of enabling the W^X support. It adds the
actual executable allocator that handles all double mapped memory
allocations and creating the writeable mappings.

The platform specific functionality is placed in a new minipal that is
going to be a basis for future removal of Windows APIs usage from the
native runtime.

The last state of the change was tested on all the platforms that we
support using coreclr pri 1 tests with both the W^X enabled and disabled
using the COMPlus_EnableWriteXorExecute variable.

The debugger changes were tested using the managed debugger testing
suite on Windows x64, x86 and on Apple Silicon so far. Further testing
on other platforms is in progress.

* Replace LeafLock in UMEntryThunkFreeList by a new lock

* Also allocate LoaderHeapFreeBlock from regular heap.

* Set the W^X default to disabled

3 years agoRelax SystemTrustCertificateWithCustomRootTrust test
Jeremy Barton [Sun, 11 Jul 2021 04:04:54 +0000 (21:04 -0700)]
Relax SystemTrustCertificateWithCustomRootTrust test

3 years agoFixing MetricEventSource tests (#55385)
Noah Falk [Sun, 11 Jul 2021 00:10:48 +0000 (17:10 -0700)]
Fixing MetricEventSource tests (#55385)

* Fixing MetricEventSource tests

I've seen two recent non-deterministic failures:
1. After starting the EventListener there is a delay of one collection
interval (previously 0.3 seconds) where we expect calls to counter.Add
and Histogram.Record() to update stats. On a fast machine this code
would run in under a millisecond but in some test runs it still wasn't
happening fast enough.
2. We were seeing error events from a previous test get observed in a
later test because session id was being ignored for error events.

Fixes:
1. Added an initial collection interval where no counter APIs will be
invoked and the test will delay up to 60 seconds waiting for this.
Hopefully this delay makes it more likely that the Add/Record APIs
are ready to execute promptly once the 2nd interval begins. I
also increased the intervals to 1 second. If that still isn't sufficient
we can either further increase the collection intervals or disable the
tests. I also moved these tests to outerloop because
they are slow and noisy on the console, but it may have a side
benefit lessening the impact if there are future timing related failures.
2. Tightened up the session id matching so only error events with
empty id or the expected id are allowed.

3 years agoPropagators Support (#55419)
Tarek Mahmoud Sayed [Sat, 10 Jul 2021 22:55:27 +0000 (15:55 -0700)]
Propagators Support (#55419)

3 years agoSupport filtering ObjectAllocated callback for pinned object heap allocation only...
Yauk [Sat, 10 Jul 2021 22:23:25 +0000 (15:23 -0700)]
Support filtering ObjectAllocated callback for pinned object heap allocation only (#55448)

* Prototype allocation profiler

* Add callback for pinned objects

* Fix the build issue caused by corprof.idl change

* Improve the test

* Misc changes for the tests

Co-authored-by: Andrew Au <andrewau@microsoft.com>
Co-authored-by: Yauk Jia <yaujia@microsoft.com>
3 years agoDisable tests blocking CI (#55446)
Juan Hoyos [Sat, 10 Jul 2021 20:01:37 +0000 (13:01 -0700)]
Disable tests blocking CI (#55446)

* Turn off test FlushAsync_ThrowsIfWriterReaderWithException
* Turn off System.Net.NameResolution.Tests.GetHost* tests for SLES

3 years agouse O_TRUNC when file locking is disabled, avoid ftruncate syscall (#55456)
Adam Sitnik [Sat, 10 Jul 2021 18:38:44 +0000 (20:38 +0200)]
use O_TRUNC when file locking is disabled, avoid ftruncate syscall  (#55456)

* add test project with file locking disabled via config file

* use O_TRUNC when file locking is disabled, avoid ftruncate syscall

* Apply suggestions from code review

Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoFix erroneous "globalizationMode" local naming in PlatformDetection (#55457)
Stephen Toub [Sat, 10 Jul 2021 17:49:58 +0000 (13:49 -0400)]
Fix erroneous "globalizationMode" local naming in PlatformDetection (#55457)

3 years agoadd newly added label (#55462)
Jeff Schwartz [Sat, 10 Jul 2021 17:29:01 +0000 (10:29 -0700)]
add newly added label (#55462)

3 years agoImprove loop cloning, with debugging improvements (#55299)
Bruce Forstall [Sat, 10 Jul 2021 17:17:54 +0000 (10:17 -0700)]
Improve loop cloning, with debugging improvements (#55299)

When loop cloning was creating cloning conditions, it was creating unnecessary bounds checks in some multi-dimensional array index cases. When creating a set of cloning conditions, first a null check is done, then an array length check is done, etc. Thus, the array length expression itself won't fault because we've already done a null check. And a subsequent array index expression won't fault (or need a bounds check) because we've already checked the array length (i.e., we've done a manual bounds check). So, stop creating the unnecessary bounds checks, and mark the appropriate instructions as non-faulting by clearing the GTF_EXCEPT bit.

Note that I did not turn on the code to clear GTF_EXCEPT for array length checks because it leads to negative downstream effects in CSE. Namely, there end up being array length expressions that are identical except for the exception bit. When CSE sees this, it gives up on creating a CSE, which leads to regressions in some cases where we don't CSE the array length expression.

Also, for multi-dimension jagged arrays, when optimizing the fast path, we were not removing as many bounds checks as we could. In particular, we weren't removing outer bounds checks, only inner ones. Add code to handle all the bounds checks.

There are some runtime improvements (measured via BenchmarkDotNet on the JIT microbenchmarks), but also some regressions, due, as far as I can tell, to the Intel jcc erratum performance impact. In particular, benchmark ludcmp shows up to a 9% regression due to a `jae` instruction in the hot loop now crossing a 32-byte boundary due to code changes earlier in the function affecting instruction alignment. The hot loop itself is exactly the same (module register allocation differences). As there is nothing that can be done (without mitigating the jcc erratum) -- it's "bad luck".

In addition to those functional changes, there are a number of debugging-related improvements:
1. Loop cloning: (a) Improved dumping of cloning conditions and other things, (b) remove an unnecessary member to `LcOptInfo`, (c) convert the `LoopCloneContext` raw arrays to `jitstd::vector` for easier debugging, as clrjit.natvis can be taught to understand them.
2. CSE improvements: (a) Add `getCSEAvailBit` and `getCSEAvailCrossCallBit` functions to avoid multiple hard-codings of these expresions, (b) stop printing all the details of the CSE dataflow to JitDump; just print the result, (c) add `optPrintCSEDataFlowSet` function to print the CSE dataflow set in symbolic form, not just the raw bits, (d) added `FMT_CSE` string to use for formatting CSE candidates, (e) added `optOptimizeCSEs` to the phase structure for JitDump output, (f) remove unused `optCSECandidateTotal` (remnant of Valnum + lexical CSE)
3. Alignment: (a) Moved printing of alignment boundaries from `emitIssue1Instr` to `emitEndCodeGen`, to avoid the possibility of reading an instruction beyond the basic block. Also, improved the Intel jcc erratum criteria calculations, (b) Change `align` instructions of zero size to have a zero PerfScore throughput number (since they don't generate code), (c) Add `COMPlus_JitDasmWithAlignmentBoundaries` to force disasm output to display alignment boundaries.
4. Codegen / Emitter: (a) Added `emitLabelString` function for constructing a string to display for a bound emitter label. Created `emitPrintLabel` to directly print the label, (b) Add `genInsDisplayName` function to create a string for use when outputting an instruction. For xarch, this prepends the "v" for SIMD instructions, as necessary. This is preferable to calling the raw `genInsName` function, (c) For each insGroup, created a debug-only list of basic blocks that contributed code to that insGroup. Display this set of blocks in the JitDump disasm output, with block ID. This is useful for looking at an IG, and finding the blocks in a .dot flow graph visualization that contributed to it, (d) remove unused `instDisp`
5. Clrjit.natvis: (a) add support for `jitstd::vector`, `JitExpandArray<T>`, `JitExpandArrayStack<T>`, `LcOptInfo`.
6. Misc: (a) When compacting an empty loop preheader block with a subsequent block, clear the preheader flag.

## benchmarks.run.windows.x64.checked.mch:

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 25504
Total bytes of diff: 25092
Total bytes of delta: -412 (-1.62% of base)
Total relative delta: -0.31
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file improvements (bytes):
         -92 : 14861.dasm (-2.57% of base)
         -88 : 2430.dasm (-0.77% of base)
         -68 : 12182.dasm (-3.82% of base)
         -48 : 24678.dasm (-1.61% of base)
         -31 : 21598.dasm (-5.13% of base)
         -26 : 21601.dasm (-4.57% of base)
         -21 : 25069.dasm (-7.14% of base)
         -16 : 14859.dasm (-1.38% of base)
         -11 : 14862.dasm (-1.35% of base)
          -6 : 21600.dasm (-1.83% of base)
          -5 : 25065.dasm (-0.58% of base)

11 total files with Code Size differences (11 improved, 0 regressed), 1 unchanged.

Top method improvements (bytes):
         -92 (-2.57% of base) : 14861.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
         -88 (-0.77% of base) : 2430.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
         -68 (-3.82% of base) : 12182.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
         -48 (-1.61% of base) : 24678.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -31 (-5.13% of base) : 21598.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -26 (-4.57% of base) : 21601.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -21 (-7.14% of base) : 25069.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -16 (-1.38% of base) : 14859.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -11 (-1.35% of base) : 14862.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
          -6 (-1.83% of base) : 21600.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
          -5 (-0.58% of base) : 25065.dasm - Benchstone.BenchF.InProd:Test():bool:this

Top method improvements (percentages):
         -21 (-7.14% of base) : 25069.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -31 (-5.13% of base) : 21598.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -26 (-4.57% of base) : 21601.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -68 (-3.82% of base) : 12182.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
         -92 (-2.57% of base) : 14861.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
          -6 (-1.83% of base) : 21600.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
         -48 (-1.61% of base) : 24678.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -16 (-1.38% of base) : 14859.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -11 (-1.35% of base) : 14862.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
         -88 (-0.77% of base) : 2430.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
          -5 (-0.58% of base) : 25065.dasm - Benchstone.BenchF.InProd:Test():bool:this

11 total methods with Code Size differences (11 improved, 0 regressed), 1 unchanged.

```

</details>

--------------------------------------------------------------------------------

```

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 38374.96
Total PerfScoreUnits of diff: 37914.07000000001
Total PerfScoreUnits of delta: -460.89 (-1.20% of base)
Total relative delta: -0.12
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file improvements (PerfScoreUnits):
     -220.67 : 24678.dasm (-1.74% of base)
      -99.27 : 14861.dasm (-2.09% of base)
      -66.30 : 21598.dasm (-1.41% of base)
      -18.73 : 2430.dasm (-0.28% of base)
      -18.40 : 21601.dasm (-1.37% of base)
       -9.73 : 25065.dasm (-0.56% of base)
       -9.05 : 14859.dasm (-0.77% of base)
       -5.51 : 21600.dasm (-0.77% of base)
       -4.15 : 12182.dasm (-0.17% of base)
       -3.92 : 14860.dasm (-0.32% of base)
       -3.46 : 25069.dasm (-2.31% of base)
       -1.70 : 14862.dasm (-0.20% of base)

12 total files with Perf Score differences (12 improved, 0 regressed), 0 unchanged.

Top method improvements (PerfScoreUnits):
     -220.67 (-1.74% of base) : 24678.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
      -99.27 (-2.09% of base) : 14861.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
      -66.30 (-1.41% of base) : 21598.dasm - Benchstone.BenchI.Array2:Bench(int):bool
      -18.73 (-0.28% of base) : 2430.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
      -18.40 (-1.37% of base) : 21601.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
       -9.73 (-0.56% of base) : 25065.dasm - Benchstone.BenchF.InProd:Test():bool:this
       -9.05 (-0.77% of base) : 14859.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
       -5.51 (-0.77% of base) : 21600.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
       -4.15 (-0.17% of base) : 12182.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
       -3.92 (-0.32% of base) : 14860.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
       -3.46 (-2.31% of base) : 25069.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
       -1.70 (-0.20% of base) : 14862.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])

Top method improvements (percentages):
       -3.46 (-2.31% of base) : 25069.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
      -99.27 (-2.09% of base) : 14861.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
     -220.67 (-1.74% of base) : 24678.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
      -66.30 (-1.41% of base) : 21598.dasm - Benchstone.BenchI.Array2:Bench(int):bool
      -18.40 (-1.37% of base) : 21601.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
       -9.05 (-0.77% of base) : 14859.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
       -5.51 (-0.77% of base) : 21600.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
       -9.73 (-0.56% of base) : 25065.dasm - Benchstone.BenchF.InProd:Test():bool:this
       -3.92 (-0.32% of base) : 14860.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
      -18.73 (-0.28% of base) : 2430.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
       -1.70 (-0.20% of base) : 14862.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
       -4.15 (-0.17% of base) : 12182.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])

12 total methods with Perf Score differences (12 improved, 0 regressed), 0 unchanged.

```

</details>

--------------------------------------------------------------------------------

## coreclr_tests.pmi.windows.x64.checked.mch:

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 25430
Total bytes of diff: 24994
Total bytes of delta: -436 (-1.71% of base)
Total relative delta: -0.42
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file improvements (bytes):
         -92 : 194668.dasm (-2.57% of base)
         -68 : 194589.dasm (-3.82% of base)
         -48 : 248565.dasm (-1.61% of base)
         -32 : 249053.dasm (-3.58% of base)
         -31 : 251012.dasm (-5.13% of base)
         -26 : 251011.dasm (-4.57% of base)
         -19 : 248561.dasm (-6.76% of base)
         -16 : 194667.dasm (-1.38% of base)
         -15 : 252241.dasm (-0.72% of base)
         -12 : 252242.dasm (-0.81% of base)
         -11 : 194669.dasm (-1.35% of base)
          -9 : 246308.dasm (-1.06% of base)
          -9 : 246307.dasm (-1.06% of base)
          -9 : 246245.dasm (-1.06% of base)
          -9 : 246246.dasm (-1.06% of base)
          -6 : 228622.dasm (-0.77% of base)
          -6 : 251010.dasm (-1.83% of base)
          -5 : 248557.dasm (-0.61% of base)
          -4 : 249054.dasm (-0.50% of base)
          -4 : 249052.dasm (-0.47% of base)

22 total files with Code Size differences (22 improved, 0 regressed), 1 unchanged.

Top method improvements (bytes):
         -92 (-2.57% of base) : 194668.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
         -68 (-3.82% of base) : 194589.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
         -48 (-1.61% of base) : 248565.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -32 (-3.58% of base) : 249053.dasm - SimpleArray_01.Test:BadMatrixMul2()
         -31 (-5.13% of base) : 251012.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -26 (-4.57% of base) : 251011.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -19 (-6.76% of base) : 248561.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -16 (-1.38% of base) : 194667.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -15 (-0.72% of base) : 252241.dasm - Complex_Array_Test:Main(System.String[]):int
         -12 (-0.81% of base) : 252242.dasm - Simple_Array_Test:Main(System.String[]):int
         -11 (-1.35% of base) : 194669.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
          -9 (-1.06% of base) : 246308.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
          -9 (-1.06% of base) : 246307.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
          -9 (-1.06% of base) : 246245.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
          -9 (-1.06% of base) : 246246.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
          -6 (-0.77% of base) : 228622.dasm - SciMark2.LU:solve(System.Double[][],System.Int32[],System.Double[])
          -6 (-1.83% of base) : 251010.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
          -5 (-0.61% of base) : 248557.dasm - Benchstone.BenchF.InProd:Bench():bool
          -4 (-0.50% of base) : 249054.dasm - SimpleArray_01.Test:BadMatrixMul3()
          -4 (-0.47% of base) : 249052.dasm - SimpleArray_01.Test:BadMatrixMul1()

Top method improvements (percentages):
         -19 (-6.76% of base) : 248561.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -31 (-5.13% of base) : 251012.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -26 (-4.57% of base) : 251011.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -68 (-3.82% of base) : 194589.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
         -32 (-3.58% of base) : 249053.dasm - SimpleArray_01.Test:BadMatrixMul2()
         -92 (-2.57% of base) : 194668.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
          -6 (-1.83% of base) : 251010.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
         -48 (-1.61% of base) : 248565.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -16 (-1.38% of base) : 194667.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -11 (-1.35% of base) : 194669.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
          -3 (-1.11% of base) : 249057.dasm - SimpleArray_01.Test:Test2()
          -9 (-1.06% of base) : 246308.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
          -9 (-1.06% of base) : 246307.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
          -9 (-1.06% of base) : 246245.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
          -9 (-1.06% of base) : 246246.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
         -12 (-0.81% of base) : 252242.dasm - Simple_Array_Test:Main(System.String[]):int
          -6 (-0.77% of base) : 228622.dasm - SciMark2.LU:solve(System.Double[][],System.Int32[],System.Double[])
         -15 (-0.72% of base) : 252241.dasm - Complex_Array_Test:Main(System.String[]):int
          -5 (-0.61% of base) : 248557.dasm - Benchstone.BenchF.InProd:Bench():bool
          -4 (-0.50% of base) : 249054.dasm - SimpleArray_01.Test:BadMatrixMul3()

22 total methods with Code Size differences (22 improved, 0 regressed), 1 unchanged.

```

</details>

--------------------------------------------------------------------------------

```

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 161610.68999999997
Total PerfScoreUnits of diff: 160290.10999999996
Total PerfScoreUnits of delta: -1320.58 (-0.82% of base)
Total relative delta: -0.20
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file improvements (PerfScoreUnits):
     -639.25 : 252241.dasm (-0.97% of base)
     -220.67 : 248565.dasm (-1.74% of base)
     -132.59 : 252242.dasm (-0.26% of base)
      -99.27 : 194668.dasm (-2.09% of base)
      -66.30 : 251012.dasm (-1.41% of base)
      -62.20 : 249053.dasm (-2.74% of base)
      -18.40 : 251011.dasm (-1.37% of base)
       -9.33 : 248557.dasm (-0.54% of base)
       -9.05 : 194667.dasm (-0.77% of base)
       -8.32 : 249054.dasm (-0.42% of base)
       -5.85 : 246308.dasm (-0.52% of base)
       -5.85 : 246307.dasm (-0.52% of base)
       -5.85 : 246245.dasm (-0.52% of base)
       -5.85 : 246246.dasm (-0.52% of base)
       -5.51 : 251010.dasm (-0.77% of base)
       -4.36 : 249052.dasm (-0.22% of base)
       -4.16 : 253363.dasm (-0.21% of base)
       -4.15 : 194589.dasm (-0.17% of base)
       -3.92 : 194666.dasm (-0.32% of base)
       -3.41 : 248561.dasm (-2.29% of base)

23 total files with Perf Score differences (23 improved, 0 regressed), 0 unchanged.

Top method improvements (PerfScoreUnits):
     -639.25 (-0.97% of base) : 252241.dasm - Complex_Array_Test:Main(System.String[]):int
     -220.67 (-1.74% of base) : 248565.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
     -132.59 (-0.26% of base) : 252242.dasm - Simple_Array_Test:Main(System.String[]):int
      -99.27 (-2.09% of base) : 194668.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
      -66.30 (-1.41% of base) : 251012.dasm - Benchstone.BenchI.Array2:Bench(int):bool
      -62.20 (-2.74% of base) : 249053.dasm - SimpleArray_01.Test:BadMatrixMul2()
      -18.40 (-1.37% of base) : 251011.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
       -9.33 (-0.54% of base) : 248557.dasm - Benchstone.BenchF.InProd:Bench():bool
       -9.05 (-0.77% of base) : 194667.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
       -8.32 (-0.42% of base) : 249054.dasm - SimpleArray_01.Test:BadMatrixMul3()
       -5.85 (-0.52% of base) : 246308.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
       -5.85 (-0.52% of base) : 246307.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
       -5.85 (-0.52% of base) : 246245.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
       -5.85 (-0.52% of base) : 246246.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
       -5.51 (-0.77% of base) : 251010.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
       -4.36 (-0.22% of base) : 249052.dasm - SimpleArray_01.Test:BadMatrixMul1()
       -4.16 (-0.21% of base) : 253363.dasm - MatrixMul.Test:MatrixMul()
       -4.15 (-0.17% of base) : 194589.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
       -3.92 (-0.32% of base) : 194666.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
       -3.41 (-2.29% of base) : 248561.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)

Top method improvements (percentages):
      -62.20 (-2.74% of base) : 249053.dasm - SimpleArray_01.Test:BadMatrixMul2()
       -3.41 (-2.29% of base) : 248561.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
      -99.27 (-2.09% of base) : 194668.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
     -220.67 (-1.74% of base) : 248565.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
       -2.70 (-1.71% of base) : 249057.dasm - SimpleArray_01.Test:Test2()
      -66.30 (-1.41% of base) : 251012.dasm - Benchstone.BenchI.Array2:Bench(int):bool
      -18.40 (-1.37% of base) : 251011.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
     -639.25 (-0.97% of base) : 252241.dasm - Complex_Array_Test:Main(System.String[]):int
       -9.05 (-0.77% of base) : 194667.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
       -5.51 (-0.77% of base) : 251010.dasm - Benchstone.BenchI.Array2:Initialize(System.Int32[][][])
       -9.33 (-0.54% of base) : 248557.dasm - Benchstone.BenchF.InProd:Bench():bool
       -5.85 (-0.52% of base) : 246308.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
       -5.85 (-0.52% of base) : 246307.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
       -5.85 (-0.52% of base) : 246245.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagAry(System.Object[][][],int,int):this
       -5.85 (-0.52% of base) : 246246.dasm - DefaultNamespace.MulDimJagAry:SetThreeDimJagVarAry(System.Object[][][],int,int):this
       -8.32 (-0.42% of base) : 249054.dasm - SimpleArray_01.Test:BadMatrixMul3()
       -3.92 (-0.32% of base) : 194666.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
     -132.59 (-0.26% of base) : 252242.dasm - Simple_Array_Test:Main(System.String[]):int
       -1.89 (-0.22% of base) : 228622.dasm - SciMark2.LU:solve(System.Double[][],System.Int32[],System.Double[])
       -4.36 (-0.22% of base) : 249052.dasm - SimpleArray_01.Test:BadMatrixMul1()

23 total methods with Perf Score differences (23 improved, 0 regressed), 0 unchanged.

```

</details>

--------------------------------------------------------------------------------

## libraries.crossgen2.windows.x64.checked.mch:

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 10828
Total bytes of diff: 10809
Total bytes of delta: -19 (-0.18% of base)
Total relative delta: -0.00
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file improvements (bytes):
         -19 : 72504.dasm (-0.18% of base)

1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
         -19 (-0.18% of base) : 72504.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this

Top method improvements (percentages):
         -19 (-0.18% of base) : 72504.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this

1 total methods with Code Size differences (1 improved, 0 regressed), 0 unchanged.

```

</details>

--------------------------------------------------------------------------------

```

Summary of Perf Score diffs:
(Lower is better)

Total PerfScoreUnits of base: 6597.12
Total PerfScoreUnits of diff: 6586.31
Total PerfScoreUnits of delta: -10.81 (-0.16% of base)
Total relative delta: -0.00
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file improvements (PerfScoreUnits):
      -10.81 : 72504.dasm (-0.16% of base)

1 total files with Perf Score differences (1 improved, 0 regressed), 0 unchanged.

Top method improvements (PerfScoreUnits):
      -10.81 (-0.16% of base) : 72504.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this

Top method improvements (percentages):
      -10.81 (-0.16% of base) : 72504.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this

1 total methods with Perf Score differences (1 improved, 0 regressed), 0 unchanged.

```

</details>

--------------------------------------------------------------------------------

* Increase loop cloning max allowed condition blocks

Allows inner loop of 3-nested loops (e.g., Array2 benchmark)
to be cloned.

* Clear GTF_INX_RNGCHK bit on loop cloning created index nodes

to avoid unnecessary bounds checks.

Revert max cloning condition blocks to 3; allowing more doesn't
seem to improve performance (probably too many conditions before
a not-sufficiently-executed loop, at least for the Array2 benchmark)

* Remove outer index bounds checks

* Convert loop cloning data structures to `vector` for better debugging

* Improve CSE dump output

1. "#if 0" the guts of the CSE dataflow; that's not useful to most people.
2. Add readable CSE number output to the CSE dataflow set output
3. Add FMT_CSE to commonize CSE number output.
4. Add PHASE_OPTIMIZE_VALNUM_CSES to the pre-phase output "allow list"
and stop doing its own blocks/trees output.
5. Remove unused optCSECandidateTotal
6. Add functions `getCSEAvailBit` and `getCSEAvailCrossCallBit` to avoid
hand-coding these bit calculations in multiple places, for the CSE dataflow set bits.

* Mark cloned array indexes as non-faulting

When generating loop cloning conditions, mark array index expressions
as non-faulting, as we have already null- and range-checked the array
before generating an index expression.

I also added similary code to mark array length expressions as non-faulting,
for the same reason. However, that leads to CQ losses because of downstream
CSE effects.

* Don't count zero-sized align instructions in PerfScore

* Add COMPlus_JitDasmWithAlignmentBoundaries

This outputs the alignment boundaries without requiring outputting the actual addresses.
It makes it easier to diff changes.

* Improve bounds check output

* Improve emitter label printing

Create function for printing bound emitter labels.

Also, add debug code to associate a BasicBlock with an insGroup, and
output the block number and ID with the emitter label in JitDump, so it's easier
to find where a group of generated instructions came from.

* Formatting

* Clear BBF_LOOP_PREHEADER bit when compacting empty pre-header block

* Keep track of all basic blocks that contribute code to an insGroup

* Update display of Intel jcc erratum branches in dump

For instructions or instruction sequences which match the Intel jcc
erratum criteria, note that in the alignment boundary dump.

Also, a few fixes:
1. Move the alignment boundary dumping from `emitIssue1Instr` to
`emitEndCodeGen` to avoid the possibility of reading the next instruction in
a group when there is no next instruction.
2. Create `IsJccInstruction` and `IsJmpInstruction` functions for use by the
jcc criteria detection, and fix that detection to fix a few omissions/errors.
3. Change the jcc criteria detection to be hard-coded to 32 byte boundaries
instead of assuming `compJitAlignLoopBoundary` is 32.

An example:
```
    cmp      r11d, dword ptr [rax+8]
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (cmp: 0 ; jcc erratum) 32B boundary ...............................
    jae      G_M42486_IG103
```
In this case, the `cmp` doesn't cross the boundary, it is adjacent (the zero indicates the number of bytes
of the instruction which cross the boundary), followed by the `jae` which starts after the boundary.

Indicating the jcc erratum criteria can help point out potential performance issues due to unlucky
alignment of these instructions in asm diffs.

* Display full instruction name in alignment and other messages

XArch sometimes prepends a "v" to the instructions names from the instruction
table. Add a function `genInsDisplayName` to create the full instruction name
that should be displayed, and use that in most places an instruction name will
be displayed, such as in the alignment messages, and normal disassembly. Use
this instead of the raw `genInsName`.

This could be extended to handle arm32 appending an "s", but I didn't want to
touch arm32 with this change.

* Fix build

* Code review feedback

1. Rename GTF_INX_NONFAULTING to GTF_INX_NOFAULT to increase clarity compared
to existing GTF_IND_NONFAULTING.
2. Minor cleanup in getInsDisplayName.

* Formatting

3 years ago[interp] Fix open delegates used with virtual methods of valuetypes (#55354)
Vlad Brezae [Sat, 10 Jul 2021 17:00:38 +0000 (20:00 +0300)]
[interp] Fix open delegates used with virtual methods of valuetypes (#55354)

* [interp] Fix open delegates used with virtual methods of valuetypes

We were trying to resolve the virtual method on the this pointer (which is a managed pointer and not an object). If the delegate target method is declared on a valuetype, the method does not need resolving.

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

* Re-enable tests

3 years ago[interp] Fix pinvokes with HandleRef (#55404)
Vlad Brezae [Sat, 10 Jul 2021 16:59:49 +0000 (19:59 +0300)]
[interp] Fix pinvokes with HandleRef (#55404)

The m2n wrapper marshals HandleRef structs from a vtype to intptr. The MonoMethod for a pinvoke method stores the unmarshalled signature. When locating the args on the stack during the pinvoke call we need to use the marshalled signature instead (which is saved in the code stream for the calli opcode)

3 years agoHandle a missing case in zero-extend peephole (#55129)
Jakob Botsch Nielsen [Sat, 10 Jul 2021 10:38:33 +0000 (12:38 +0200)]
Handle a missing case in zero-extend peephole (#55129)

3 years ago[wasm] Fix property name for Emscripten manifest nuget (#55444)
Ankit Jain [Sat, 10 Jul 2021 10:24:00 +0000 (06:24 -0400)]
[wasm] Fix property name for Emscripten manifest nuget (#55444)

.. this allows the version to get updated in `eng/Versions.props` also,
when updates flow in.

- And update the version to match Version.Details.xml

3 years ago[mono] Remove one more reference to MONO_CORLIB_VERSION. (#55345)
Zoltan Varga [Sat, 10 Jul 2021 09:02:38 +0000 (05:02 -0400)]
[mono] Remove one more reference to MONO_CORLIB_VERSION. (#55345)

3 years agoSpill single-def variable at definition to avoid further spilling (#54345)
Kunal Pathak [Sat, 10 Jul 2021 06:22:06 +0000 (23:22 -0700)]
Spill single-def variable at definition to avoid further spilling (#54345)

* Print single-def

* Rename lvEhWriteThruCandidate->lvSingleDefRegCandidate, introduce isSingleDef

* Introduce singleDefSpillAfter

If a single-def variable is decided to get spilled in its lifetime, then
spill it at the firstRefPosition RefTypeDef so the value of the variable
is always valid on the stack. Going forward, no more spills will be needed
for such variable or no more resolutions (reg to stack) will be needed for
such single-def variables.

* jit format

* some fixes

* wip

* Add check of isSingleDef in validateInterval()

* Make isSingleDef during buildIntervals

* minor fix in lclvars.cpp

* some fixes after self CR

* Updated some comments

* Remove lvSpillAtSingleDef from some asserts

* Use singleDefSpill information in getWeight()

* Remove lvSpillAtSingleDef from some more checks

* Mark lvSpillAtSingleDef whenever refPosition->singleDefSpill==true

* Add TODO for SingleDefVarCandidate

* Some notes on setting singleDefSpill

* jit format

* review feedback

* review comments

3 years agoILLink annotation related to ISerializable and IBindingListView in System.Data.Common...
Krzysztof Wicher [Sat, 10 Jul 2021 04:57:01 +0000 (06:57 +0200)]
ILLink annotation related to ISerializable and IBindingListView in System.Data.Common (#55394)

3 years agoFix the daily build links in docs (#55443)
Jeff Handley [Sat, 10 Jul 2021 02:32:23 +0000 (19:32 -0700)]
Fix the daily build links in docs (#55443)

* Fix the daily build links in docs

* Update the NuGet feed referenced

3 years agoRe-enable Windows_ZipWithInvalidFileNames tests (#55434)
Eric Erhardt [Sat, 10 Jul 2021 02:03:04 +0000 (21:03 -0500)]
Re-enable Windows_ZipWithInvalidFileNames tests (#55434)

Since we have shipped for 3 years with the current behavior, re-enabling the test so it ensures the current behavior going forward. Extracting .zip files with invalid file names throw an IOException with a message "The filename, directory name, or volume label syntax is incorrect.".

Contributes to #25099

3 years agoUpdate wasm workload name (#55413)
Larry Ewing [Sat, 10 Jul 2021 01:10:10 +0000 (20:10 -0500)]
Update wasm workload name (#55413)

* Update wasm workload name

* Remove redirect-to it is not implmented yet

3 years agodisable failing quic test (#55440)
Tomas Weinfurt [Sat, 10 Jul 2021 00:35:25 +0000 (17:35 -0700)]
disable failing quic test (#55440)

3 years agoRemove Uri scheme validation from HttpRequestMessage (#55035)
Miha Zupan [Sat, 10 Jul 2021 00:07:16 +0000 (17:07 -0700)]
Remove Uri scheme validation from HttpRequestMessage (#55035)

* Remove Uri scheme validation from HttpRequestMessage

* PR feedback

Move HttpUtilities to SocketsHttpHandler

* Add request scheme check to WinHttpHandler

* Skip .NET 6 specific WinHttpHandler test on Framework

* Update InteropServices.JavaScript HttpRequestMessage test

* Guard HttpMessageInvoker from calling HttpTelemetry with invalid Uris

* PR feedback

3 years agoNullable annotations for the remainder of System.Data.Common (#55409)
Krzysztof Wicher [Sat, 10 Jul 2021 00:02:38 +0000 (02:02 +0200)]
Nullable annotations for the remainder of System.Data.Common (#55409)

3 years agoFix one-shot CBC documentation (#55432)
Kevin Jones [Sat, 10 Jul 2021 00:01:05 +0000 (20:01 -0400)]
Fix one-shot CBC documentation (#55432)

* Fix one-shot CBC documentation.

The CBC one-shot documentation made a few references to the ECB
one shots. This removes them and uses consistent language that is
used on the other one-shot methods.

* Change ECB to be consistent

3 years agoBig-endian fix: ApplyMask in System.Net.WebSockets.ManagedWebSocket (#55422)
Ulrich Weigand [Sat, 10 Jul 2021 00:00:20 +0000 (02:00 +0200)]
Big-endian fix: ApplyMask in System.Net.WebSockets.ManagedWebSocket (#55422)

* Fix mask shifting logic for big-endian systems

3 years agoAdd possibility to write ANSI color escape codes when the console output is redirecte...
Cédric Luthi [Fri, 9 Jul 2021 23:56:54 +0000 (01:56 +0200)]
Add possibility to write ANSI color escape codes when the console output is redirected (#47935)

* Add possibility to write ANSI color escape codes when the console output is redirected

This  introduces an opt-in mechanism to allow writing ANSI color escape codes even when the console output is redirected.

To enable ANSI color codes, the `DOTNET_CONSOLE_ANSI_COLOR` environment variable must be set to `true` (case insensitive) or `1`.

Fixes #33980

* Fix ANSI color env var handling

Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoFix File.Copy with procfs (#55358)
Stephen Toub [Fri, 9 Jul 2021 23:56:02 +0000 (19:56 -0400)]
Fix File.Copy with procfs (#55358)

3 years agoUse RandomAccess/File.OpenHandle in a few more places (#55150)
Stephen Toub [Fri, 9 Jul 2021 23:47:40 +0000 (19:47 -0400)]
Use RandomAccess/File.OpenHandle in a few more places (#55150)

Places where we don't need to pay for the FileStream and the access pattern is easily replaced.

3 years ago[interp] Add a few fixes for conversion opcodes (#55418)
Vlad Brezae [Fri, 9 Jul 2021 22:05:11 +0000 (01:05 +0300)]
[interp] Add a few fixes for conversion opcodes (#55418)

* [interp] Add missing conversion from r4 to uint

* [interp] Remove duplicated and inconsistent code for conv.ovf.i.un and conv.ovf.u.un

Just use the existing path for the i4/i8/u4/u8 opcodes.

3 years agoDisallow TypedReference and byref types in MakeArrayType (#55403)
Aleksey Kliger (λgeek) [Fri, 9 Jul 2021 21:55:31 +0000 (17:55 -0400)]
Disallow TypedReference and byref types in MakeArrayType (#55403)

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

3 years ago[Mono] Add Mono Profiler events into EventPipe. (#55264)
Johan Lorensson [Fri, 9 Jul 2021 21:41:01 +0000 (23:41 +0200)]
[Mono] Add Mono Profiler events into EventPipe. (#55264)

* Add Mono Profiler events into EventPipe.

* Drop callstack on exception_clause profile event.

Needed since instrumentation uses mono_profiler_raise_exception_clause
used without wrapper and that in turn will cause incomplete stacks due
to transitioning into native code without informing unwinder.

* Fix build error.

* Add support to configure MonoVM diagnostics using env variable.

Adding new MONO_DIAGNOSTICS env variable that can include diagnostic
specific configs as well as --diagnostic-ports, meaning that its possible
to use that instead of DOTNET_DiagnosticPorts variable. It also add
variable to set some mono profiler settings needed very early during
startup to get GC alloc as well as exception clause checks.

In order to set needed options early in process, EventPipe component
calls a specific component_init method setting up needed config.

* Fix enable/disable callback registrations based on enable/disable bit mask.

* Add ability to specify callspec for method instrumentation.

Add --diagnostic-mono-profiler-callspec= to accept Mono callspec string.

Split keywords to enable method tracing and instrumentation, enables
ability to start instrumenting (but not emitting events) in one session
and then enable emitting events in later session.

If a callspec is used, instrumentation will be enabled on component init.

* Only init component once when using static component builds.

3 years agoRemoved nullability checks from FormUrlEncodedContent ctor (#55410)
Marie Píchová [Fri, 9 Jul 2021 20:33:46 +0000 (22:33 +0200)]
Removed nullability checks from FormUrlEncodedContent ctor (#55410)

3 years agoUpdate format.py user instruction (#55415)
t-mustafin [Fri, 9 Jul 2021 20:27:48 +0000 (23:27 +0300)]
Update format.py user instruction (#55415)

* Update format.py user instruction

* Update src/tests/Common/scripts/format.py

Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
3 years agoFix helloworld on x86 Linux (#55095)
t-mustafin [Fri, 9 Jul 2021 20:26:10 +0000 (23:26 +0300)]
Fix helloworld on x86 Linux (#55095)

Make managed->managed call use of ecx, edx to pass first two arguments.
Make stack alignment returning after call.

3 years agoRemove some left-over debug code (#55408)
Jakob Botsch Nielsen [Fri, 9 Jul 2021 20:06:49 +0000 (22:06 +0200)]
Remove some left-over debug code (#55408)

3 years agofix DeviceInterfaceCanBeOpenedForAsyncIO test (#55414)
Adam Sitnik [Fri, 9 Jul 2021 19:38:52 +0000 (21:38 +0200)]
fix DeviceInterfaceCanBeOpenedForAsyncIO  test (#55414)

3 years agoallow FileStream to open any types of files from path (#54676)
Adam Sitnik [Fri, 9 Jul 2021 19:01:38 +0000 (21:01 +0200)]
allow FileStream to open any types of files from path (#54676)

3 years agoadd basic support for client certificate to Quic (#54302)
Tomas Weinfurt [Fri, 9 Jul 2021 18:59:14 +0000 (11:59 -0700)]
add basic support for client certificate to Quic (#54302)

* add basic support for client certificte

* feedback from review

3 years agoFix GCMemoryInfo.TotalAvailableMemoryBytes under Wow (#55387)
Jan Kotas [Fri, 9 Jul 2021 18:02:28 +0000 (11:02 -0700)]
Fix GCMemoryInfo.TotalAvailableMemoryBytes under Wow (#55387)

Fixes #55126

3 years agoUse pthread_once instead of attempted idempotentcy when initializing OpenSSL
Jeremy Barton [Fri, 9 Jul 2021 17:23:28 +0000 (10:23 -0700)]
Use pthread_once instead of attempted idempotentcy when initializing OpenSSL

3 years agoFix lifetime1 test (#55371)
Bruce Forstall [Fri, 9 Jul 2021 16:03:11 +0000 (09:03 -0700)]
Fix lifetime1 test (#55371)

The test assumed that a GC didn't occur between the last use of a variable and a check
of a value set in the finalizer. This presumably worked up until now because the test
is set to build in debuggable code mode. But R2R compilations ignore that and build
with optimization enabled, and GCStress exposes the issue.

Fix the test by explicitly marking a variable as KeepAlive until after the requisite check.

Fixes #54042

3 years agoAdd OnSerialize callbacks to POCOs (#54709)
Steve Harter [Fri, 9 Jul 2021 15:45:05 +0000 (10:45 -0500)]
Add OnSerialize callbacks to POCOs (#54709)

3 years agoBuild all tasks, regardless of target (#55346)
Aleksey Kliger (λgeek) [Fri, 9 Jul 2021 15:37:28 +0000 (11:37 -0400)]
Build all tasks, regardless of target (#55346)

In a dirty tree, different architectures require different tasks.

For example,
```
./build.sh --os iossimulator -c Release
./build.sh --os android -c Release
```
the second step will complain that the AndroidAppBuilder task does not exist,
because the build-semaphore.txt was created during the first build which built
the AppleAppBuilder, but not the AndroidAppBuilder.

The solution is to build all the tasks, regardless of target

Simplifies building for different targets from the same dirty tree.  All the
tasks are always built once and then remain unchanged as long as their sources
don't change.

3 years agoFix compiling System.Net.Security.Native with HAVE_HEIMDAL_HEADERS (#54682)
Michal Strehovský [Fri, 9 Jul 2021 15:04:39 +0000 (17:04 +0200)]
Fix compiling  System.Net.Security.Native with HAVE_HEIMDAL_HEADERS (#54682)

We are using malloc/free but don't declare a header. It likely happens to be included from GSS/GSS.h which is why it builds now, but not from the Heimdal headers.

3 years agoUse RetryHelper with AIA tests (#55230)
Kevin Jones [Fri, 9 Jul 2021 14:30:47 +0000 (10:30 -0400)]
Use RetryHelper with AIA tests (#55230)

* Use RetryHelper with AIA tests.

The AIA tests depend on many external factors including the underlying
operation system, network, and the resources available on the system.
To accomodate this we will re-run the tests to improve reliability.

* Narrow the use of RetryHelper

3 years agoShim gss api on Linux to delay loading libgssapi_krb5.so (#55037)
Vladimir Sadov [Fri, 9 Jul 2021 14:30:28 +0000 (07:30 -0700)]
Shim gss api on Linux to delay loading libgssapi_krb5.so (#55037)

* shim one function for starters

* do all functions

* drop static dependency on libgssapi_krb5.so

* remap all gss method calls

* keep one lib instance open.

* tolerate absence of API in `gss_indicate_mechs`. It may be used for API probing.

* init from a static constructor

* move the lib name definition to the shim

* no indirection

* do not try optimizing multiple initialization attempts

3 years agoFix incorrect comparison (#54834) (#55094)
petrogavriluk [Fri, 9 Jul 2021 14:24:27 +0000 (17:24 +0300)]
Fix incorrect comparison (#54834) (#55094)

Add test to check fix.

Checking comparison result against 1 or -1 causes problems when custom comparer is used.
As a result Min and Max properties return incorrect values.

3 years agoOptimize index bounds check for immutable sorted set and list (#53266)
Mansoor Saqib [Fri, 9 Jul 2021 14:21:01 +0000 (07:21 -0700)]
Optimize index bounds check for immutable sorted set and list (#53266)

* Optimize index bounds check for immutable sorted set and list
- The bounds check to determine if a given index is >= 0 and < this.Count
  is only necessary on the first call to ItemRef.
- The recursive steps within ItemRef do not need to continuously
  do this bounds check on these immutable data structures.
- Proof:
  Elimination of index >= 0 bounds check:
    The first call to ItemRef checks if index >= 0.
    If we recurse on the left node, the index value does not change.
    If we recurse on the right node, index > _left._count. Then
    index - _left._count - 1 >= 0.

  Elimination of index < this.Count:
    The first call to ItemRef checks if index < this.Count. Then
    the given index must lie somewhere in this tree and
    (**) index < this.Count == left.Count + right.Count + 1.
    If we recurse on the left node, the index value does not change
    and a check is already made to determine that index < _left.Count.
    If we recurse on the right node, then we need to be sure that
    index - _left.count - 1 < _right.Count. But this is just a
    rearrangement of (**).

* Remove redundant code

* Remove redundant assert

* Apply suggestions from code review

Change from internal to private for unchecked methods.

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoMake LambdaCompiler prefer interpretation to compilation on iOS (#54970)
Maxim Lipnin [Fri, 9 Jul 2021 13:01:33 +0000 (16:01 +0300)]
Make LambdaCompiler prefer interpretation to compilation on iOS (#54970)

This is an attempt to address #47112 based on Egor's suggestion.

The changes:

- set IsInterpreting MSBuild property to 'true' in case of iOS;
- made System.Linq.Expressions.ExpressionCreator class internal static in order not to introduce new public type; otherwise it throws Type 'System.Linq.Expressions.ExpressionCreator<TDelegate>' does not exist in the reference but it does exist in the implementation.
-updated the iOS simulator functional test for AOT to verify the fix
- added PlatformDetection.IsLinqExpressionsBuiltWithIsInterpretingOnly which checks whether the System.Linq.Expressions is built with IsInterpreting property set to true. To do so, it uses reflection to verify the Expression.Accept method doesn't exist.
- disabled some failing library tests using ActiveIssue + PlatformDetection.
- updated the invariant functional test for the iOS simulator (b/c of Allow restricting cultures creation with any arbitrary names in Globalization Invariant Mode #54247)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years agoRemove redundant pinvokes in S.N.Http/Mail on tvOS (#54812)
Maxim Lipnin [Fri, 9 Jul 2021 12:19:54 +0000 (15:19 +0300)]
Remove redundant pinvokes in S.N.Http/Mail on tvOS (#54812)

Addressed xamarin/xamarin-macios#12011 (comment)

3 years agouse fstatfs to detect whether current file system supports shared locks for files...
Adam Sitnik [Fri, 9 Jul 2021 11:48:27 +0000 (13:48 +0200)]
use fstatfs to detect whether current file system supports shared locks for files opened for writing (#55256)

3 years agoAdd symbolic link APIs (#54253)
Carlos Sanchez [Fri, 9 Jul 2021 11:17:31 +0000 (04:17 -0700)]
Add symbolic link APIs (#54253)

Co-authored-by: David Cantu <dacantu@microsoft.com>
Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com>
Co-authored-by: carlossanlop <Carlos Sanchez carlossanlop@users.noreply.github.com>
3 years agoAdd Windows support to PosixSignal (#55333)
Stephen Toub [Fri, 9 Jul 2021 10:46:29 +0000 (06:46 -0400)]
Add Windows support to PosixSignal (#55333)

* Add Windows support to PosixSignal

* Address PR feedback

3 years agoRemove few more ILLink warnings in System.Data.Common (#55335)
Krzysztof Wicher [Fri, 9 Jul 2021 10:41:14 +0000 (12:41 +0200)]
Remove few more ILLink warnings in System.Data.Common (#55335)

3 years agoAdd private Task.StateFlags property to help with debugging (#55297)
Stephen Toub [Fri, 9 Jul 2021 10:32:54 +0000 (06:32 -0400)]
Add private Task.StateFlags property to help with debugging (#55297)

It's a pain when you want to debug something with tasks, you look at its m_stateFlags, and you're met with an integer you have to decode by looking at consts defined in Task.  This changes those consts to be an enum and adds a private property that returns the flags as that enum, to help with debugging.

3 years ago[mono] Enable icall export for ios device builds. (#55344)
Zoltan Varga [Fri, 9 Jul 2021 09:37:24 +0000 (05:37 -0400)]
[mono] Enable icall export for ios device builds. (#55344)

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

3 years agoH/3 stress (#55098)
Marie Píchová [Fri, 9 Jul 2021 07:41:39 +0000 (09:41 +0200)]
H/3 stress (#55098)

* Fixed event source name

* Updated docker files, updated stress test to H/3

* SSL stress updated as well

* Fixed docker and compilation warnings

* H/3 fixes

* Fixed nano-server version and nuget reference

* Debian stable version revert: bullseye --> buster

* Use msquic package in Linux stress container

* Bullseye is back, needs 6.0 SDK current preview

* Fixed pulling images in docker compose

* Disabled problematic error in H/2

3 years agoEnregister structs on win x64. (#55045)
Sergey Andreenko [Fri, 9 Jul 2021 06:32:15 +0000 (23:32 -0700)]
Enregister structs on win x64. (#55045)

* Enreg structs x64 windows.

* try to get zero diffs on other platforms.

* fix comment

3 years agoMove DiagnosticsHandler.IsGloballyEnabled back to a method (#55351)
Steve Pfister [Fri, 9 Jul 2021 03:17:47 +0000 (23:17 -0400)]
Move DiagnosticsHandler.IsGloballyEnabled back to a method (#55351)

Intent is to make linker substitutions happy and try to unblock dotnet/sdk#18801

3 years agoLoop alignment: Handle blocks added in loop as part of split edges of LSRA (#55047)
Kunal Pathak [Thu, 8 Jul 2021 22:38:40 +0000 (15:38 -0700)]
Loop alignment: Handle blocks added in loop as part of split edges of LSRA (#55047)

* Handle blocks added in loop as part of split edges of LSRA

If there are new blocks added by LSRA and modifies the flow of
blocks that are in loop, then make sure that we do not align such
loops if they intersect with last aligned loop.

* Retain LOOP_ALIGN flag of loops whose start are same

* jit format

* review feedback

3 years agoRemove pack references (#55359)
Larry Ewing [Thu, 8 Jul 2021 21:43:11 +0000 (16:43 -0500)]
Remove pack references (#55359)

Remove duplicate pack references

3 years agoDon't use GT_ARR_ELEM as a location/value (#54780)
SingleAccretion [Thu, 8 Jul 2021 21:15:20 +0000 (00:15 +0300)]
Don't use GT_ARR_ELEM as a location/value (#54780)

* Don't use GT_ARR_ELEM as a location

It represents an address.

No diffs.

* Clarify the purpose of GenTreeArrElem

3 years agoPrint indices of assertions instead of raw bitsets (#54928)
SingleAccretion [Thu, 8 Jul 2021 21:14:21 +0000 (00:14 +0300)]
Print indices of assertions instead of raw bitsets (#54928)

* Add JITDUMPEXEC macro

For use in contexts where some printing method
should only be executed when "verbose" is true.

* Add helpers for printing assertion indexes

* Print assertion indices instead of raw bitsets

To aid in understanding what assertions are being
propagated and merged when reading the dumps.

* Don't print VNs for the same assertion twice

* Also correctly print VNs in CopyProp

* Align "in"s with "out"s for final assertions

* Don't print the assertion dataflow in usual dumps

It can still be enabled if needed.

3 years agoFix NullReferenceException in background thread emitting IL in DependencyInjection...
Eric Erhardt [Thu, 8 Jul 2021 20:29:10 +0000 (15:29 -0500)]
Fix NullReferenceException in background thread emitting IL in DependencyInjection (#55340)

* Fix NullReferenceException in background thread emitting IL in DependencyInjection

When ILEmitResolverBuilder is getting created, it grabs the "Root" scope off of the ServiceProvider. However, the Root scope isn't set on ServiceProvider yet. So later when it tries to get used, it null refs. But this exception gets caught and eaten since it happens on a background thread.

The fix is to set Root before creating the ServiceProviderEngine.

* Add a debug assert that we shouldn't get exceptions from the background compilation thread

3 years ago[mono] Make Mono CMake Windows build work without mono.proj (#54855)
imhameed [Thu, 8 Jul 2021 20:28:20 +0000 (13:28 -0700)]
[mono] Make Mono CMake Windows build work without mono.proj (#54855)

3 years agofix read abort handling and revert CanRead/CanWrite to previous behavior (#55341)
Geoff Kizer [Thu, 8 Jul 2021 20:15:12 +0000 (13:15 -0700)]
fix read abort handling and revert CanRead/CanWrite to previous behavior (#55341)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
3 years ago[main] Update dependencies from 10 repositories (#55074)
dotnet-maestro[bot] [Thu, 8 Jul 2021 19:55:21 +0000 (12:55 -0700)]
[main] Update dependencies from 10 repositories (#55074)

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210701.5

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.21330.5 -> To Version 1.0.0-prerelease.21351.5

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , 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 6.0.0-beta.21330.2 -> To Version 6.0.0-beta.21351.2

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21330.2 -> To Version 1.0.0-prerelease.21351.2

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21330.1 -> To Version 1.0.1-alpha.0.21351.1

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

Microsoft.CodeAnalysis.NetAnalyzers
 From Version 6.0.0-rc1.21320.2 -> To Version 6.0.0-rc1.21351.2

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210702.5

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.21330.5 -> To Version 1.0.0-prerelease.21352.5

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21330.1 -> To Version 1.0.1-alpha.0.21352.1

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

Microsoft.CodeAnalysis.NetAnalyzers
 From Version 6.0.0-rc1.21320.2 -> To Version 6.0.0-rc1.21352.1

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210703.2

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.21330.5 -> To Version 1.0.0-prerelease.21353.2

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

Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Runtime.CompilerServices.Unsafe , System.Text.Json
 From Version 6.0.0-preview.7.21321.2 -> To Version 6.0.0-preview.7.21355.1

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

Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64
 From Version 6.0.0-preview.7.21330.1 -> To Version 6.0.0-preview.7.21355.1

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210705.3

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.21330.5 -> To Version 1.0.0-prerelease.21355.3

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , 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 6.0.0-beta.21330.2 -> To Version 6.0.0-beta.21355.2

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

runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-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
 From Version 11.1.0-alpha.1.21328.1 -> To Version 11.1.0-alpha.1.21355.1

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

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.Windows.Extensions.TestData
 From Version 6.0.0-beta.21314.1 -> To Version 6.0.0-beta.21356.1

* Update dependencies from https://github.com/mono/linker build 20210705.2

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21330.1 -> To Version 6.0.100-preview.6.21355.2

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

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.0.1-alpha.0.21330.1 -> To Version 1.0.1-alpha.0.21355.1

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

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100
 From Version 6.0.0-preview.7.21330.1 -> To Version 6.0.0-preview.7.21356.1

* Bump Microsoft.DotNet.PackageValidation to 1.0.0-preview.7.21352.4

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210706.5

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.21330.5 -> To Version 1.0.0-prerelease.21356.5

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

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.21330.2 -> To Version 1.0.0-prerelease.21357.4

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

Microsoft.CodeAnalysis.NetAnalyzers
 From Version 6.0.0-rc1.21320.2 -> To Version 6.0.0-rc1.21356.1

* Set AsArchive when payload is a zip file

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

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.VersionTools.Tasks , 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 6.0.0-beta.21330.2 -> To Version 6.0.0-beta.21357.3

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20210707.3

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.21330.5 -> To Version 1.0.0-prerelease.21357.3

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

runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-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
 From Version 11.1.0-alpha.1.21328.1 -> To Version 11.1.0-alpha.1.21357.1

* Update dependencies from https://github.com/mono/linker build 20210707.1

Microsoft.NET.ILLink.Tasks
 From Version 6.0.100-preview.6.21330.1 -> To Version 6.0.100-preview.6.21357.1

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

Microsoft.NET.Workload.Emscripten.Manifest-6.0.100
 From Version 6.0.0-preview.7.21330.1 -> To Version 6.0.0-preview.7.21358.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>