platform/upstream/dotnet/runtime.git
5 years agoUpdating NumberToFloatingPointBitsSlow to handle the remaining parsed fractional...
Tanner Gooding [Thu, 7 Nov 2019 21:06:32 +0000 (13:06 -0800)]
Updating NumberToFloatingPointBitsSlow to handle the remaining parsed fractional digits being zero. (dotnet/coreclr#27688)

Commit migrated from https://github.com/dotnet/coreclr/commit/460b97aa406f10cf9ab19e6398e1e1a72fc58b48

5 years agoFix dotnet-coreclr-perf pipeline (dotnet/coreclr#27685)
Tomáš Rylek [Thu, 7 Nov 2019 19:52:14 +0000 (11:52 -0800)]
Fix dotnet-coreclr-perf pipeline (dotnet/coreclr#27685)

Commit migrated from https://github.com/dotnet/coreclr/commit/9b2de2cbaaa6edf4a985a00088a3d655a688844d

5 years agoArm64: Add S.P.CoreLib for AddV. (dotnet/coreclr#27663)
Tamar Christina [Thu, 7 Nov 2019 17:58:35 +0000 (17:58 +0000)]
Arm64: Add S.P.CoreLib for AddV. (dotnet/coreclr#27663)

Commit migrated from https://github.com/dotnet/coreclr/commit/12b9ed40c7664cf7e338fb9070aab2a83771b4dd

5 years agoRemove root cross folder in favor of eng/common/cross (dotnet/coreclr#27727)
Viktor Hofer [Thu, 7 Nov 2019 11:41:46 +0000 (12:41 +0100)]
Remove root cross folder in favor of eng/common/cross (dotnet/coreclr#27727)

* Remove root cross folder in favor of common

* Manual darc upate from build '20191106.10'

* Update arm32_ci_script.sh

* Update Documentation/building/cross-building.md

Co-Authored-By: Jan Vorlicek <janvorli@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/f6089121cda64da8827a871a2407ff5e687196a8

5 years agoMinor cleanup in download-artifact-step / upload-artifact-step (dotnet/coreclr#27726)
Tomáš Rylek [Thu, 7 Nov 2019 10:00:44 +0000 (02:00 -0800)]
Minor cleanup in download-artifact-step / upload-artifact-step (dotnet/coreclr#27726)

I have noticed this some time ago. We don't actually need to
explicitly specify the "upload / download folder" as we can easily
synthesize them in the step templates.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/dc537046d37e7fd9fd6c31d8224c2bd456a93b69

5 years agoUse preinstalled system dotnet if its version matches (dotnet/coreclr#27705)
Tomáš Rylek [Thu, 7 Nov 2019 09:10:46 +0000 (01:10 -0800)]
Use preinstalled system dotnet if its version matches (dotnet/coreclr#27705)

* Use preinstalled system dotnet if its version matches

According to standard Arcade logic, CoreCLR build should be using
preinstalled system dotnet if it's the same version as requested
by the CoreCLR build.

We were suppressing this logic in configure-toolset.ps1 by setting
$script:useInstalledDotNetCli = $false with reference to some
obsolete build tools logic that no longer exists.

I have replaced this with a simple function that calls
InitializeBuildTool from the tools.ps1 Arcade script and produces
the result in form of a one-line batch file setting the dotnet
path to an environment variable we can then use in dotnet.cmd.

I have modified the Linux script dotnet.sh to again consume the
dotnet path from InitializeBuildTool.

Thanks

Tomas

* Address Viktor's and Jan's PR feedback

Based on offline discussion with Viktor I have cleaned this up
as follows:

1) I have deleted both init-dotnet scripts;

2) The dotnet script directly calls powershell on the tools.ps1
script to call the function InitializeDotNetCli and use JanV's
trick to capture its return value in an auxiliary environment
variable that is subsequently used to launch dotnet.

3) In tests/build.proj, I applied Viktor's feedback by deleting
the custom code and switching it over to the standard Arcade
property DotNetTool.

Thanks

Tomas

* Remove explicit inclusion of configure-toolset.ps1

* Fix Linux version of the dotnet script; missing quotes in build.proj

* Fix variable name typo in the Linux dotnet.sh script

Commit migrated from https://github.com/dotnet/coreclr/commit/3f6ed5b833071b4ba71fac46ea4a06fd9ef3eb4d

5 years agoCrossgen2 node size relocation (dotnet/coreclr#27718)
Simon Nattress [Thu, 7 Nov 2019 08:16:56 +0000 (00:16 -0800)]
Crossgen2 node size relocation (dotnet/coreclr#27718)

* Crossgen2 node size relocation

* Add a new relocation (`IMAGE_REL_SYMBOL_SIZE`) to Crossgen2 which is fixed up with the size of the object node being relocated to.
* Crossgen2 needs to encode the size of another ObjectNode in several places
  * The COR header emits offset and size of the ready-to-run header
  * The ready-to-run header itself emits the sizes of the various data tables it points at
  * `ImportSectionsTable` points to the RVA / size of `ImportTable`
* Currently we call `Getdata().Data.Length` on the node we want to know the size of which is wasteful, causing us to regenerate data for all the header nodes multiple times.
* Fix some implicit node emission ordering dependencies we were unaware of. `MethodEntryPoint` table needs to be generated after the import section nodes since it encodes index and offsets of imports within their tables which are only finalized when the import tables are emitted.

* Fix comment typo

Commit migrated from https://github.com/dotnet/coreclr/commit/1e8650ab8c314e1c020a307ed26b5df98bd05cc8

5 years agoFix unquoted path parameters in Microsoft.NET.Sdk.IL.targets (dotnet/coreclr#27704)
Alexey Golub [Thu, 7 Nov 2019 05:43:49 +0000 (07:43 +0200)]
Fix unquoted path parameters in Microsoft.NET.Sdk.IL.targets (dotnet/coreclr#27704)

This fixes issues when running build.cmd in dotnet/corefx when there are spaces on the path.
Fixes dotnet/coreclr#27699

Commit migrated from https://github.com/dotnet/coreclr/commit/d15312228b941a03a752ba61e8d1b555bc4b15f2

5 years agoSupport custom modifier for method signature (dotnet/coreclr#27676)
Andrew Au [Thu, 7 Nov 2019 05:07:33 +0000 (21:07 -0800)]
Support custom modifier for method signature (dotnet/coreclr#27676)

Commit migrated from https://github.com/dotnet/coreclr/commit/6d56c7a1b64070b7f302c6083d6cf189692f7240

5 years agoAdd Mutex creation extension methods that take an ACL (dotnet/coreclr#42281)
Carlos Sanchez Lopez [Thu, 7 Nov 2019 01:05:31 +0000 (17:05 -0800)]
Add Mutex creation extension methods that take an ACL (dotnet/coreclr#42281)

Approved API Proposal: dotnet/coreclr#41662

Description
We don't currently have a way to create a Mutex with a given ACL in .NET Core. We can modify the ACL, but it would be more secure to have the proper ACL on the object from the start.

Customer impact
Before this change, customers had to create a Mutex, then set its ACLs. This presents a few problems:

Potential security hole as mutexes can be accessed between creation and modification.
Porting difficulties as there isn't a 1-1 API replacement
This change addresses those problems by adding a new extension method that allows creating a Mutex and ensuring the provided ACLs are set during creation.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/6a2de7eaa6fba965a90754beafb6a8f4ca81d460

5 years agoDelete some dead code from vm/threds.cpp/.h (dotnet/coreclr#27701)
Jan Kotas [Thu, 7 Nov 2019 01:40:03 +0000 (17:40 -0800)]
Delete some dead code from vm/threds.cpp/.h (dotnet/coreclr#27701)

Commit migrated from https://github.com/dotnet/coreclr/commit/4822669f2b10fdecbfd876fbf4399a8d9339b4e8

5 years agoMove tryrun to importing project (dotnet/coreclr#27717)
Viktor Hofer [Thu, 7 Nov 2019 01:19:34 +0000 (02:19 +0100)]
Move tryrun to importing project (dotnet/coreclr#27717)

Commit migrated from https://github.com/dotnet/coreclr/commit/c373d864c05fa4c4b68e764cf47d2a623c4b2baa

5 years agoChange the SSA def node to ASG (dotnet/coreclr#27445)
mikedn [Thu, 7 Nov 2019 01:10:47 +0000 (03:10 +0200)]
Change the SSA def node to ASG (dotnet/coreclr#27445)

SSA defs used to point at LHS of GT_ASG. Many clients immediately needed to walk up the tree to the parent to find the GT_ASG. So revise the SSA def to just be the GT_ASG.

Also, reject non-LCL_VAR definitions in RangeCheck. This matches the previous behavior that rejected LHS nodes that weren't the direct descendant of the ASG node - basically cases like ASG(IND(ADDR(LCL_VAR)), x). RangeCheck doesn't have the ability to follow such definitions.

This also happens to reject LCL_FLD nodes as LHS. The machinery required to follow definition chains involving struct copies and field access is quite a bit more complicated and RangeCheck certainly doesn't have it.

Commit migrated from https://github.com/dotnet/coreclr/commit/1b12053ffffc36ad73ad83f7ce111c891c4cf457

5 years agoFeature: dynamic expansion for generic dictionaries (dotnet/coreclr#26262)
Fadi Hanna [Wed, 6 Nov 2019 23:06:09 +0000 (15:06 -0800)]
Feature: dynamic expansion for generic dictionaries (dotnet/coreclr#26262)

* Feature: Dynamic Expansion for Generic Dictionaries

These changes introduce dynamic size expansion for generic dictionary layouts when we run out of slots.
The original implementation allowed for an expansion, but using a linked list structure, which made it impossible to use fast lookup slots once we were out of slots in the first bucket.

This new implementation allows for the usage of fast lookup slots always, for all generic lookups.

This also removes the constraint we had on R2R, where we disabled the usage of fast slots all-together.

* Add diagnostics slot with pointer to old dictionary

* Adding a chapter in the BOTR describing generic dictionaries

Commit migrated from https://github.com/dotnet/coreclr/commit/d840c759948d910da85cf8688a45c84d09f0ad5e

5 years ago[test] Improve diagnostics for failures in IPC/EventPipe tests (dotnet/coreclr#27567)
John Salem [Wed, 6 Nov 2019 22:37:06 +0000 (14:37 -0800)]
[test] Improve diagnostics for failures in IPC/EventPipe tests (dotnet/coreclr#27567)

* Add ProxyStream for diagnosing issues with EventPipeEventSource StreamReading
* Harden IpcTraceTest.cs against errors where the reader throws an exception before we await the task

Commit migrated from https://github.com/dotnet/coreclr/commit/89ad9a78cb76df1e7d22f40145588cf62e7c362f

5 years agoRemove silent catch (dotnet/coreclr#26732)
Filip Navara [Wed, 6 Nov 2019 21:48:40 +0000 (22:48 +0100)]
Remove silent catch (dotnet/coreclr#26732)

Remove silent catch for `SafeHandle`

Commit migrated from https://github.com/dotnet/coreclr/commit/f40219af9da8635d35158a947cc208acff316b8d

5 years agoFix VN for byrefx on x86. (dotnet/coreclr#27702)
Sergey Andreenko [Wed, 6 Nov 2019 21:31:31 +0000 (21:31 +0000)]
Fix VN for byrefx on x86. (dotnet/coreclr#27702)

* Add a repro test.

* Fix the bug.

* Extract code duplication into `VnForConst`.

* make the new method private.

Commit migrated from https://github.com/dotnet/coreclr/commit/6d1b188773c40661612eea98fce5287aa2455377

5 years agoImprove Math(F).FusedMultiplyAdd codegen (dotnet/coreclr#27060)
Egor Bogatov [Wed, 6 Nov 2019 20:27:35 +0000 (23:27 +0300)]
Improve Math(F).FusedMultiplyAdd codegen (dotnet/coreclr#27060)

* improve Math(F).FusedMultiplyAdd

* fix wrong order and clang formatting

* fix ordering again

* code formatting

* fix typos

* Move to Lower

* clean up

* Fix assert

* code formatting

* code formatting

* Address feedback

* Clean up

* Add an assert to make sure we only have 3 args

* Address feedback and add tests

* Address feedback

* update tests

* Fix CI failure

* Address feedback

* formatting

* Fix failures

Commit migrated from https://github.com/dotnet/coreclr/commit/d9272784d10f38991e3004c9b074d6aa444a39cb

5 years agoPopulate properties of AssemblyLoadStart/Stop events (dotnet/coreclr#27558)
Elinor Fung [Wed, 6 Nov 2019 20:17:49 +0000 (12:17 -0800)]
Populate properties of AssemblyLoadStart/Stop events (dotnet/coreclr#27558)

* Populate properties of AssemblyLoadStart/Stop events
* Add tests for basic start/stop binder tracing events
* Add property for ALC of requesting assembly

Commit migrated from https://github.com/dotnet/coreclr/commit/05cbf03037737c631534642f699cf7533a9ee250

5 years agoImplement comparisons for all ObjectNodes (dotnet/coreclr#27355)
Anubhav Srivastava [Wed, 6 Nov 2019 17:57:40 +0000 (09:57 -0800)]
Implement comparisons for all ObjectNodes (dotnet/coreclr#27355)

* Preparation to introduce parallelism into crossgen2

- Add comparison functions for all object nodes and sort object nodes before they are emitted to the PE.

- Sort ImportSection signatures based on their imports to keep them in sync.

- Add determinism test.

- Change dictionaries in ReadyToRunCodegenNodeFactory and ReadyToRunSymbolNodeFactory to NodeCaches (i.e. ConcurrentDictionary, at the moment)

- Add structs to act as keys for the above NodeCaches (MethodFixupKey, DynamicHelperKey, ReadyToRunHelperKey)

- Synchronize logger

- Update some Dictionaries to ConcurrentDictionary

- Sort GCRefMapNode methods and lock the add since AddImport might be called my multiple threads at once.

- Create RandomInsertStack to speed up randomization when using CoreRT_DeterminismSeed.

Commit migrated from https://github.com/dotnet/coreclr/commit/230117910d7c033eb1025ba350731163e80da9d6

5 years agoRevert changes to tryrun.cmake (dotnet/coreclr#27697)
Santiago Fernandez Madero [Wed, 6 Nov 2019 09:12:16 +0000 (01:12 -0800)]
Revert changes to tryrun.cmake (dotnet/coreclr#27697)

Commit migrated from https://github.com/dotnet/coreclr/commit/e303cb61058c82e5fa42225fb7f668b765da8ba8

5 years agoAdd Span.Sort, and make Array.Sort span-based (dotnet/coreclr#27700)
Stephen Toub [Wed, 6 Nov 2019 06:39:01 +0000 (01:39 -0500)]
Add Span.Sort, and make Array.Sort span-based (dotnet/coreclr#27700)

* Add Span<T>.Sort

Shares existing Array-based implementation by changing that implementation to be span based.

* Additional work to enable span-based sorts

- Cleans up changes from the previous commit, e.g. corrects nullable annotations, removes TODOs, using GetRawSzArrayData instead of GetRawArrayData, etc.
- Passes spans around rather than spans+lo+hi.
- Deletes the native TrySZSort, preferring to use the managed implementation in all cases.

Commit migrated from https://github.com/dotnet/coreclr/commit/50d73a21afcc8eaa3e7f459253314db8a5553333

5 years agoFix intermittent arm/arm64 Linux build failures (dotnet/coreclr#27698)
Jan Vorlicek [Wed, 6 Nov 2019 04:58:12 +0000 (05:58 +0100)]
Fix intermittent arm/arm64 Linux build failures (dotnet/coreclr#27698)

The arm/arm64 Linux builds were recently failing intermittently
with a weird error in macro expansion in one of the generated
eventing headers. It seems that the issue is caused by the fact
that we were not creating a custom_target to enable handling
dependencies on the generated header files and we were also
not marking the files as generated.
I've noticed that the message indicating that the headers are
being generated was printed twice in the build log. with this
fix, it occurs only once there.
So I believe that the issue was caused by the headers being
generated twice by two different threads and when that happened,
the files got corrupted.

Commit migrated from https://github.com/dotnet/coreclr/commit/7cf41c0fb1b916057aa5beeac57d6195878740cc

5 years agoAvoid memset in case of HENUMInternal (dotnet/coreclr#27690)
Adeel Mujahid [Wed, 6 Nov 2019 01:40:32 +0000 (03:40 +0200)]
Avoid memset in case of HENUMInternal (dotnet/coreclr#27690)

gcc9 complains:

```sh
/datadrive/projects/coreclr/src/md/runtime/mdinternalro.cpp: In member function virtual HRESULT MDInternalRO::EnumTypeDefInit(HENUMInternal*):
/datadrive/projects/coreclr/src/md/runtime/mdinternalro.cpp:202:44: error: void* memset(void*, int, size_t) clearing an object of non-trivial type struct HENUMInternal; use assignment or value-initialization instead [-Werror=class-memaccess]
  202 |     memset(phEnum, 0, sizeof(HENUMInternal));
      |                                            ^
In file included from /datadrive/projects/coreclr/src/inc/corpriv.h:21,
                 from /datadrive/projects/coreclr/src/md/runtime/stdafx.h:20,
                 from /datadrive/projects/coreclr/src/md/runtime/mdinternalro.cpp:12:
/datadrive/projects/coreclr/src/inc/metadata.h:87:8: note: struct HENUMInternal declared here
   87 | struct HENUMInternal
      |        ^~~~~~~~~~~~~
```

As it turned out, there already is a static helper defined on this type
with a comment to prefer it over memset, this patch just replaces the
usage.

Commit migrated from https://github.com/dotnet/coreclr/commit/91ee41b6701e1f7f8d3d1fba461a67e240c83c82

5 years agoContain block store addresses (dotnet/coreclr#21711)
Sergey Andreenko [Tue, 5 Nov 2019 23:01:41 +0000 (23:01 +0000)]
Contain block store addresses (dotnet/coreclr#21711)

Commit migrated from https://github.com/dotnet/coreclr/commit/d5729752866606686c7158d62bb033adf0f707dc

5 years agoMove p/invoke pregeneration out of single-exe branch (dotnet/coreclr#27673)
Fadi Hanna [Tue, 5 Nov 2019 22:51:35 +0000 (14:51 -0800)]
Move p/invoke pregeneration out of single-exe branch (dotnet/coreclr#27673)

* Move p/invoke pregeneration out of single-exe branch

This is just xcopy of the src/tools/crossgen2 directory in the single-exe branch with David's profile data changes omitted. I had to fix a `using` directive in one of the files because a `using` keyword the branch was using got deleted in master.

I don't know if there's a way to do this kind of selective merge in git, but I don't particularly care. Most of the interesting history for these files is on the CoreRT side anyway.

Also including the change to prestub.cpp that unlocks using the generated p/invokes.

* Disable ILStub emission for pinvokes until they are fixed to be non-shared

Commit migrated from https://github.com/dotnet/coreclr/commit/bee443dc0e8fc6a74a87bd207df63db3dfbd6f14

5 years agoEnable rejit feature on all cpu architectures (dotnet/coreclr#27576)
David Mason [Tue, 5 Nov 2019 21:36:22 +0000 (13:36 -0800)]
Enable rejit feature on all cpu architectures (dotnet/coreclr#27576)

Commit migrated from https://github.com/dotnet/coreclr/commit/6d06f54a6b2bf0ddcc69d12cfc11e09ddb6d4ec0

5 years agoAdd gcc9 config and remove ZeroInit macro (dotnet/coreclr#27605)
Adeel Mujahid [Tue, 5 Nov 2019 19:11:31 +0000 (21:11 +0200)]
Add gcc9 config and remove ZeroInit macro (dotnet/coreclr#27605)

* Add gcc9 config

* Remove ZeroInit definition and usage
Initialize dacprivate structs to 0 explicitly.

Commit migrated from https://github.com/dotnet/coreclr/commit/d2a8b55d4c944438df1599c9a78262bc48f07266

5 years agoFix gc-longrunning pipeline definition (dotnet/coreclr#27684)
Tomáš Rylek [Tue, 5 Nov 2019 18:46:29 +0000 (10:46 -0800)]
Fix gc-longrunning pipeline definition (dotnet/coreclr#27684)

Commit migrated from https://github.com/dotnet/coreclr/commit/d37ca4290cb1cc82f347475ab72d39252185d9f0

5 years agoUpdate Profiler Loading.md (dotnet/coreclr#23890)
eli-fin [Tue, 5 Nov 2019 18:33:38 +0000 (20:33 +0200)]
Update Profiler Loading.md (dotnet/coreclr#23890)

Minor fixes

Commit migrated from https://github.com/dotnet/coreclr/commit/c8a5570ed9b91e7c45f04496fa9c9122a7a65156

5 years agoPrevent DivideByZeroException in EventCounter.ToString() (dotnet/coreclr#27581)
JesperTreetop [Tue, 5 Nov 2019 18:33:18 +0000 (19:33 +0100)]
Prevent DivideByZeroException in EventCounter.ToString() (dotnet/coreclr#27581)

* Prevent DivideByZeroException in EventCounter.ToString()

Maybe it should print something other than 0. Maybe "Mean" should be excluded. But at least with this it doesn't divide by zero. Ternary operator in interpolated string is not super readable; didn't know if making the code more descriptive would have performance implications.

* Update src/System.Private.CoreLib/shared/System/Diagnostics/Tracing/EventCounter.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/a187c727956c8ed30635f75450e7dfc38f2ccf38

5 years agoSome follow up changes after the cast caching change (dotnet/coreclr#27571)
Vladimir Sadov [Tue, 5 Nov 2019 17:51:21 +0000 (09:51 -0800)]
Some follow up changes after the cast caching change (dotnet/coreclr#27571)

* Make array MT and element type always match.

* Remove TypeDesc duplication of ArrayIsInstanceOf and ArraySupportsBizarreInterface

* Removed `CanCastToNonVariantInterface`. It was used only in three places, one of which was an assert.

* Use `CanCastTo` in `MergeTypeHandlesToCommonParent` - it does a cache lookup and can be called in preemptive mode.

* Updated the comment on TypeHandle::GetMethodTable(). We can still get non-exact method tables for TypeDescs.

* Removed "Approx" in `GetApproxArrayElementTypeHandle`, `SetApproxArrayElementTypeHandle` and `GetApproxArrayElementTypeHandlePtr`

Commit migrated from https://github.com/dotnet/coreclr/commit/5aaa25b61aec244c39c2c9b5ce0800a9183df24e

5 years agoFixing the return type of the ArmBase.ReverseElementBits methods in the PlatformNotSu...
Tanner Gooding [Tue, 5 Nov 2019 17:30:07 +0000 (09:30 -0800)]
Fixing the return type of the ArmBase.ReverseElementBits methods in the PlatformNotSupported file (dotnet/coreclr#27672)

Commit migrated from https://github.com/dotnet/coreclr/commit/b2f98b9a29ce10178ab61fc14e11f17200e2d111

5 years agoHandling generic attribute in AttributePresenceFilterNode (dotnet/coreclr#27667)
Andrew Au [Tue, 5 Nov 2019 16:25:32 +0000 (08:25 -0800)]
Handling generic attribute in AttributePresenceFilterNode (dotnet/coreclr#27667)

Commit migrated from https://github.com/dotnet/coreclr/commit/a11f07461ec65dd7d4bc133196d26ad786cb2ce1

5 years agoFix Array.Copy regressions for large multidimensional arrays (dotnet/coreclr#27668)
Jan Kotas [Tue, 5 Nov 2019 16:13:22 +0000 (08:13 -0800)]
Fix Array.Copy regressions for large multidimensional arrays (dotnet/coreclr#27668)

Commit migrated from https://github.com/dotnet/coreclr/commit/5b3ac725320c1328d8843abb477940a00af54bd8

5 years agoChange BulkMoveWithWriteBarrier to be GC suspension friendly (dotnet/coreclr#27642)
Jan Kotas [Tue, 5 Nov 2019 16:10:37 +0000 (08:10 -0800)]
Change BulkMoveWithWriteBarrier to be GC suspension friendly (dotnet/coreclr#27642)

* Change BulkMoveWithWriteBarrier to be GC suspension friendly

* Rename RuntimeHelpers.cs

Commit migrated from https://github.com/dotnet/coreclr/commit/5e1ef698774c433f70795e194e2554ad6f5b7d6f

5 years agoJIT: cleanup redundant exact type tests (dotnet/coreclr#27397)
Andy Ayers [Tue, 5 Nov 2019 16:02:52 +0000 (08:02 -0800)]
JIT: cleanup redundant exact type tests (dotnet/coreclr#27397)

Generate exact type assertions from exact type tests in the IR. Look for these
assertions and set the value number for RELOPs with known outcomes. Process
JTRUE nodes in the main assertion prop optimization loop.

This combination of changes removes residual exact type tests from cast
expansions when they are anticipated by user inserted exact type tests, as in:

```C#
    if (b.GetType() == typeof(D))
    {
        return (D)b;
    }
```

Closes dotnet/coreclr#14471.

Commit migrated from https://github.com/dotnet/coreclr/commit/5216c8c843d2f34efccb070a840dfd42d6e7e230

5 years agoMove helper pipeline scripts under eng/pipeline/scripts (dotnet/coreclr#27660)
Tomáš Rylek [Tue, 5 Nov 2019 15:18:42 +0000 (07:18 -0800)]
Move helper pipeline scripts under eng/pipeline/scripts (dotnet/coreclr#27660)

To clean up contents of the eng folder, I'm moving all YAML scripts
used by Azure pipelines under eng/pipeline/scripts. Most of the rest
of the eng folder will get merged into a common eng folder in the
composite repo.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/3474c72042b0e3a55e3bc59bb3a29cecfaa0a67c

5 years agoFix for two subtle bugs I made yesterday in init-dotnet (dotnet/coreclr#27679)
Tomáš Rylek [Tue, 5 Nov 2019 12:59:30 +0000 (04:59 -0800)]
Fix for two subtle bugs I made yesterday in init-dotnet (dotnet/coreclr#27679)

1) In the "old repo conditional block", I used __ProjectDir even
though it was not defined in the script. This is normally benign
when the script is run from build.cmd which defines the variable
but it means that the script cannot be run directly from shell.

2) In a similar vein, I used !__ProjectDir! in the script even though
it doesn't have the delayed variable expansion flag enabled. Again,
the flag is set in the main build.cmd script but the init-dotnet
script couldn't be run directly. Thankfully in this particular case
we don't need the delayed expansion so I just changed ! to %.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/37ce1747f692c0ff8c69cd095485c6a0a6837061

5 years agoUpdate tryrun.cmake in order to be able to build corefx in consolidated repo (dotnet...
Santiago Fernandez Madero [Tue, 5 Nov 2019 07:44:42 +0000 (01:44 -0600)]
Update tryrun.cmake in order to be able to build corefx in consolidated repo (dotnet/coreclr#27674)

Commit migrated from https://github.com/dotnet/coreclr/commit/10bcb6f8e705a5f6e53476a7fcf36f80261ee13d

5 years agoReword comments for policheck (dotnet/coreclr#27669)
Jeremy Koritzinsky [Tue, 5 Nov 2019 00:07:33 +0000 (16:07 -0800)]
Reword comments for policheck (dotnet/coreclr#27669)

* Comment rewordings required by policheck.

* Use AppContainer instead of Windows Store.

* Additional wording cleanup.

Commit migrated from https://github.com/dotnet/coreclr/commit/340d69c20d57a2b161aa74c516886bf45df8ee22

5 years agoAvoid instantiating abstract class (dotnet/coreclr#27589)
Andrew Au [Mon, 4 Nov 2019 23:43:56 +0000 (15:43 -0800)]
Avoid instantiating abstract class (dotnet/coreclr#27589)

Commit migrated from https://github.com/dotnet/coreclr/commit/0b441193b7b701c4b68d758c4798f28241cfb9e3

5 years agoTweaks to existing BulkType event (dotnet/coreclr#27516)
David Wrighton [Mon, 4 Nov 2019 23:26:00 +0000 (15:26 -0800)]
Tweaks to existing BulkType event (dotnet/coreclr#27516)

- Enable specification of exact multi-dimensional array rank
- Tolerate scenarios where the name of the type is so large that it prevents generation of the BulkType event

Commit migrated from https://github.com/dotnet/coreclr/commit/fd418f6c39dde248a157ba30ae9b9685e306b0a3

5 years agoMethodDetails event (dotnet/coreclr#27515)
David Wrighton [Mon, 4 Nov 2019 20:12:16 +0000 (12:12 -0800)]
MethodDetails event (dotnet/coreclr#27515)

* MethodDetails event
- Captures enough information to allow a method to be identified to its exact token/instantiation
- Leans on BulkType events to send type information
- Send the event around all interesting events in ETW

Commit migrated from https://github.com/dotnet/coreclr/commit/5a381e7c8507777f71746ec564a6b75e38ebe089

5 years ago[master] Update dependencies from dotnet/corefx (dotnet/coreclr#27661)
dotnet-maestro[bot] [Mon, 4 Nov 2019 19:30:09 +0000 (19:30 +0000)]
[master] Update dependencies from dotnet/corefx (dotnet/coreclr#27661)

* Update dependencies from https://github.com/dotnet/corefx build 20191103.8

- Microsoft.NETCore.Platforms - 5.0.0-alpha.1.19553.8
- Microsoft.Private.CoreFx.NETCoreApp - 5.0.0-alpha.1.19553.8

* Disable Quic tests

Commit migrated from https://github.com/dotnet/coreclr/commit/2ad78933ed828e4ada57f57bd60c0aa2985641a2

5 years agoChange m_fPreemptiveGCDisabled to bool (dotnet/coreclr#27648)
pi1024e [Mon, 4 Nov 2019 17:01:03 +0000 (12:01 -0500)]
Change m_fPreemptiveGCDisabled to bool (dotnet/coreclr#27648)

Commit migrated from https://github.com/dotnet/coreclr/commit/96e08af2e7f246ad2efe9ebe68c4d4ca51f1b638

5 years agoUpdate only S.P.CoreLib for ReverseElementBits (dotnet/coreclr#27582)
Tamar Christina [Mon, 4 Nov 2019 16:40:52 +0000 (16:40 +0000)]
Update only S.P.CoreLib for ReverseElementBits (dotnet/coreclr#27582)

Commit migrated from https://github.com/dotnet/coreclr/commit/c2ae7de1e1eaaff1a0a21c6e7e0014fad8a78bfa

5 years agoSeveral GCC fixes (dotnet/coreclr#27654)
Sinan Kaya [Mon, 4 Nov 2019 16:37:08 +0000 (11:37 -0500)]
Several GCC fixes (dotnet/coreclr#27654)

* Fix compilation warning

coreclr/src/vm/arm64/virtualcallstubcpu.hpp:350:111: error: the value of ‘n’ is not usable in a constant expression
 #define PC_REL_OFFSET(_field) (DWORD)((offsetof(ResolveStub, _field) - (offsetof(ResolveStub, _failEntryPoint[n]))) & 0xffffffff)
                                                                                                               ^
coreclr/src/pal/inc/rt/palrt.h:173:56: note: in definition of macro ‘offsetof’
 #define offsetof(type, field) __builtin_offsetof(type, field)
                                                        ^~~~~
coreclr/src/vm/arm64/virtualcallstubcpu.hpp:380:19: note: in expansion of macro ‘PC_REL_OFFSET’
          offset = PC_REL_OFFSET(_resolveEntryPoint);
                   ^
I

Undefined behavior

* Remove duplicate definition

* Undefined behavior

coreclr/src/vm/arm64/virtualcallstubcpu.hpp:327:33: warning: operation on ‘n’ may be undefined [-Wsequence-point]
          _stub._slowEntryPoint[n++] = 0x1000000A | ARM64EncodeHelpers::ADR_PATCH(PC_REL_OFFSET(Dataregionbase, n));
                                ~^~
coreclr/src/vm/arm64/virtualcallstubcpu.hpp:356:33: warning: operation on ‘n’ may be undefined [-Wsequence-point]
          _stub._failEntryPoint[n++] = 0x1000000A | ARM64EncodeHelpers::ADR_PATCH(PC_REL_OFFSET(Dataregionbase, n));

* Unneeded qualifiers

* Cast fix

* Unsigned compare

Commit migrated from https://github.com/dotnet/coreclr/commit/4989fbd5a992a2682ce579d392d60e3f9e7537a7

5 years agoConsolidation resiliency fixes in CoreCLR build scripts (dotnet/coreclr#27635)
Tomáš Rylek [Mon, 4 Nov 2019 14:35:26 +0000 (06:35 -0800)]
Consolidation resiliency fixes in CoreCLR build scripts (dotnet/coreclr#27635)

Backport of my consolidation changes aimed at making principal
CoreCLR build scripts orthogonal to repo consolidation.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/3eea5cd23597276c70030338652a85ead44b763a

5 years agoYAML consolidation changes part 2 (dotnet/coreclr#27649)
Tomáš Rylek [Mon, 4 Nov 2019 10:57:31 +0000 (02:57 -0800)]
YAML consolidation changes part 2 (dotnet/coreclr#27649)

After finally getting a more or less green run in the runtime repo
I have prepared another batch of changes aimed at simplifying
the oncoming repo integration:

1) Use relative paths for script references;

2) Add new variable coreClrRepoRootDir with the appended path
separator so that we don't need to fork that everywhere;

3) Actually unify the first pair of build-test executions that
has become identical after the change;

4) Fixed several previously unseen repo root-relative paths;

5) Fixed missing propagation of testGroup in build-job;

6) Fixed run logs to include R2R in the name (Matt Mitchell pointed
out the other day this prevents us from analyzing both sets of logs);

7) Move job.yml to eng to enable using relative template paths;

8) Delete unused jobs.yml.

9) Move performance.yml to eng as run-performance-test.yml to
derive it from xplat-pipeline-job and avoid duplicating variables.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/818b35978a1681690988b2c9c3f0b6a034d91e82

5 years agoFix invalid-noreturn warning for __CorHlprThrowOOM in corhlpr.h (dotnet/coreclr#23524)
Ilia [Mon, 4 Nov 2019 10:42:54 +0000 (13:42 +0300)]
Fix invalid-noreturn warning for __CorHlprThrowOOM in corhlpr.h (dotnet/coreclr#23524)

* Fix invalid-noreturn warning for __CorHlprThrowOOM in corhlpr.h

Commit migrated from https://github.com/dotnet/coreclr/commit/c30381fbe8779e13bbc08591b86cb3d158953212

5 years agoSuspension fixes (dotnet/coreclr#27578)
Peter Sollich [Mon, 4 Nov 2019 09:07:00 +0000 (10:07 +0100)]
Suspension fixes (dotnet/coreclr#27578)

* Two simple fixes to suspension issues seen in GCPerfSim:

- Insert allow_fgc() call in background_mark_simple - this fixes the cases where there are a ton of GC handles referencing simple objects not containing pointers.

- Change PING_JIT_TIMEOUT constant from 10 milliseconds to 1 millisecond. This fixes the case where return address hijacking doesn't work quickly, because the hijacked thread doesn't return (e.g. because it's in a loop doing further calls). In this case we have to retry the hijack, and changing the timeout constant makes this happen more quickly.

Commit migrated from https://github.com/dotnet/coreclr/commit/fab7aa20dc4c5856bb4759bbbde0bb88ffd439a2

5 years agoImplement LeadingSignCount,LeadingZeroCount,PopCount (dotnet/coreclr#27568)
Egor Chesakov [Sun, 3 Nov 2019 20:42:55 +0000 (12:42 -0800)]
Implement LeadingSignCount,LeadingZeroCount,PopCount (dotnet/coreclr#27568)

Commit migrated from https://github.com/dotnet/coreclr/commit/a76dda01562ec04be3ef1847f786e0a6a969c2b6

5 years agoFix Buggy code in TimeZoneInfo (dotnet/coreclr#27591)
Tarek Mahmoud Sayed [Sun, 3 Nov 2019 18:42:33 +0000 (10:42 -0800)]
Fix Buggy code in TimeZoneInfo (dotnet/coreclr#27591)

Although couldn’t reach the corner case cause executing the buggy code, the fix here is done according to the similar code in TimeZoneInfo which show the intention of the change

https://github.com/dotnet/coreclr/blob/dotnet/coreclr@97c582975eed3260ef21e0bcc55c8c86d1e3bec8/src/System.Private.CoreLib/shared/System/TimeZoneInfo.cs#L1638
https://github.com/dotnet/coreclr/blob/dotnet/coreclr@97c582975eed3260ef21e0bcc55c8c86d1e3bec8/src/System.Private.CoreLib/shared/System/TimeZoneInfo.cs#L1568

Commit migrated from https://github.com/dotnet/coreclr/commit/cdb2f6a4a356db55861c35e5dcb2cde8c76a2ea9

5 years agoDelete two more FCalls (dotnet/coreclr#27640)
Jan Kotas [Sun, 3 Nov 2019 14:25:28 +0000 (06:25 -0800)]
Delete two more FCalls (dotnet/coreclr#27640)

Commit migrated from https://github.com/dotnet/coreclr/commit/7a3f0d8da0112e7b3f9b11695494fd0bba1b4a52

5 years agoRefactor away jithelpers.cs (dotnet/coreclr#27643)
Jan Kotas [Sun, 3 Nov 2019 14:24:45 +0000 (06:24 -0800)]
Refactor away jithelpers.cs (dotnet/coreclr#27643)

Unnecessary wrapper that lost its purpose as its original methods got refactored to other places.

Commit migrated from https://github.com/dotnet/coreclr/commit/c43cdbbf5f119b76f2b7121abee3340c46043289

5 years agoUse simple Array.Copy overload where possible (dotnet/coreclr#27641)
Jan Kotas [Sun, 3 Nov 2019 12:07:39 +0000 (04:07 -0800)]
Use simple Array.Copy overload where possible (dotnet/coreclr#27641)

The simple Array.Copy overload does not come with a performance penalty anymore.

Commit migrated from https://github.com/dotnet/coreclr/commit/27b334b57e5e146742005ca72851a083d9371b98

5 years agoConsolidate *.Fast.cs (dotnet/coreclr#27644)
Jan Kotas [Sun, 3 Nov 2019 11:55:42 +0000 (03:55 -0800)]
Consolidate *.Fast.cs (dotnet/coreclr#27644)

System.Memory OOB package that this split was originally done for does not exist anymore.

Commit migrated from https://github.com/dotnet/coreclr/commit/8352294d22832a59136201d7eec455724891f593

5 years agoRewrite of Array.Copy fast path in C# (dotnet/coreclr#27634)
Jan Kotas [Sun, 3 Nov 2019 05:12:46 +0000 (22:12 -0700)]
Rewrite of Array.Copy fast path in C# (dotnet/coreclr#27634)

Contributes to dotnet/coreclr#27106

Commit migrated from https://github.com/dotnet/coreclr/commit/1b9ee9974bb68d3eab329154203ab1b6c55b198a

5 years agoFix typo in Tuple.cs (dotnet/coreclr#27637)
Levi Broderick [Sun, 3 Nov 2019 00:24:28 +0000 (17:24 -0700)]
Fix typo in Tuple.cs (dotnet/coreclr#27637)

Reported by https://github.com/dotnet/corefx/issues/42321

Commit migrated from https://github.com/dotnet/coreclr/commit/1bf3a15ae81c90c2f08f123faa996ac7eb34a432

5 years agoCompile with gcc 4.8 (dotnet/coreclr#27625)
Sinan Kaya [Sat, 2 Nov 2019 19:29:22 +0000 (15:29 -0400)]
Compile with gcc 4.8 (dotnet/coreclr#27625)

* Remove VOID on parameters

* Detect compiler support

* Clarify version

In file included from coreclr/src/vm/dumpdiagnosticprotocolhelper.h:11:0,
                 from coreclr/src/vm/dumpdiagnosticprotocolhelper.cpp:7:
coreclr/src/vm/diagnosticsprotocol.h: In member function ‘bool DiagnosticsIpc::IpcMessage::Initialize(HRESULT)’:
coreclr/src/vm/diagnosticsprotocol.h:239:56: error: call of overloaded ‘Initialize(const DiagnosticsIpc::IpcHeader&, HRESULT&)’ is ambiguous
             return Initialize(GenericErrorHeader, error);
                                                        ^
coreclr/src/vm/diagnosticsprotocol.h:239:56: note: candidates are:
coreclr/src/vm/diagnosticsprotocol.h:196:14: note: bool DiagnosticsIpc::IpcMessage::Initialize(DiagnosticsIpc::IpcHeader, T&) [with T = int]
         bool Initialize(IpcHeader header, T& payload)
              ^
coreclr/src/vm/diagnosticsprotocol.h:213:14: note: bool DiagnosticsIpc::IpcMessage::Initialize(DiagnosticsIpc::IpcHeader, T&&) [with T = int&]
         bool Initialize(IpcHeader header, T&& payload)
              ^

Commit migrated from https://github.com/dotnet/coreclr/commit/1b53ff1e38f774bb50666ffc5a2595996f90e8dd

5 years agoEnvironGetenv: use strncmp instead of strlen and memcmp (dotnet/coreclr#27632)
Bond-009 [Sat, 2 Nov 2019 17:13:47 +0000 (18:13 +0100)]
EnvironGetenv: use strncmp instead of strlen and memcmp (dotnet/coreclr#27632)

Instead of iterating twice over the string, first for searching the
null-terminator and then to compare it to `name`, we only iterate
over it once.

Commit migrated from https://github.com/dotnet/coreclr/commit/d606bff508cf57477b21ebbe8c8a2f6494feed7e

5 years agoClean up package restoration in CoreCLR test build (dotnet/coreclr#27633)
Tomáš Rylek [Sat, 2 Nov 2019 16:59:25 +0000 (09:59 -0700)]
Clean up package restoration in CoreCLR test build (dotnet/coreclr#27633)

During investigation of package version issues in consolidation
scouting I noticed that package restoration logic in the test build
script is quite silly: we first restore all packages but ignore the
exit code, subsequently we restore all packages again before
building each test chunk and fail if we're unable to.

I have simplified this so that we properly exit when we fail to
restore packages upfront; after that, we no longer need to restore
packages before building each test chunk.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/933e8f07e4346baef486d3aebc2339a29dd8a8ec

5 years agoRemove staled clrdbg.sln file. (dotnet/coreclr#27631)
Huo Yaoyuan [Sat, 2 Nov 2019 15:10:11 +0000 (23:10 +0800)]
Remove staled clrdbg.sln file. (dotnet/coreclr#27631)

Commit migrated from https://github.com/dotnet/coreclr/commit/3d7e3d21dbe057f409a78c07542bc8cb3876e18b

5 years agoNormalize trailing whitespaces (dotnet/coreclr#27626)
Jan Kotas [Sat, 2 Nov 2019 13:29:45 +0000 (06:29 -0700)]
Normalize trailing whitespaces (dotnet/coreclr#27626)

Normalize trailing whitespaces in frequently changing files (docs and sources)

Commit migrated from https://github.com/dotnet/coreclr/commit/ed5dc831b09a0bfed76ddad684008bebc86ab2f0

5 years agoIntroduce variables for CoreCLR repo root and script extension (dotnet/coreclr#27624)
Tomáš Rylek [Sat, 2 Nov 2019 11:19:46 +0000 (04:19 -0700)]
Introduce variables for CoreCLR repo root and script extension (dotnet/coreclr#27624)

This change introduces two new variables usable in CoreCLR CI pipelines
(xplat-pipeline-job): coreClrRepoRoot points at the root of the CoreCLR
repo and scriptExt is the OS-specific script extension (.cmd on Windows,
.sh on POSIX).

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/290483ac4cff4dc2929298d0bb674792afd7ce33

5 years agoMake IncrementingEventCounter test less timing-sensitive (dotnet/coreclr#27621)
Sung Yoon Whang [Sat, 2 Nov 2019 05:56:58 +0000 (22:56 -0700)]
Make IncrementingEventCounter test less timing-sensitive (dotnet/coreclr#27621)

* Make IncrementingEventCounter test less timing-sensitive

* Fix build

Commit migrated from https://github.com/dotnet/coreclr/commit/9b809c9b840bbd68b1ff0625ad4dea3024d7696f

5 years agoRewrite a few more array FCalls in C# (dotnet/coreclr#27603)
Jan Kotas [Sat, 2 Nov 2019 04:39:41 +0000 (21:39 -0700)]
Rewrite a few more array FCalls in C# (dotnet/coreclr#27603)

Commit migrated from https://github.com/dotnet/coreclr/commit/cbe5ac16fedcccba1d4d90fd7329d92835265b97

5 years agoClean up jitstd folder. (dotnet/coreclr#27542)
Sergey Andreenko [Sat, 2 Nov 2019 00:44:52 +0000 (00:44 +0000)]
Clean up  jitstd folder. (dotnet/coreclr#27542)

* Delete solution files.

They were referencing unexisting files.

* Delete unused files with templates from jitstd.

Many of them have build errors when you instantiate them.

* fix ubuntu build breaks.

The header files did not include the necessary dependencies.

In the past it was ok because the compilation unit included jitstd.h that had #include "utility.h", #include "pair.h", and #include "type_traits.h" before #include "list.h".

Commit migrated from https://github.com/dotnet/coreclr/commit/14b650f35ebeed83e666039a1d3cb2eb7801c666

5 years agoRemove FEATURE_VERSIONING_LOG define (dotnet/coreclr#27618)
Elinor Fung [Sat, 2 Nov 2019 00:29:19 +0000 (17:29 -0700)]
Remove FEATURE_VERSIONING_LOG define (dotnet/coreclr#27618)

Commit migrated from https://github.com/dotnet/coreclr/commit/989e7c7050d848f0aace9d1a79a777e033a4d3dd

5 years agoRemove UCRTVersion workaround and re-enable Windows formatting jobs. (dotnet/coreclr...
Eugene Rozenfeld [Sat, 2 Nov 2019 00:06:56 +0000 (17:06 -0700)]
Remove UCRTVersion workaround and re-enable Windows formatting jobs. (dotnet/coreclr#27514)

VS2017 VsDevCmd had a bug in setting of UCRTVersion environment variable.
That was affecting Interop tests and Windows formatting jobs.
We added a workaround for the former (dotnet/coreclr#25444) and disabled Windows
formatting jobs (dotnet/coreclr#25507, dotnet/coreclr#25902).

The bug has been fixed in VS2019. Since we switched to VS2019 pool we
can remove the workaround and re-enable Windows formatting jobs.

Fixes dotnet/coreclr#25447, dotnet/coreclr#25499.

Commit migrated from https://github.com/dotnet/coreclr/commit/f5ca317f26426bc05688c65fcc31a51d90f82fbe

5 years ago[master] Update dependencies from dotnet/core-setup (dotnet/coreclr#27527)
dotnet-maestro[bot] [Fri, 1 Nov 2019 23:58:23 +0000 (23:58 +0000)]
[master] Update dependencies from dotnet/core-setup (dotnet/coreclr#27527)

* Update dependencies from https://github.com/dotnet/core-setup build 20191028.5

- Microsoft.NETCore.App - 5.0.0-alpha.1.19528.5

* Update dependencies from https://github.com/dotnet/core-setup build 20191030.10

- Microsoft.NETCore.App - 5.0.0-alpha.1.19530.10

* Update dependencies from https://github.com/dotnet/core-setup build 20191031.19

- Microsoft.NETCore.App - 5.0.0-alpha.1.19531.19

* Remove Microsoft.WindowsDesktop.App from KnownFrameworkReference items
when building test host for corefx tests

Commit migrated from https://github.com/dotnet/coreclr/commit/e4863f47ec226fb1dd0b20cf953944237c87883c

5 years agotest/runtest.py: fix path construction in copy_tree (dotnet/coreclr#21991)
Konstantin Baladurin [Fri, 1 Nov 2019 23:57:22 +0000 (02:57 +0300)]
test/runtest.py: fix path construction in copy_tree (dotnet/coreclr#21991)

Commit migrated from https://github.com/dotnet/coreclr/commit/d46c65a8f59b240d536a43cb1288c344d39adbe7

5 years agoDisable JIT/Directed/pinvoke/pinvoke-examples test. (dotnet/coreclr#27614)
Aaron Robinson [Fri, 1 Nov 2019 23:18:08 +0000 (16:18 -0700)]
Disable JIT/Directed/pinvoke/pinvoke-examples test. (dotnet/coreclr#27614)

* Test and fix pinvoke-examples test

Commit migrated from https://github.com/dotnet/coreclr/commit/cceb5c80f795f889eaa1ae4ac6e17cdff6acf305

5 years ago[master] Update dependencies from dotnet/arcade (dotnet/coreclr#26784)
dotnet-maestro[bot] [Fri, 1 Nov 2019 21:02:20 +0000 (21:02 +0000)]
[master] Update dependencies from dotnet/arcade (dotnet/coreclr#26784)

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19468.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19468.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19468.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19468.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19468.2

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19469.4
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19469.4
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19469.4
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19469.4
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19469.4

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19469.8
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19469.8
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19469.8
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19469.8
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19469.8

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19470.9
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19470.9
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19470.9
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19470.9
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19470.9

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19473.5
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19473.5
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19473.5
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19473.5
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19473.5

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19476.6
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19476.6
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19476.6
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19476.6
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19476.6

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19477.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19477.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19477.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19477.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19477.2

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19480.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19480.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19480.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19480.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19480.3

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19501.4
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19501.4
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19501.4
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19501.4
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19501.4

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19502.11
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19502.11
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19502.11
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19502.11
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19502.11

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19504.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19504.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19504.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19504.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19504.2

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19505.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19505.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19505.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19505.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19505.1

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19506.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19506.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19506.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19506.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19506.1

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19509.5
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19509.5
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19509.5
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19509.5
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19509.5

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19510.4
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19510.4
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19510.4
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19510.4
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19510.4

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19511.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19511.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19511.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19511.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19511.1

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19515.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19515.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19515.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19515.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19515.1

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19515.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19515.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19515.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19515.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19515.2

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19517.8
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19517.8
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19517.8
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19517.8
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19517.8

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19518.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19518.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19518.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19518.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19518.2

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19521.4
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19521.4
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19521.4
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19521.4
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19521.4

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19522.8
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19522.8
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19522.8
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19522.8
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19522.8

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19523.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19523.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19523.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19523.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19523.3

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19524.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19524.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19524.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19524.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19524.2

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19525.2
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19525.2
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19525.2
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19525.2
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19525.2

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19526.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19526.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19526.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19526.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19526.1

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19527.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19527.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19527.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19527.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19527.3

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19528.5
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19528.5
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19528.5
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19528.5
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19528.5

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19529.9
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19529.9
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19529.9
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19529.9
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19529.9

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19530.15
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19530.15
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19530.15
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19530.15
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19530.15

* Disable Regressions/coreclr/GitHub_22888/test22888

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

- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19531.14
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19531.14
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19531.14
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19531.14
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19531.14

* Manual darc update from build '20191101.2'

Commit migrated from https://github.com/dotnet/coreclr/commit/54a36c2183977abfbb4dbc9171a5834d5b988b4c

5 years agoImplement GC.KeepAlive JIT intrinsic (dotnet/coreclr#27554)
Jan Kotas [Fri, 1 Nov 2019 20:45:06 +0000 (13:45 -0700)]
Implement GC.KeepAlive JIT intrinsic (dotnet/coreclr#27554)

Fixes dotnet/coreclr#27541

Commit migrated from https://github.com/dotnet/coreclr/commit/c3dc5434fe2e41357222b4ae3dd9749d38b3cd8f

5 years agoFix GC holes in array marshallers in the field scenario (dotnet/coreclr#27562)
Jeremy Koritzinsky [Fri, 1 Nov 2019 20:21:36 +0000 (13:21 -0700)]
Fix GC holes in array marshallers in the field scenario (dotnet/coreclr#27562)

* Correctly protect references to objects in manually-managed code called by IL marshalers in the field scenarios. Use RuntimeHelpers.GetRawData to simplify layout class marshalling.

* Add additional protects for SAFEARRAY marshalling when used in the field scenario.

* Remove dead code.

* Fix possible GC hole from order of argument evaluation.

* Don't clean up fields on a managed object when there's no managed object.

Commit migrated from https://github.com/dotnet/coreclr/commit/e658b97990f77dca2dba446386e9d8d4d71556e1

5 years agoUpdate path to crossgen in performance tracing documentation. (dotnet/coreclr#27615)
Brian Robbins [Fri, 1 Nov 2019 20:16:41 +0000 (13:16 -0700)]
Update path to crossgen in performance tracing documentation. (dotnet/coreclr#27615)

Commit migrated from https://github.com/dotnet/coreclr/commit/a8affe49e6ace9c8ff2bd3b5898b0c0be0e1175a

5 years agoUpdate ILLink.Tasks (dotnet/coreclr#25596)
Sven Boemer [Fri, 1 Nov 2019 18:21:51 +0000 (11:21 -0700)]
Update ILLink.Tasks (dotnet/coreclr#25596)

* Update ILLink.Tasks

This adds a few roots that are needed by reflection APIs, experimental
(internal) APIs, and by the runtime.

* Remove MemoryLoadChangeNotification root

The Register/Unregister methods were already being removed by the
linker, so we do not need to introduce them.

* Keep ThreadPoolBoundHandle implementation of IDisposable

* Update to linker version with unusedinterfaces opt

* GeneratePackagePath -> GeneratePathProperty

This wasn't causing any problems since these packages happened to have
tools folders, which always get the path property generated. We could
get rid of them, but perhaps it's better to be explicit.

* Prevent problems when running on desktop

I'm not sure we ever build corelib using desktop MSBuild, but this
should prevent problems like
https://github.com/dotnet/corefx/pull/42266 if we do.

Commit migrated from https://github.com/dotnet/coreclr/commit/34fe045a27e150bde7ee54e0d5f0df635922519d

5 years agoDelete clr-configuration-knobs.md (dotnet/coreclr#27612)
Jan Kotas [Fri, 1 Nov 2019 16:19:12 +0000 (09:19 -0700)]
Delete clr-configuration-knobs.md (dotnet/coreclr#27612)

This is permanently out of date and the document creates a false sense of all these settings being officially supported. The officially supported settings are documented in https://github.com/dotnet/docs

Fixes dotnet/coreclr#27611

Commit migrated from https://github.com/dotnet/coreclr/commit/dcd7304cbc93a2ef5ca18f560736dacb4026542f

5 years agoUse Version suffix for version properties (dotnet/coreclr#27606)
Viktor Hofer [Fri, 1 Nov 2019 13:32:59 +0000 (14:32 +0100)]
Use Version suffix for version properties (dotnet/coreclr#27606)

Commit migrated from https://github.com/dotnet/coreclr/commit/833493193a849311b56026303bec2eaf11eb7d67

5 years agoRemove unused PropertyMap class from binder (dotnet/coreclr#27601)
Elinor Fung [Fri, 1 Nov 2019 13:25:17 +0000 (06:25 -0700)]
Remove unused PropertyMap class from binder (dotnet/coreclr#27601)

Commit migrated from https://github.com/dotnet/coreclr/commit/e64ae21d4e141bdfc8a29881157126b373e654c4

5 years agoDisable another static analysis rule (dotnet/corefxdotnet/coreclr#42265)
Stephen Toub [Thu, 31 Oct 2019 17:36:52 +0000 (13:36 -0400)]
Disable another static analysis rule (dotnet/corefxdotnet/coreclr#42265)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/25520b174be2a8584e9d016a1eaa06b6120c8d6a

5 years agoRemove unused functions on IAssemblyName (dotnet/coreclr#27592)
Elinor Fung [Fri, 1 Nov 2019 02:34:48 +0000 (19:34 -0700)]
Remove unused functions on IAssemblyName (dotnet/coreclr#27592)

Commit migrated from https://github.com/dotnet/coreclr/commit/24b4e11161cf217672fcd3c62158b12c93822e18

5 years agoPublish zipped product build bits like we do for test artifacts (dotnet/coreclr#27540)
Tomáš Rylek [Fri, 1 Nov 2019 01:24:19 +0000 (18:24 -0700)]
Publish zipped product build bits like we do for test artifacts (dotnet/coreclr#27540)

I have renamed xplat-test-job to xplat-pipeline-job. In perf-job
I duplicated a few variables from xplat-pipeline-job as the job
is currently based on a completely different YAML file hierarchy.
It would be probably useful to unify these two at some point but
I believe it to be beyond the scope of my simple cleanup w.r.t.
product build manipulation.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/9970bccb5ea8dee5e449845bff93e3677810a2dd

5 years agoDocumentation for Native Hash Table (dotnet/coreclr#27572)
Andrew Au [Thu, 31 Oct 2019 23:14:12 +0000 (16:14 -0700)]
Documentation for Native Hash Table (dotnet/coreclr#27572)

Commit migrated from https://github.com/dotnet/coreclr/commit/01d2c1316843648d496d0530be3236efd2114e53

5 years agoAdd explicit layout checks to Crossgen2 (dotnet/coreclr#27054)
Tomáš Rylek [Thu, 31 Oct 2019 20:59:18 +0000 (13:59 -0700)]
Add explicit layout checks to Crossgen2 (dotnet/coreclr#27054)

This change adds explicit layout checks using a loose port of the
CoreCLR algorithm i.e. creating an array representing the individual
bytes of the type layout and gradually filling it in with GC reference /
non-GC reference markers for the individual fields.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/97c582975eed3260ef21e0bcc55c8c86d1e3bec8

5 years agoFixing the casing of GT_HWIntrinsic to GT_HWINTRINSIC (dotnet/coreclr#27583)
Tanner Gooding [Thu, 31 Oct 2019 20:48:06 +0000 (13:48 -0700)]
Fixing the casing of GT_HWIntrinsic to GT_HWINTRINSIC (dotnet/coreclr#27583)

Commit migrated from https://github.com/dotnet/coreclr/commit/2c60f4b0dc0b853c98dc3a10491f0a84ee2f3870

5 years agoFix dotnet/coreclr#27326 - Don't decrement curOffsReg when it is 0, as it is an unsig...
Brian Sullivan [Thu, 31 Oct 2019 20:37:56 +0000 (13:37 -0700)]
Fix dotnet/coreclr#27326 - Don't decrement curOffsReg when it is 0, as it is an unsigned and will wrap to MAX_UINT (dotnet/coreclr#27561)

Fixes dotnet/coreclr#27326

Commit migrated from https://github.com/dotnet/coreclr/commit/21c0fefd52cf8035d4ce6e3d410223cc1e2533ea

5 years agoContain block store addresses
Mike Danes [Thu, 19 Sep 2019 19:56:45 +0000 (22:56 +0300)]
Contain block store addresses

Commit migrated from https://github.com/dotnet/coreclr/commit/e00ac4f87aa8dca798f65b07e8abce31b78ed54d

5 years agoTiered rejit work items (dotnet/coreclr#27147)
Brian Sullivan [Thu, 31 Oct 2019 18:05:47 +0000 (11:05 -0700)]
Tiered rejit work items (dotnet/coreclr#27147)

* Use info.compFullName as the input to create the JIT's MethodHash
Update JitOrder to print out MethodHash and PerfScore
Change eeGetMethodFullName to expand class and struct names for the argument types and the return type
Fixed issue where bad edge weight were set in fgFoldConditional

Made flEdgeWeightMin and flEdgeWeightMax private fields
Added new method setEdgeWeights
Added support method eeGetArgClass

Added source for Tool to parse JitOrder output and associate PerfScores

* Remove jitOrderParser.cs

Commit migrated from https://github.com/dotnet/coreclr/commit/c6697a00ef7ecba6012b1a52f13401ce06b8295b

5 years agoUpdate analyzer versions (dotnet/corefxdotnet/coreclr#42249)
Stephen Toub [Thu, 31 Oct 2019 04:27:10 +0000 (00:27 -0400)]
Update analyzer versions (dotnet/corefxdotnet/coreclr#42249)

* Update analyzer packages to latest NuGet versions

* Fix new warnings

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/fbf9e07f573f2db70de7aeae6aff963ca4c1eae6

5 years agoRemove obsolete git mirror files (dotnet/coreclr#27584)
Viktor Hofer [Thu, 31 Oct 2019 16:27:39 +0000 (17:27 +0100)]
Remove obsolete git mirror files (dotnet/coreclr#27584)

Commit migrated from https://github.com/dotnet/coreclr/commit/db5f07cc6a51a8cb3d0b59a53f4313f086da2765

5 years agoRemove BINDER_DEBUG_LOG (dotnet/coreclr#27574)
Elinor Fung [Thu, 31 Oct 2019 12:58:40 +0000 (05:58 -0700)]
Remove BINDER_DEBUG_LOG (dotnet/coreclr#27574)

Commit migrated from https://github.com/dotnet/coreclr/commit/77b2c2b0fb5148228ae917ae92c35220189108a9

5 years agoClean up Uri.UnescapeDataString (dotnet/corefxdotnet/coreclr#42225)
Stephen Toub [Thu, 31 Oct 2019 00:00:25 +0000 (20:00 -0400)]
Clean up Uri.UnescapeDataString (dotnet/corefxdotnet/coreclr#42225)

- Use string.IndexOf rather than an open-coded, unsafe loop.
- Avoid an unnecessary SequenceEquals at the end: we're only at this point if a `%` was found highlighting that something escaped was found.
- Use stack memory for smaller inputs if possible, to avoid unnecessary ArrayPool interaction
- Remove an unnecessary argument to a helper function.
- Fix ValueStringBuilder.Grow to only copy the contained data.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/32e2ae94dc818e5eaa364f06bf36478c6138a13c

5 years agoDon't needlessly refresh proc count (dotnet/coreclr#27543)
Ben Adams [Thu, 31 Oct 2019 09:47:57 +0000 (09:47 +0000)]
Don't needlessly refresh proc count (dotnet/coreclr#27543)

Commit migrated from https://github.com/dotnet/coreclr/commit/946e57b61a4db9ccb574fc3a754f783208080947

5 years agoFix GC stress runs (dotnet/coreclr#27565)
Tomáš Rylek [Thu, 31 Oct 2019 06:40:41 +0000 (23:40 -0700)]
Fix GC stress runs (dotnet/coreclr#27565)

As Jeremy discovered, my recent CoreCLR pipeline optimization change
broke GC stress tests. This change should fix the problem; I have
also deleted the platform-matrix-managed-test-build script that is
no longer used.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/d931f7772e9d7ee9299682fcb43b8d9a0a9429ca

5 years agoFix slow tailcalls to VSD (dotnet/coreclr#27363)
Jakob Botsch Nielsen [Thu, 31 Oct 2019 00:04:21 +0000 (01:04 +0100)]
Fix slow tailcalls to VSD (dotnet/coreclr#27363)

* Fix slow tailcalls to VSDs

This was broken when fgCanFastTailCall was changed to call
fgInitArgInfo. fgInitArgInfo has side effects and will in some cases add
arguments to the arg list. Specifically for calls to VSD, the VSD arg is
added, however this case is treated specially for slow tailcalls and it
does not expect the arg to be here.

This targeted fix just removes this arg from the arg list.

* Reenable more_tailcalls on x64 Windows

* Disable more_tailcalls on Unix, arm32 and arm64

* Address feedback

* Disable STRESS_UNSAFE_BUFFER_CHECKS for more_tailcalls

Commit migrated from https://github.com/dotnet/coreclr/commit/f4a886369b270d648552d4ae973e1c92d4202b8c

5 years agoEnable block init unroll on ARM32 (dotnet/coreclr#27450)
mikedn [Wed, 30 Oct 2019 18:04:06 +0000 (20:04 +0200)]
Enable block init unroll on ARM32 (dotnet/coreclr#27450)

* Enable block init unroll on ARM32

* Small LowerBlockStore cleanup

Commit migrated from https://github.com/dotnet/coreclr/commit/41546b05e31c0ba72537ec6445176086964717bb

5 years agoJIT: add pass to merge common throw helper calls (dotnet/coreclr#27113)
Andy Ayers [Wed, 30 Oct 2019 16:58:06 +0000 (09:58 -0700)]
JIT: add pass to merge common throw helper calls (dotnet/coreclr#27113)

Look for blocks with single statement noreturn calls, and try to reroute
flow so there's just one block call that all predecessors target.

Resolves dotnet/coreclr#14770.

Note this impairs debuggability of optimized code a bit, as it can change which
line of code apparently invokes a throw helper in a backtrace. But since we're
already commoning jit-inserted throw helpers (like array index OOB) this is not
breaking any new ground.

We could also handle commoning BBJ_THROW blocks, with some extra effort,
but prototyping indicates duplicate throws are pretty rare.

This phase runs just before `optOptimizeFlow`, so that we can leverage
the ref counts and predecessor lists to ensure we make correct flow updates.

It doesn't bother trying to clean out IR, that happens naturally as blocks
become unreferenced.

In some cases nothrow helpers end up being tail call candidates. We now suppress
tail calling noreturn methods if there is more than one such call site in the method,
hoping that instead we can merge the calls.

Commit migrated from https://github.com/dotnet/coreclr/commit/b962c97257400bee07805ccee66cd85d97195b40