platform/upstream/dotnet/runtime.git
7 years agoMerge pull request dotnet/coreclr#10079 from hseok-oh/ci/x86_job
Gaurav Khanna [Fri, 10 Mar 2017 15:58:21 +0000 (07:58 -0800)]
Merge pull request dotnet/coreclr#10079 from hseok-oh/ci/x86_job

[Linux/x86] Enable CI Linux/x86 build

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

7 years agoMerge pull request dotnet/coreclr#10061 from adiaaida/linuxThroughputTesting
Michelle McDaniel [Fri, 10 Mar 2017 15:39:55 +0000 (07:39 -0800)]
Merge pull request dotnet/coreclr#10061 from adiaaida/linuxThroughputTesting

Add linux throughput testing support

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

7 years agoRemove faulty asserts from ArraySegment (dotnet/coreclr#10086)
Stephen Toub [Fri, 10 Mar 2017 14:28:15 +0000 (09:28 -0500)]
Remove faulty asserts from ArraySegment (dotnet/coreclr#10086)

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

7 years ago[Linux/x86] Enable CI Linux/x86 build job
Hyeongseok Oh [Fri, 10 Mar 2017 01:17:56 +0000 (10:17 +0900)]
[Linux/x86] Enable CI Linux/x86 build job

Make new CI job: Linux/x86 build (debug, checked, release)
- Triggered on-demand
- Docker for crossbuild
- Use build-rootfs.sh script to make x86 rootfs

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

7 years agoMove more types into the shared partition. (dotnet/coreclr#10068)
Atsushi Kanamori [Fri, 10 Mar 2017 03:20:12 +0000 (19:20 -0800)]
Move more types into the shared partition. (dotnet/coreclr#10068)

* Split/Move files verbatim into shared partition.

* Style cleanup.

- Delete unused usings

- Use autoprops when possible

- Lambda syntax for TypeDelegator
  (yes, it's a lot of code review noise
  but if there was ever a canonical use-case
  for that syntax, this is it.)

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

7 years agoAdd linux throughput testing support
Michelle McDaniel [Wed, 8 Mar 2017 22:58:03 +0000 (22:58 +0000)]
Add linux throughput testing support

This change modifies perf-prep.sh, run-throughput-perf.py and perf.groovy
to add support for linux throughput testing. The following changes have
been made:

1. Update run-throughput-perf to specify the jit differently on linux and
windows. Create a new set of dlls to crossgen on linux. The following are
removed: CodeAnalysis, CodeAnalysis.VisualBasic, CodeAnalysis.Csharp
(these do not exist in the corefx runtime dir that we will be using on
linux), System, System.Core, System.XML (these are significantly smaller
on Linux than windows). Make the list of architectures a dictionary so we
can specify different arches for different oses. Change the path to
crossgen/the jit to the Product directory. Change the timer to
timeit.default_timer, which will pick the most accurate timer for each
platform.

2. Modify perf-prep for throughput purposes. In throughput testing, we
need to enlist in corefx and build it. We pick a specific commit to enlist
in so that testing will be consistent. The rest of the work that perf-prep
can be skipped for throughput testing, as we are not running tests.

3. Update perf.groovy with throughput jobs on Linux.

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

7 years agoMerge pull request dotnet/coreclr#10032 from pgavlin/LastUsesBuildIntervals
Pat Gavlin [Fri, 10 Mar 2017 00:26:11 +0000 (16:26 -0800)]
Merge pull request dotnet/coreclr#10032 from pgavlin/LastUsesBuildIntervals

Calculate last uses while building intervals.

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

7 years agoFix incremental build of resources injected to coreclr.dll (dotnet/coreclr#10045)
Jan Vorlicek [Thu, 9 Mar 2017 22:28:24 +0000 (23:28 +0100)]
Fix incremental build of resources injected to coreclr.dll (dotnet/coreclr#10045)

* Fix incremental build of resources injected to coreclr.dll

This change fixes the build of resources injected to coreclr.dll so that it
happens only when its dependencies change and not at every build.

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

7 years agoSupport cross compiling for Zesty (dotnet/coreclr#10066)
Frederik Carlier [Thu, 9 Mar 2017 22:27:55 +0000 (23:27 +0100)]
Support cross compiling for Zesty (dotnet/coreclr#10066)

* Support Zesty, newer liblldb packages

* Describe lldb options

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

7 years agoMerge pull request dotnet/coreclr#9728 from rahku/fixIssue8683
Rahul Kumar [Thu, 9 Mar 2017 21:49:22 +0000 (13:49 -0800)]
Merge pull request dotnet/coreclr#9728 from rahku/fixIssue8683

Ignore binder context for corelib when performing binding cache lookup

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

7 years agoImprove span copy of pointers and structs containing pointers (dotnet/coreclr#9999)
Koundinya Veluri [Thu, 9 Mar 2017 21:12:43 +0000 (13:12 -0800)]
Improve span copy of pointers and structs containing pointers (dotnet/coreclr#9999)

Improve span copy of pointers and structs containing pointers

Fixes dotnet/coreclr#9161

PR dotnet/coreclr#9786 fixes perf of span copy of types that don't contain references

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

7 years agoMerge pull request dotnet/coreclr#10063 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Thu, 9 Mar 2017 21:03:28 +0000 (13:03 -0800)]
Merge pull request dotnet/coreclr#10063 from dotnet-bot/master-UpdateDependencies

Update CoreClr to beta-25109-03 (master)

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

7 years agoIgnore binder context for corelib when performing binding cache lookup
Rahul Kumar [Thu, 23 Feb 2017 00:54:48 +0000 (16:54 -0800)]
Ignore binder context for corelib when performing binding cache lookup

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

7 years agoUpdate CoreClr to beta-25109-03
dotnet-bot [Thu, 9 Mar 2017 18:28:01 +0000 (18:28 +0000)]
Update CoreClr to beta-25109-03

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

7 years agoMerge pull request dotnet/coreclr#10055 from tannergooding/vs2017
Gaurav Khanna [Thu, 9 Mar 2017 17:27:09 +0000 (09:27 -0800)]
Merge pull request dotnet/coreclr#10055 from tannergooding/vs2017

Updating the windows-instructions to list the minimum install requirements for VS2017 and to clarify that MSDIA120.dll must be registered.

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

7 years ago[Ryujit/ARM32] Support binary operator for decomposed long (dotnet/coreclr#9978)
Hyung-Kyu Choi [Thu, 9 Mar 2017 17:10:21 +0000 (02:10 +0900)]
[Ryujit/ARM32] Support binary operator for decomposed long (dotnet/coreclr#9978)

Implement binary operator for decomposed long type
in Lowering::TreeNodeInfoInit and CodeGen::genGetInsForOper,
i.e. GT_ADD_HI, GT_ADD_LO, GT_SUB_HI and GT_SUB_LO.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/85641ec931be7f275fe9efcef44f79e1b287fb7f

7 years agoUpdating the windows-instructions to list the minimum install requirements for VS2017...
Tanner Gooding [Thu, 9 Mar 2017 17:08:58 +0000 (09:08 -0800)]
Updating the windows-instructions to list the minimum install requirements for VS2017 and to clarify that MSDIA120.dll must be registered.

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

7 years agoMerge pull request dotnet/coreclr#10053 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Thu, 9 Mar 2017 17:01:17 +0000 (09:01 -0800)]
Merge pull request dotnet/coreclr#10053 from dotnet-bot/master-UpdateDependencies

Update CoreClr, CoreFx to beta-25109-01, beta-25109-03, respectively (master)

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

7 years agoUpdate CoreClr, CoreFx to beta-25109-01, beta-25109-03, respectively
dotnet-bot [Thu, 9 Mar 2017 15:25:54 +0000 (15:25 +0000)]
Update CoreClr, CoreFx to beta-25109-01, beta-25109-03, respectively

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

7 years agoAggressiveInlining AsBytes and NonPortableCast (dotnet/coreclr#10057)
Ahson Ahmed Khan [Thu, 9 Mar 2017 14:45:45 +0000 (06:45 -0800)]
AggressiveInlining AsBytes and NonPortableCast (dotnet/coreclr#10057)

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

7 years agoMove System.Security attributes to shared partition. (dotnet/coreclr#10036)
Atsushi Kanamori [Thu, 9 Mar 2017 14:44:26 +0000 (06:44 -0800)]
Move System.Security attributes to shared partition. (dotnet/coreclr#10036)

* Split System\Security\Attributes.cs into properly named files.

* Formatting cleanup

"sealed public" => "public sealed"

"System.Attribute" => "Attribute"

Use autoprops when possible.

Be explicit about nullary constructors
 (since 90% of them already were.)

* Remove blank line.

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

7 years agoDo not set the last use bit on UVR ref positions.
Pat Gavlin [Thu, 9 Mar 2017 06:10:36 +0000 (22:10 -0800)]
Do not set the last use bit on UVR ref positions.

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

7 years agoFix extend lifetimes stress.
Pat Gavlin [Thu, 9 Mar 2017 05:51:47 +0000 (21:51 -0800)]
Fix extend lifetimes stress.

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

7 years ago[x86/Linux] Correctly adjust stack for double aligned frames (dotnet/coreclr#9998)
Jonghyun Park [Thu, 9 Mar 2017 01:27:51 +0000 (10:27 +0900)]
[x86/Linux] Correctly adjust stack for double aligned frames (dotnet/coreclr#9998)

[x86/Linux] Correct stack align for double aligned frames

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

7 years ago[x86/Linux] 16-byte aligned UMThunkStubs (dotnet/coreclr#9997)
Jonghyun Park [Thu, 9 Mar 2017 01:19:57 +0000 (10:19 +0900)]
[x86/Linux] 16-byte aligned UMThunkStubs (dotnet/coreclr#9997)

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

7 years agoMerge pull request dotnet/coreclr#9956 from tannergooding/vs2017
Tanner Gooding [Thu, 9 Mar 2017 00:16:42 +0000 (16:16 -0800)]
Merge pull request dotnet/coreclr#9956 from tannergooding/vs2017

Updating the build scripts to support VS2017.

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

7 years agoUpdate to buildtools version 1.0.27-prerelease-01407-02, and enable creating transpor...
chcosta [Thu, 9 Mar 2017 00:07:32 +0000 (16:07 -0800)]
Update to buildtools version 1.0.27-prerelease-01407-02, and enable creating transport packages (dotnet/coreclr#10020)

* Update BuildTools fixes

* Update to buildtools version 1.0.27-prerelease-01407-02, and enable
building transport packages

* fix netcore project

* Avoid msb3644 error

* Fix bad copy

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

7 years agoMerge pull request dotnet/coreclr#10038 from BruceForstall/DontBuildLegacy
Bruce Forstall [Thu, 9 Mar 2017 00:05:37 +0000 (16:05 -0800)]
Merge pull request dotnet/coreclr#10038 from BruceForstall/DontBuildLegacy

Stop building x86 LEGACY_BACKEND

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

7 years agoRevise Interop TC Calling Convention (dotnet/coreclr#10014)
Jonghyun Park [Wed, 8 Mar 2017 22:35:33 +0000 (07:35 +0900)]
Revise Interop TC Calling Convention (dotnet/coreclr#10014)

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

7 years agoSRV->SVR in BotR GC section.
Aditya Mandaleeka [Wed, 8 Mar 2017 22:34:40 +0000 (14:34 -0800)]
SRV->SVR in BotR GC section.

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

7 years agoUpdating the building/windows-instructions.md to indicate the support for and require...
Tanner Gooding [Wed, 8 Mar 2017 02:15:25 +0000 (18:15 -0800)]
Updating the building/windows-instructions.md to indicate the support for and requirements of using VS2017.

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

7 years agoMerge pull request dotnet/coreclr#10044 from mmitche/remove-nuget-cache
Matt Mitchell [Wed, 8 Mar 2017 21:01:40 +0000 (13:01 -0800)]
Merge pull request dotnet/coreclr#10044 from mmitche/remove-nuget-cache

Remove the nuget cache from the archival

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

7 years agoAdd all .nuget subdirs
Matt Mitchell [Wed, 8 Mar 2017 20:35:55 +0000 (12:35 -0800)]
Add all .nuget subdirs

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

7 years agoRemove the nuget cache from the archival
Matt Mitchell [Wed, 8 Mar 2017 20:20:51 +0000 (12:20 -0800)]
Remove the nuget cache from the archival
This is taking an incredible amount of space and causing problems

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

7 years agoMerge pull request dotnet/coreclr#9950 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Wed, 8 Mar 2017 19:50:36 +0000 (11:50 -0800)]
Merge pull request dotnet/coreclr#9950 from dotnet-bot/master-UpdateDependencies

Update CoreClr, CoreFx to beta-25108-04, beta-25108-02, respectively (master)

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

7 years agoMerge pull request dotnet/coreclr#10040 from adiaaida/perfjobtriggers
Michelle McDaniel [Wed, 8 Mar 2017 19:20:43 +0000 (11:20 -0800)]
Merge pull request dotnet/coreclr#10040 from adiaaida/perfjobtriggers

Change perf test trigger phases

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

7 years agoChange perf test trigger phases
Michelle McDaniel [Wed, 8 Mar 2017 18:54:29 +0000 (10:54 -0800)]
Change perf test trigger phases

Currently the trigger phases for perf testing use an underscore between OS
and architecture. This is inconsistent with our other trigger phrases.
This change changes the underscore to whitespace.

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

7 years agoStop building x86 LEGACY_BACKEND
Bruce Forstall [Wed, 8 Mar 2017 17:44:38 +0000 (09:44 -0800)]
Stop building x86 LEGACY_BACKEND

Since we require a compatjit.dll to be built so the JIT NuGet
package can be built, even if JIT32 isn't being built, change
the compatjit.dll build (when JIT32 isn't being built) to just
a normal JIT build.

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

7 years agoMerge pull request dotnet/coreclr#10013 from BruceForstall/CiTailcallStress
Bruce Forstall [Wed, 8 Mar 2017 18:20:49 +0000 (10:20 -0800)]
Merge pull request dotnet/coreclr#10013 from BruceForstall/CiTailcallStress

Add COMPlus_TailcallStress=1 testing

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

7 years agoMerge pull request dotnet/coreclr#10017 from sivarv/morphAssertFix
Sivarv [Wed, 8 Mar 2017 18:15:59 +0000 (10:15 -0800)]
Merge pull request dotnet/coreclr#10017 from sivarv/morphAssertFix

Morph assert fix.

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

7 years agoUpdate CoreClr, CoreFx to beta-25108-04, beta-25108-02, respectively
dotnet-bot [Wed, 8 Mar 2017 17:26:01 +0000 (17:26 +0000)]
Update CoreClr, CoreFx to beta-25108-04, beta-25108-02, respectively

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

7 years agoFormat code.
Pat Gavlin [Wed, 8 Mar 2017 16:59:08 +0000 (08:59 -0800)]
Format code.

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

7 years ago[x86/Linux] Calling convention mismatch inside Vector3Interop tests (dotnet/coreclr...
Jonghyun Park [Wed, 8 Mar 2017 11:40:26 +0000 (20:40 +0900)]
[x86/Linux] Calling convention mismatch inside Vector3Interop tests (dotnet/coreclr#10028)

* [x86/Linux] Fix Calling Convention on JIT.SIMD.Vector3Interop tests

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

7 years ago[x86/Linux] Calling convention mismatch inside systemvbrinup test (dotnet/coreclr...
Jonghyun Park [Wed, 8 Mar 2017 11:39:55 +0000 (20:39 +0900)]
[x86/Linux] Calling convention mismatch inside systemvbrinup test (dotnet/coreclr#10029)

* [x86/Linux] Fix calling convention mismatch inside JIT.Methodical.struct.systemvbringup test

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

7 years agoRemove CORECLR_GDBJIT length check in gdbjit (dotnet/coreclr#10016)
chunseoklee [Wed, 8 Mar 2017 09:39:40 +0000 (18:39 +0900)]
Remove CORECLR_GDBJIT length check in gdbjit (dotnet/coreclr#10016)

realted issue: https://github.com/dotnet/coreclr/issues/10003

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

7 years agoFix wrong gcc inline assembly code. (dotnet/coreclr#10024)
ragmani [Wed, 8 Mar 2017 09:22:19 +0000 (18:22 +0900)]
Fix wrong gcc inline assembly code. (dotnet/coreclr#10024)

It was coded as "rbx" instead of "ebx" register in clobber list position.

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

7 years agoFix assert in portable pdb reader running the clrstack command (dotnet/coreclr#10011)
Mike McLaughlin [Wed, 8 Mar 2017 08:29:50 +0000 (00:29 -0800)]
Fix assert in portable pdb reader running the clrstack command (dotnet/coreclr#10011)

Issue dotnet/coreclr#9969

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

7 years agoMove two sharable classes into the shared partition. (dotnet/coreclr#10009)
Atsushi Kanamori [Wed, 8 Mar 2017 08:23:30 +0000 (00:23 -0800)]
Move two sharable classes into the shared partition. (dotnet/coreclr#10009)

The corert side of this was commited by
  https://github.com/dotnet/corert/pull/2915#event-990346611

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

7 years agoMerge pull request dotnet/coreclr#10006 from wtgodbe/parallelWrapperGen
William Godbe [Wed, 8 Mar 2017 06:33:45 +0000 (22:33 -0800)]
Merge pull request dotnet/coreclr#10006 from wtgodbe/parallelWrapperGen

Zip all test wrappers in parallel

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

7 years agoCalculate last uses during buildIntervals.
Pat Gavlin [Wed, 8 Mar 2017 03:50:53 +0000 (19:50 -0800)]
Calculate last uses during buildIntervals.

This change moves LSRA's last use calculation from `setLastUses`
into `buildIntervals`.

The algorithm flips is as follows:
- When adding a ref position to a lclVar interval:
    - If the ref position is not a parameter def, zero init, or an
      exposed use, set the ref position's last use bit
    - Additionally, if the ref position is a use and there is a
      preceding ref position in the same basic block, clear that ref
      position's last use bit.
- Once a basic block has been processed, clear the last use bit of the
  final ref position in that basic block (if any exists) for each lclVar
  that is live out of that block.

Aside from the algorithmic change, the other major difference is that
the GTF_VAR_DEATH bit is not updated until `resolveLocalRef`.

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

7 years agoRemove TRACK_CXX_EXCEPTION_CODE_HACK and related code. (dotnet/coreclr#10018)
Aditya Mandaleeka [Wed, 8 Mar 2017 05:30:02 +0000 (21:30 -0800)]
Remove TRACK_CXX_EXCEPTION_CODE_HACK and related code. (dotnet/coreclr#10018)

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

7 years agoPort Windows PGO support to master (dotnet/coreclr#9985)
Daniel Podder [Wed, 8 Mar 2017 03:14:57 +0000 (21:14 -0600)]
Port Windows PGO support to master (dotnet/coreclr#9985)

The bulk of this PR is a cherry-pick of commit fa02660 that shipped in
release/1.1.0, updating the build system support for PGO to support
consuming PGDs properly during release builds on Windows.

Also included are the following new changes:
* Skip restore of opdata if the requisite project.json is missing
* If the optdata package restore fails, fail the build.
* Add new build option: 'skiprestoreoptdata'

Note: This change doesn't by itself enable PGO in master yet, because
training data (optdata packages) for master don't exist on myget yet.
However, with these changes, the only step remaining to enable PGO
optimizations is to add a project.json referencing the correct optdata
package.

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

7 years agoUpdating the various windows build scripts to have a comment explaining the VS versio...
Tanner Gooding [Wed, 8 Mar 2017 02:04:25 +0000 (18:04 -0800)]
Updating the various windows build scripts to have a comment explaining the VS version selection logic.

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

7 years agoMerge pull request dotnet/coreclr#10021 from adityamandaleeka/fix_broken_ci_badges
Aditya Mandaleeka [Wed, 8 Mar 2017 01:54:45 +0000 (17:54 -0800)]
Merge pull request dotnet/coreclr#10021 from adityamandaleeka/fix_broken_ci_badges

Fix broken CI badges

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

7 years agoAdd new JIT stress modes to the CI system; clean up netci.groovy duplication
Bruce Forstall [Wed, 8 Mar 2017 01:45:33 +0000 (17:45 -0800)]
Add new JIT stress modes to the CI system; clean up netci.groovy duplication

1. Add JIT tailcall stress: COMPlus_TailcallStress=1
2. Add "SSE2 only": COMPlus_EnableAVX=0, COMPlus_EnableSSE3_4=0
3. Add new JIT stress regs mode: COMPlus_JitStressRegs=0x1000
   a. Do this plain, with JitStress=2, with CoreFX, and in R2R testing
4. Fix R2R JitStressRegs10 and 80 to actually test 10 and 80! (previously, they
   were passing "x10" and "x80", which get parsed as zero.
5. Delete tons of duplicate code from netci.groovy, and use a table/function
   to determine test display names.

Fixes dotnet/coreclr#8626, dotnet/coreclr#6129, dotnet/coreclr#10004

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

7 years agoFix broken badges.
Aditya Mandaleeka [Wed, 8 Mar 2017 01:49:12 +0000 (17:49 -0800)]
Fix broken badges.

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

7 years agoAdd shared changes from corert (dotnet/coreclr#10010)
Alex Perovich [Wed, 8 Mar 2017 01:49:42 +0000 (19:49 -0600)]
Add shared changes from corert (dotnet/coreclr#10010)

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

7 years agoMorph assert fix.
sivarv [Wed, 8 Mar 2017 01:15:47 +0000 (17:15 -0800)]
Morph assert fix.

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

7 years agoMerge pull request dotnet/coreclr#10005 from stephentoub/taskextensions
Stephen Toub [Wed, 8 Mar 2017 01:02:56 +0000 (20:02 -0500)]
Merge pull request dotnet/coreclr#10005 from stephentoub/taskextensions

Add TaskExtensions to CoreLib

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

7 years agoAdd scripts for building for arm Android (dotnet/coreclr#9961)
Frederik Carlier [Tue, 7 Mar 2017 22:46:27 +0000 (23:46 +0100)]
Add scripts for building for arm Android (dotnet/coreclr#9961)

* Add scripts for building for arm Android

* Use arm soft float for bringup

* Use NDK r14

* Set HAVE_PT_REGS to false, as they are not available on Android

* _aligned_alloc is not available on clang

* Detect Visual C++ instead of clang

* Detect Android instead of clang

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

7 years ago[x86/linux] Fix "Undefined Reference" error in CLR release build. (dotnet/coreclr...
ragmani [Tue, 7 Mar 2017 22:28:58 +0000 (07:28 +0900)]
[x86/linux] Fix "Undefined Reference" error in CLR release build. (dotnet/coreclr#10000)

Replace "IncCantStopCount()" and "DecCantStopCount()" functions with
nothing(#define IncCantStopCount()) to call in methods of UTSemReadWrite
on x86/Linux.

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

7 years agoFix incremental build of mscordaccore (dotnet/coreclr#9982)
Jan Vorlicek [Tue, 7 Mar 2017 21:41:22 +0000 (22:41 +0100)]
Fix incremental build of mscordaccore (dotnet/coreclr#9982)

* Fix incremental build of mscordaccore

This change sets up proper dependency for the mscordaccore build and stops
using PRE_LINK command which is executed always.
The way it solves the problem is that it creates an object library from the
mscordac.cpp and then lets the mscordaccore.exp be generated from that object
and finally use both that object library and the mscordaccore.exp while building
mscordaccore.

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

7 years agoMerge pull request dotnet/coreclr#9992 from adiaaida/fixjit32testing
Michelle McDaniel [Tue, 7 Mar 2017 19:24:10 +0000 (11:24 -0800)]
Merge pull request dotnet/coreclr#9992 from adiaaida/fixjit32testing

Fix jit32 perf and throughput testing

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

7 years agoAdd TaskExtensions to CoreLib
Stephen Toub [Tue, 7 Mar 2017 17:50:17 +0000 (12:50 -0500)]
Add TaskExtensions to CoreLib

Our TaskExtensions.Unwrap implementation in corefx is more allocation-heavy than the implementation we had in desktop and we could have in CoreLib, where CreateUnwrapPromise is available.  By moving this implementation down to CoreLib, the code:
```C#
Task<Task> toUnwrap = ...;
Task t = toUnwrap.Unwrap();
```
incurs 1 allocation instead of 4.

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

7 years agoFix jit32 perf and throughput testing
Michelle McDaniel [Mon, 6 Mar 2017 22:21:15 +0000 (14:21 -0800)]
Fix jit32 perf and throughput testing

For jit32, we need to download the compatjit to make sure we are using a
jit32 build, not legacy backend (which is what is built when we run a
regular build out of coreclr). This change updates the groovy scripting to
pull down the jit nuget package that contains compatjit.

Until the packaging is fixed (dotnet/coreclr#9991), we are defaulting to the last
package that packaged compatjit along with clrjit.

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

7 years agoMerge pull request dotnet/coreclr#9996 from BruceForstall/FixCallFunFormatting
Bruce Forstall [Tue, 7 Mar 2017 19:14:00 +0000 (11:14 -0800)]
Merge pull request dotnet/coreclr#9996 from BruceForstall/FixCallFunFormatting

Un-clang-format-horrible-ify emitIns_Call() and genEmitCall()

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

7 years agoZip all test wrappers in parallel
wtgodbe [Tue, 7 Mar 2017 19:07:58 +0000 (11:07 -0800)]
Zip all test wrappers in parallel

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

7 years ago[x86/Linux] CDECL as default P/Invoke Calling Convetion (dotnet/coreclr#9977)
Jonghyun Park [Tue, 7 Mar 2017 11:27:35 +0000 (20:27 +0900)]
[x86/Linux] CDECL as default P/Invoke Calling Convetion (dotnet/coreclr#9977)

* [x86/Linux] CDECL as default P/Invoke Calling Convetion

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

7 years agoEnhance ICU version scan (dotnet/coreclr#9993)
Jan Vorlicek [Tue, 7 Mar 2017 11:03:08 +0000 (12:03 +0100)]
Enhance ICU version scan (dotnet/coreclr#9993)

The scanning that tries to find locally installed ICU version was not
considering the case when only ICU library files with major version
component were present (like libicuuc.so.52). This is a rare case that
I've seen so far only when people built and installed ICU manually.
But it is worth to add checks for such case as a fallback, which is
what this change does.
I have also added checks for minorVersion and subVersion being -1 when
trying to detect the symbol versioning used. While the pre-existing code
would still work fine, it would unnecessarily try nonsensical version.

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

7 years ago[x86/Linux] Fix incorrect FP values (dotnet/coreclr#9975)
Hanjoung Lee [Tue, 7 Mar 2017 08:57:29 +0000 (17:57 +0900)]
[x86/Linux] Fix incorrect FP values (dotnet/coreclr#9975)

* [x86/Linux] Fix incorrect FP values

Restoring FP by CallerSP could be incorrect for nested EH.
Now that we have dotnet/coreclr#9820, we can use current context for 1st pass of EH.

Fix dotnet/coreclr#9848

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

7 years agoMerge pull request dotnet/coreclr#9995 from BruceForstall/FixNetciForceRelocs
Bruce Forstall [Tue, 7 Mar 2017 07:34:31 +0000 (23:34 -0800)]
Merge pull request dotnet/coreclr#9995 from BruceForstall/FixNetciForceRelocs

Add missing "break" in a forcerelocs case

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

7 years agoHarden resolveVirtualMethod against invalid types (dotnet/coreclr#9989)
Andy Ayers [Tue, 7 Mar 2017 03:31:24 +0000 (19:31 -0800)]
Harden resolveVirtualMethod against invalid types (dotnet/coreclr#9989)

Split resolveVirtualMethod into a wrapper/helper to allow early
returns as failure reasons are discovered.

Before devirtualizing, ensure that the derived class claimed by the jit
is really a subclass of the class that introduces the virtual method.
Fail early if this is not the case.

Also add early out for interface call devirtualization. The jit currently
does not ask for this but asking for it should not trigger an assert.

Closes dotnet/coreclr#9945 (along with dotnet/coreclr#9959).

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

7 years ago[x86/Linux] Check Stack Alignment in StubRareEnable/StubRareDisableTHROW (dotnet...
Jonghyun Park [Tue, 7 Mar 2017 01:31:47 +0000 (10:31 +0900)]
[x86/Linux] Check Stack Alignment in StubRareEnable/StubRareDisableTHROW (dotnet/coreclr#9925)

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

7 years agoMerge pull request dotnet/coreclr#9986 from wtgodbe/XunitWrapperGranularity
William Godbe [Tue, 7 Mar 2017 00:36:06 +0000 (16:36 -0800)]
Merge pull request dotnet/coreclr#9986 from wtgodbe/XunitWrapperGranularity

Create Xunit wrappers for 2nd-level test directories instead of top-level

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

7 years agoFix ICU detection in System.Globalization.Native build (dotnet/coreclr#9990)
Jan Vorlicek [Tue, 7 Mar 2017 00:35:14 +0000 (01:35 +0100)]
Fix ICU detection in System.Globalization.Native build (dotnet/coreclr#9990)

The config.cmake was not getting the ICU library paths it requires to
build a code that detects presence of the ucol_setMaxVariable.
I have excluded the libraries detection from the CMakeLists.txt
some time ago since they are not used in the build itself anymore,
but I have not realized that they are needed for this detection
script that's included from the CMakeLists.txt.

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

7 years agoUn-clang-format-horrible-ify emitIns_Call() and genEmitCall()
Bruce Forstall [Tue, 7 Mar 2017 00:29:58 +0000 (16:29 -0800)]
Un-clang-format-horrible-ify emitIns_Call() and genEmitCall()

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

7 years agoAdd missing "break" in a forcerelocs case
Bruce Forstall [Tue, 7 Mar 2017 00:22:07 +0000 (16:22 -0800)]
Add missing "break" in a forcerelocs case

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

7 years agoMerge pull request dotnet/coreclr#9991 from adiaaida/fixx86NugetPackageCreation
Michelle McDaniel [Mon, 6 Mar 2017 23:25:57 +0000 (15:25 -0800)]
Merge pull request dotnet/coreclr#9991 from adiaaida/fixx86NugetPackageCreation

Change PackagePlatform to Platform for x86 jit pkg

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

7 years agoChange PackagePlatform to Platform for x86 jit pkg
Michelle McDaniel [Mon, 6 Mar 2017 22:36:19 +0000 (14:36 -0800)]
Change PackagePlatform to Platform for x86 jit pkg

PackagePlatform was removed in dotnet/coreclr@8dcf9665feabee339029c79b9d86dd24c71905d1,
but the x86 jit package props file was never updated to not use that
property. This change updates the props file to use Platform instead of
PackagePlatform to make sure we package compatjit.dll for x86.

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

7 years agoCreate Xunit wrappers for 2nd-level test directories instead of top-level
wtgodbe [Mon, 6 Mar 2017 21:44:21 +0000 (13:44 -0800)]
Create Xunit wrappers for 2nd-level test directories instead of top-level

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

7 years agoImplementation for Dictionary.TryAdd (dotnet/coreclr#9923)
James Ko [Mon, 6 Mar 2017 18:44:34 +0000 (13:44 -0500)]
Implementation for Dictionary.TryAdd (dotnet/coreclr#9923)

* Add Dictionary.TryAdd

* Fix the conflicts for real

* Remove branch from Add(TKey, TValue)

* Tweak naming

* Remove a slow assert

* PR feedback

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

7 years agoMerge pull request dotnet/coreclr#9398 from mikedn/switch-cast
Sivarv [Mon, 6 Mar 2017 18:25:03 +0000 (10:25 -0800)]
Merge pull request dotnet/coreclr#9398 from mikedn/switch-cast

Change switch value widening

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

7 years agoAdd stripSymbols argument; refactor symbol package build (dotnet/coreclr#9664)
Davis Goodin [Mon, 6 Mar 2017 17:40:56 +0000 (11:40 -0600)]
Add stripSymbols argument; refactor symbol package build (dotnet/coreclr#9664)

* Add argument to explicitly enable symbol stripping

* Refactor symbol package build

* Remove unnecessary native file distinctions

* Remove unnecessary WindowsSymbolFile step

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

7 years agoUpdating the build scripts to support VS2017.
Tanner Gooding [Sat, 4 Mar 2017 05:32:28 +0000 (21:32 -0800)]
Updating the build scripts to support VS2017.

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

7 years ago[x86/Linux] Stack align aware unwinder (dotnet/coreclr#9928)
Jonghyun Park [Mon, 6 Mar 2017 11:31:37 +0000 (20:31 +0900)]
[x86/Linux] Stack align aware unwinder (dotnet/coreclr#9928)

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

7 years agoDelete a few more unused hosting methods (dotnet/coreclr#9973)
Jan Kotas [Mon, 6 Mar 2017 05:58:13 +0000 (21:58 -0800)]
Delete a few more unused hosting methods (dotnet/coreclr#9973)

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

7 years agoAdd 3PN for GCBench (dotnet/coreclr#9971)
Rich Lander [Mon, 6 Mar 2017 02:09:31 +0000 (18:09 -0800)]
Add 3PN for GCBench (dotnet/coreclr#9971)

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

7 years agoAdd 3PN entry for Livermore Loops coded in C (dotnet/coreclr#9972)
Rich Lander [Mon, 6 Mar 2017 02:09:17 +0000 (18:09 -0800)]
Add 3PN entry for Livermore Loops coded in C (dotnet/coreclr#9972)

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

7 years agoRemove hosting methods that always return false (dotnet/coreclr#9930)
Austin Wise [Mon, 6 Mar 2017 01:51:40 +0000 (17:51 -0800)]
Remove hosting methods that always return false (dotnet/coreclr#9930)

* Remove CLRIoCompletionHosted as it always returns false.
* Remove CLRSyncHosted as it always returns false.
* Remove CLRMemoryHosted as it always returns false.
* Remove CLRTaskHosted as it always returns false.
* Remove CLRAssemblyHosted, CLRGCHosted,and CLRSecurityHosted.
They are not called.
* Remove IsThreadPoolHosted as it always returns false.
* Remove EnterRuntime and LeaveRuntime, as they do nothing.
* Add back calls to RevertIfImpersonated and GCX_PREEMP.

I accidentally deleted the call to RevertIfImpersonated instead of just
removing an extra parameter.

When I removed the HR_LEAVE_RUNTIME_HOLDER macro from windowsruntime.h,
I not only removed a LeaveRuntimeHolder but also a GCX_PREEMP. So I added
it back. The holder and GCX_PREEMP where only inserted when the
FEATURE_LEAVE_RUNTIME_HOLDER macro was defined. Since it is always defined,
I removed it. Also as I understand it, you would always want to have a
GCX_PREEMP before calling into the Windows API as not to block the GC,
so I'm not sure why you would want to disable it.

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

7 years agoDelete IsNonW8PFrameworkAPI checks (dotnet/coreclr#9964)
Jan Kotas [Mon, 6 Mar 2017 01:27:36 +0000 (17:27 -0800)]
Delete IsNonW8PFrameworkAPI checks (dotnet/coreclr#9964)

Dead code in CoreCLR

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

7 years agoAdd 3PN for Burgers equation (dotnet/coreclr#9966)
Rich Lander [Sun, 5 Mar 2017 22:55:57 +0000 (14:55 -0800)]
Add 3PN for Burgers equation (dotnet/coreclr#9966)

- Thanks to @taumuon for licensing the test, per our request!
- License is MIT.

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

7 years agoJIT: change codgen for dup to not lose type information
Andy Ayers [Sat, 4 Mar 2017 04:01:52 +0000 (20:01 -0800)]
JIT: change codgen for dup to not lose type information

The jit has traditionally optimized most cases of a

   zz; dup; stloc.x

sequence into

   zz; stloc.x; ldloc.x

with a comment noting that this makes the resulting compiler IR
more amenable to CSE. Here zz is any IL operation that pushes
a value on the stack. However if zz's result is a ref type, the
dup'ed value produced by zz may be a subtype of the type of the
local x, so this transformation can lose type information.

In the past the loss of type information hasn't mattered, but now if
zz subsequently is used as the this object in a virtual call, the jit
may attempt devirtualization and ask an ill-posed question to the VM,
claiming the type of the this object is an impossible supertype.

This changes modifies the transformation by introducing a new local temp y
that has the type of zz. The result is now

   zz; stloc.y; ldloc.y; ldloc.y; stloc.x

with the net result that a ldloc.y is left on the stack with the proper
type. As an optimization, if zz is ldloc.z then the expansion is simply

   zz (ldloc.z); ldloc.z; stloc.y

and if zz is a simple "cheap" constant (say ldnull) then the constant
expression is duplicated:

   zz (ldnull); ldnull; stloc.y

This resolves the jit side of dotnet/coreclr#9945. Further work is needed on the VM
side since in unverifiable IL there may be other cases where the jit
can present an impossible type.

Diffs from this were minor and in many cases small improvements.

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

7 years agoRemove ComVisible as per dotnet/coreclr#9371 (dotnet/coreclr#9962)
Paul Westcott [Sun, 5 Mar 2017 05:32:12 +0000 (16:32 +1100)]
Remove ComVisible as per dotnet/coreclr#9371 (dotnet/coreclr#9962)

When lazy was merged, this change was lost.

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

7 years agoRemove unused bbAssertionKill (dotnet/coreclr#9957)
mikedn [Sat, 4 Mar 2017 17:58:56 +0000 (19:58 +0200)]
Remove unused bbAssertionKill (dotnet/coreclr#9957)

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

7 years agoUpdate glossary.md (dotnet/coreclr#9951)
Adeel Mujahid [Sat, 4 Mar 2017 17:50:24 +0000 (19:50 +0200)]
Update glossary.md (dotnet/coreclr#9951)

* Added the definitions for AOT, UTC and UWP.
* Made R2R as the initialism with 'Read-to-Run' its abbreviation.
* Fixed a typo: contributers -> contributors.
* Format as Term-Description markdown table.

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

7 years agoExtending optimized JIT helpers to Buffer.MemoryCopy (dotnet/coreclr#9786)
Varun Venkatesan [Sat, 4 Mar 2017 17:24:30 +0000 (09:24 -0800)]
Extending optimized JIT helpers to Buffer.MemoryCopy (dotnet/coreclr#9786)

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

7 years agoMove System.Lazy to shared CoreLib partition (dotnet/coreclr#9955)
Jan Kotas [Sat, 4 Mar 2017 08:40:56 +0000 (00:40 -0800)]
Move System.Lazy to shared CoreLib partition (dotnet/coreclr#9955)

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

7 years agoMerge pull request dotnet/coreclr#9954 from tannergooding/fcall
Tanner Gooding [Sat, 4 Mar 2017 06:26:26 +0000 (22:26 -0800)]
Merge pull request dotnet/coreclr#9954 from tannergooding/fcall

Updating `COMSingle` in `classlibnative` to use the appropriate FCALL declarations.

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

7 years agoRemove unreferenced file (dotnet/coreclr#9952)
Alex Perovich [Sat, 4 Mar 2017 05:44:12 +0000 (23:44 -0600)]
Remove unreferenced file (dotnet/coreclr#9952)

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

7 years agoAlternative System.Lazy implementation (dotnet/coreclr#8963)
Paul Westcott [Sat, 4 Mar 2017 03:14:02 +0000 (14:14 +1100)]
Alternative System.Lazy implementation (dotnet/coreclr#8963)

* Remove use of lock for PublicationOnly

This involves a little bit of trickery. In avoiding the lock we need to
go from m_implementation as PublicationOnly to null in a single step. We
can't do this though without another object, so we reuse out Lazy
object, which basically just spins its wheels until the value is ready.
This shouldn't be a very common scenerio (i.e. hitting that code path)
but it is possible.

* Minimize additional object creation

Storing factory in Lazy object, and passing Lazy as a parameter to
ILazyItem functions. This means that None & PublicationOnly now need no
creation of secondary object.

* Remove Func<T> for default constructor invoking

Fixing startup performance concerns

* Moved non-generic functionality out of Lazy

...and into a helper class

* Expression-bodied functions

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