platform/upstream/dotnet/runtime.git
7 years agoMerge pull request dotnet/coreclr#10193 from mskvortsov/ryujit-arm32-fix-struct
Bruce Forstall [Fri, 31 Mar 2017 21:21:23 +0000 (14:21 -0700)]
Merge pull request dotnet/coreclr#10193 from mskvortsov/ryujit-arm32-fix-struct

[RyuJIT/ARM32] Fix lvOnFrame for struct args

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

7 years agoNS2.0 Inject more missing types into CoreRT by sharing them. (dotnet/coreclr#10613)
Atsushi Kanamori [Fri, 31 Mar 2017 18:41:39 +0000 (11:41 -0700)]
NS2.0 Inject more missing types into CoreRT by sharing them. (dotnet/coreclr#10613)

* NS2.0 Inject more missing types into CoreRT by sharing them.

- ArgIterator was cleaned up for sharing but actually
  sharing it today is too messy with TypedReference
  being in the wrong namespace on half of CoreRT.

  Some preparatory fixes discovered during the
  attempt will be going in on CoreRT...

* Leave RuntimeArgumentHandle and ArgIterator unshared.

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

7 years agoFallback for enum.Format(G) when not valid (dotnet/coreclr#10610)
Ben Adams [Fri, 31 Mar 2017 17:50:36 +0000 (18:50 +0100)]
Fallback for enum.Format(G) when not valid (dotnet/coreclr#10610)

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

7 years agoPrepare TimeZoneInfo.cs for move to shared partition. (dotnet/coreclr#10606)
Atsushi Kanamori [Fri, 31 Mar 2017 14:20:30 +0000 (07:20 -0700)]
Prepare TimeZoneInfo.cs for move to shared partition. (dotnet/coreclr#10606)

(This is the CoreRT side of https://github.com/dotnet/coreclr/pull/10606)

TimeZoneInfo.cs needs no changes but it brings in
another file CurrentTimeZone.cs.

Which drags in yet another file (Hashtable.cs)
which is widely used inside CoreCLR but aside
from this one file, it seems to be stuff that'll
will never be ported over or already has been
ported over sans Hashtable.

So we'll refactor the memoization logic of
CurrentTimeZone.cs into its own partial file
and share the rest. CoreCLR will use continue to use Hashtable.
CoreRT will use ConcurrentUnifier.

And while we're at it, will rename it to
CurrentSystemTimeZone.cs to match the actual class name.

Once we make a corresponding change on the CoreCLR side,
both TimeZone.cs and CurrentSystemTimeZone.cs will
be fully synced and can move to the shared partition.

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

7 years agoAdd assert to GCHeap::ValidateObjectMember (dotnet/coreclr#10591)
Steve MacLean [Fri, 31 Mar 2017 02:06:23 +0000 (22:06 -0400)]
Add assert to GCHeap::ValidateObjectMember (dotnet/coreclr#10591)

In presence of a corrupt heap, objects can contain
null method table.  Add assertion to prevent segfault
in checked/debug builds.

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

7 years agoAdd test coverage for ldtoken of open generic methods (dotnet/coreclr#10592)
Michal Strehovský [Fri, 31 Mar 2017 02:00:24 +0000 (19:00 -0700)]
Add test coverage for ldtoken of open generic methods (dotnet/coreclr#10592)

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

7 years agoMerge pull request dotnet/coreclr#10593 from dotnet/standaloneservergc
Jeff Schwartz [Thu, 30 Mar 2017 23:37:42 +0000 (16:37 -0700)]
Merge pull request dotnet/coreclr#10593 from dotnet/standaloneservergc

Enable StandAloneGC and Server GC

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

7 years ago[Ryujit/ARM32][ReadyToRun] Fix invocation to Thunk (dotnet/coreclr#10348)
Hyung-Kyu Choi [Thu, 30 Mar 2017 22:40:19 +0000 (07:40 +0900)]
[Ryujit/ARM32][ReadyToRun] Fix invocation to Thunk (dotnet/coreclr#10348)

Fix invocation to Thunk code from code generated from ReadyToRun.
Thunk code for ARM32 accept r12 as a parameter.

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

7 years agoEnable CROSS for testing (dotnet/coreclr#10594)
Matt Mitchell [Thu, 30 Mar 2017 22:05:38 +0000 (15:05 -0700)]
Enable CROSS for testing (dotnet/coreclr#10594)

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

7 years agoMerge pull request dotnet/coreclr#10513 from briansull/profile-data
Brian Sullivan [Thu, 30 Mar 2017 22:03:49 +0000 (15:03 -0700)]
Merge pull request dotnet/coreclr#10513 from briansull/profile-data

Crossgen support for ExcludeHotMethodCode and ExcludeColdMethodCode

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

7 years agoFix Issue dotnet/coreclr#10022. (dotnet/coreclr#10587)
Pat Gavlin [Thu, 30 Mar 2017 22:02:10 +0000 (15:02 -0700)]
Fix Issue dotnet/coreclr#10022. (dotnet/coreclr#10587)

This issue occurred because the JIT currently inserts the P/Invoke
method prolog into the first block of a function without ensuring that
this block will only execute once. This is not safe, as executing the
P/Invoke prolog multiple times can create cycles in the frame list and
casue the stack unwinder to hang.

This change ensures that lowering inserts a new, single-entry basic
block at the beginning of the function for functions that require P/Invoke prologs.

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

7 years agoFix tabs and spaces
Jeff Schwartz [Thu, 30 Mar 2017 22:01:26 +0000 (15:01 -0700)]
Fix tabs and spaces

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

7 years ago[x86/Linux] Use CDECL instead of STDCALL (dotnet/coreclr#10410)
Jonghyun Park [Thu, 30 Mar 2017 21:20:01 +0000 (06:20 +0900)]
[x86/Linux] Use CDECL instead of STDCALL (dotnet/coreclr#10410)

[x86/Linux] Use CDECL instead of STDCALL

Use STDCALL/THISCALL/FASTCALL if callconv is explicitly specified

Merge two adjustment (argument/alignment) into one

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

7 years agoMerge pull request dotnet/coreclr#10228 from mskvortsov/ryujit-arm32-copy-barrier
Bruce Forstall [Thu, 30 Mar 2017 21:16:47 +0000 (14:16 -0700)]
Merge pull request dotnet/coreclr#10228 from mskvortsov/ryujit-arm32-copy-barrier

[RyuJIT/ARM32] Enable GT_COPY and GT_MEMORYBARRIER

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

7 years agoMerge pull request dotnet/coreclr#10588 from jashook/add_correct_failure_metadata_for...
Jarret Shook [Thu, 30 Mar 2017 20:46:59 +0000 (13:46 -0700)]
Merge pull request dotnet/coreclr#10588 from jashook/add_correct_failure_metadata_for_b08046

Re-disable b08046 and add correct metadata.

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

7 years agoChange necessary to enable standalonegc on server gc. Now CreateThread in gcenv...
Jeff Schwartz [Thu, 30 Mar 2017 20:41:39 +0000 (13:41 -0700)]
Change necessary to enable standalonegc on server gc.  Now CreateThread in gcenv.windows.cpp matches gcenv.os.cpp

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

7 years ago[Ryujit/ARM32] Implement NYI related with overflow for ARM (dotnet/coreclr#10491)
Sujin Kim [Thu, 30 Mar 2017 20:37:13 +0000 (05:37 +0900)]
[Ryujit/ARM32] Implement NYI related with overflow for ARM (dotnet/coreclr#10491)

* Implement NYI(overflow checks) for ARM

On last comment of dotnet/coreclr#8496, the NYI message of overflow checks is printed after running the CodeGenBringUpTests.

That was the message about temp register setup for overflow checks.

It was referenced
https://github.com/dotnet/coreclr/blob/master/src/jit/lsraarm64.cpp#L399

I think it doesn't make any problem even though writing it the same as arm64.

* modifiy for coding convention

* Implement NYI : Unimplmented GT_CAST:int <--> int with overflow

I think it doesn't make any problem even though writing it the same as arm64.
So I copied parts of CodeGen::genIntToIntCast() and modified some below codes.

```
if (emitter::emitIns_valid_imm_for_cmp(castInfo.typeMax, cmpSize))
```
-->
```
if (emitter::emitIns_valid_imm_for_cmp(castInfo.typeMax, INS_FLAGS_DONT_CARE))
```

* Implement NYI : genLongToIntCast: overflow check

I copied and pasted codes from codegenxarch.cpp.
But It seemed be necessary that conditional execution values are changed by each architectures.
So I used 'genJumpKindForOper' for getting the emitJumpKind value.

The sample app has been checked to work well.

* Modify the implementation of emitter::emitIns_valid_imm_for_cmp

According to reference manual, I figured out CMP and ADD have different mechanisms on ARM unlike ARM64.
So I defined "...for_cmp" function not just use "..for_add" in the function likes ARM64.

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

7 years agoMerge pull request dotnet/coreclr#10569 from sdmaclea/PR-FIX-10359
Joseph Tremoulet [Thu, 30 Mar 2017 18:57:06 +0000 (14:57 -0400)]
Merge pull request dotnet/coreclr#10569 from sdmaclea/PR-FIX-10359

Handle null ref in Compiler::optCreateAssertion

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

7 years agoRe-disable b08046 and add correct metadata.
jashook [Thu, 30 Mar 2017 18:07:13 +0000 (11:07 -0700)]
Re-disable b08046 and add correct metadata.

\JIT\Regression\CLR-x86-JIT\V1.2-M01\b08046\b08046\b08046.cmd was disabled because the issue dotnet/coreclr#2414
was closed but the tests tagged with that issue were not removed. b08046's correct issue is dotnet/coreclr#4849.

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

7 years agoFix an issue where the DAC and GC versions of the heap_segment data structure did...
Sean Gillespie [Thu, 30 Mar 2017 17:11:28 +0000 (10:11 -0700)]
Fix an issue where the DAC and GC versions of the heap_segment data structure did not agree on the location of the heap field (dotnet/coreclr#10576)

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

7 years agoFix formatting
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Thu, 30 Mar 2017 16:53:55 +0000 (16:53 +0000)]
Fix formatting

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

7 years agoFix magic number explanation in filetime.cpp (dotnet/coreclr#10582)
Andrey Akinshin [Thu, 30 Mar 2017 13:25:42 +0000 (18:25 +0500)]
Fix magic number explanation in filetime.cpp (dotnet/coreclr#10582)

89 * 366 + 280 * 365 equals to 134774 (not 134744)

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

7 years ago[Linux][GDB-JIT] Remove (nothrow) when using new (dotnet/coreclr#10457)
Igor Kulaychuk [Thu, 30 Mar 2017 09:54:02 +0000 (12:54 +0300)]
[Linux][GDB-JIT] Remove (nothrow) when using new (dotnet/coreclr#10457)

* Merge ByteTypeInfo into PrimitiveTypeInfo

* Remove ArrayTypeInfo ownership over its array element type

ArrayTypeInfo should not delete memory for its array element type
because element type is owned by NotifyGdb::PTK_TypeInfoMap.

* Make NamedRefTypeInfo to own its value type pointer

* Fix memory leak when creating ArrayTypeInfo

* Refactor creation of PrimitiveTypeInfo class

* Move code from GetTypeInfoFromTypeHandle to ClassTypeInfo constructor

* Move code from GetTypeInfoFromTypeHandle to RefTypeInfo constructor

* Remove (nothrow) usage from GetTypeInfoFromTypeHandle function

* Remove most usages of (nothrow) from gdbjit

* Remove all remaining (nothrow) usages from gdbjit

* Throw COR_E_NOTSUPPORTED from GetTypeInfoFromTypeHandle when dumping unsupported types

* Remove (nothrow) usage from MemBuf::Resize

* Use NewArrayHolder for vars in FunctionMember class

* Use NewArrayHolder for m_type_name in TypeInfoBase class

* Use NewArrayHolder for m_typedef_name in TypeDefInfo class

* Use NewArrayHolder for m_member_name in TypeMember class

* Use NewArrayHolder for m_var_name in VarDebugInfo class

* Use NewArrayHolder for members in ClassTypeInfo class

* Add m_symbol_name field to Elf_Symbol struct for managing symbol name memory

* Add m_value_type_storage field to NamedRefTypeInfo class for managing referenced type memory

* Remove CalledMethod list cleanup - avoid having dangling pointer in CodeHeader class

* Fix memory leak in GetMethodNativeMap function

* Simplify FunctionMemberPtrArrayHolder class

Since FunctionMemberPtrArrayHolder instance lifetime is limited to
NotifyGdb::MethodCompiled method, there is no need for complicated reallocation code.

* Wrap NotifyGdb::MethodCompiled endtry point in try/catch block

* Fix argument naming style - rename MethodDescPtr to methodDescPtr

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

7 years agoMerge pull request dotnet/coreclr#10478 from noahfalk/fitjit
Noah Falk [Thu, 30 Mar 2017 06:24:57 +0000 (23:24 -0700)]
Merge pull request dotnet/coreclr#10478 from noahfalk/fitjit

Tiered Compilation step 1

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

7 years agoUpdate CoreClr to preview1-25130-01 (dotnet/coreclr#10573)
dotnet bot [Thu, 30 Mar 2017 03:49:47 +0000 (20:49 -0700)]
Update CoreClr to preview1-25130-01 (dotnet/coreclr#10573)

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

7 years agoMerge pull request dotnet/coreclr#10575 from adityamandaleeka/544701_reduce_consolewrites
Aditya Mandaleeka [Thu, 30 Mar 2017 02:37:00 +0000 (19:37 -0700)]
Merge pull request dotnet/coreclr#10575 from adityamandaleeka/544701_reduce_consolewrites

Reduce console writes in 544701

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

7 years agoTiered Compilation step 1
noahfalk [Sat, 25 Mar 2017 05:43:47 +0000 (22:43 -0700)]
Tiered Compilation step 1

Tiered compilation is a new feature we are experimenting with that aims to improve startup times. Initially we jit methods non-optimized, then switch to an optimized version once the method has been called a number of times. More details about the current feature operation are in the comments of TieredCompilation.cpp.

This is only the first step in a longer process building the feature. The primary goal for now is to avoid regressing any runtime behavior in the shipping configuration in which the complus variable is OFF, while putting enough code in place that we can measure performance in the daily builds and make incremental progress visible to collaborators and reviewers. The design of the TieredCompilationManager is likely to change substantively, and the call counter may also change.

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

7 years agoAdd PGO support for Clang/LLVM on Unix (dotnet/coreclr#10533)
Daniel Podder [Thu, 30 Mar 2017 02:01:55 +0000 (19:01 -0700)]
Add PGO support for Clang/LLVM on Unix (dotnet/coreclr#10533)

Extend PGO support from VC++ on WIN32 to Clang/LLVM on UNIX as well.
* Just like on Windows: if profile data is missing, skip enabling PGO
  (allows non-PGO builds in branches where we don't publish PGO data).
* PGO with LTO requires additional dependencies (namely a discoverable
  `ld.gold` and `LLVMgold.so`). To protect against broken support and
  keep the build flexible across a wider array of distros, attempt to
  detect whether PGO compilation would work (using cmake's
  `try_compile()`), and fall back to a non-PGO/non-LTO build if the test
  fails.

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

7 years agoDelete moved files
Jan Kotas [Wed, 29 Mar 2017 23:01:23 +0000 (16:01 -0700)]
Delete moved files

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

7 years agoMerge pull request dotnet/corertdotnet/coreclr#3141 from dotnet/nmirror
Jan Kotas [Wed, 29 Mar 2017 18:45:24 +0000 (11:45 -0700)]
Merge pull request dotnet/corertdotnet/coreclr#3141 from dotnet/nmirror

Merge nmirror to master

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

7 years agoRevert "TimeSpan.FromMilliseconds(TimeSpan.MaxValue.TotalMilliseconds) exception...
Stephen Toub [Thu, 30 Mar 2017 01:30:23 +0000 (21:30 -0400)]
Revert "TimeSpan.FromMilliseconds(TimeSpan.MaxValue.TotalMilliseconds) exception fix (dotnet/coreclr#10352)" (dotnet/coreclr#10552)

This reverts commit dotnet/coreclr@7951bc9accbbf9552d9b5c8105df8f5a32d6c3ab.

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

7 years agoAdded two new profile data flags: ExcludeHotMethodCode and ExcludeColdMethodCode
Brian Sullivan [Tue, 28 Mar 2017 00:00:51 +0000 (17:00 -0700)]
Added two new profile data flags: ExcludeHotMethodCode and ExcludeColdMethodCode

Refactored zapimage CompileProfileData into four new methods:
CompileHotRegion, CompileColdRegion, PlaceMethodIL and ProfileDisableInlining

Preserve the CompileStatus and methodProfilingDataFlags used when we compile methods during CompileHotRegion()
Then during CompileColdRegion retrieve these value and exclude the method from the AOT native image if the status is COMPILE_EXCLUDED.

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

7 years agoReduce console writes in 544701.
Aditya Mandaleeka [Thu, 30 Mar 2017 00:41:08 +0000 (17:41 -0700)]
Reduce console writes in 544701.

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

7 years agoReflect PortableRIDs in Identity packages (dotnet/coreclr#10567)
Gaurav Khanna [Wed, 29 Mar 2017 23:34:58 +0000 (16:34 -0700)]
Reflect PortableRIDs in Identity packages (dotnet/coreclr#10567)

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

7 years ago[Linux/x86] Change non-PR Linux/x86 build CI job to daily job (dotnet/coreclr#10551)
Hyeongseok Oh [Wed, 29 Mar 2017 23:31:52 +0000 (08:31 +0900)]
[Linux/x86] Change non-PR Linux/x86 build CI job to daily job (dotnet/coreclr#10551)

This commit change non-PR Linux/x86 build CI job to daily job.
This job only perform build process now,
but it will be perform Linux/x86 CoreCLR unittest later.
And build result could be used for Linux/x86 CoreFX unittest.

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

7 years agoSwitch to produce Preview1 packages (dotnet/coreclr#9886)
Gaurav Khanna [Wed, 29 Mar 2017 22:55:28 +0000 (15:55 -0700)]
Switch to produce Preview1 packages (dotnet/coreclr#9886)

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

7 years agoMerge pull request dotnet/coreclr#10506 from adityamandaleeka/handle_table_local_gc_init
Aditya Mandaleeka [Wed, 29 Mar 2017 21:55:34 +0000 (14:55 -0700)]
Merge pull request dotnet/coreclr#10506 from adityamandaleeka/handle_table_local_gc_init

Create an IGCHandleTable interface

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

7 years agoHandle null ref in Compiler::optCreateAssertion
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Wed, 29 Mar 2017 21:07:26 +0000 (21:07 +0000)]
Handle null ref in Compiler::optCreateAssertion

Code as recommended by Eugene Rozenfeld in dotnet/coreclr#10359

Fixes dotnet/coreclr#10359

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

7 years agoJIT: improve types for single def locals and temps (dotnet/coreclr#10471)
Andy Ayers [Wed, 29 Mar 2017 21:16:46 +0000 (14:16 -0700)]
JIT: improve types for single def locals and temps (dotnet/coreclr#10471)

* JIT: improve types for single def locals and temps

Track whether a local has a single definition, and if so, if it has
a reference type, try and update its type from the declared type to
a better type taken from the value being assigned to the local.

Obtain types for some of the 'short-lived' ref type temps that should
have a single definition. Use both the tree and the eval stack as sources
of type information (the latter can be phased out if/when all tree nodes
can return rich type information).

Refactor the code that sets or updates lvClassHnd into utilities
to provide better auditing of type flow and make the set/update process
a bit more rigorous.

Cleanup the code that passes argument values a bit by commoning redundant
argument lookup expressions.

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

7 years agoMerge pull request dotnet/coreclr#10564 from JosephTremoulet/SelfAssign
Joseph Tremoulet [Wed, 29 Mar 2017 21:14:42 +0000 (17:14 -0400)]
Merge pull request dotnet/coreclr#10564 from JosephTremoulet/SelfAssign

Take fields into account checking for self-assign

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

7 years agoUpdate CoreClr, CoreFx to beta-25129-03, beta-25129-02, respectively (dotnet/coreclr...
dotnet bot [Wed, 29 Mar 2017 21:12:21 +0000 (14:12 -0700)]
Update CoreClr, CoreFx to beta-25129-03, beta-25129-02, respectively (dotnet/coreclr#10539)

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

7 years agochange JitEE interface signature for getReadyToRunDelegateCtorHelper (dotnet/coreclr...
dotnet bot [Wed, 29 Mar 2017 20:21:41 +0000 (13:21 -0700)]
change JitEE interface signature for getReadyToRunDelegateCtorHelper (dotnet/coreclr#10562)

[tfs-changeset: 1652444]

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

7 years agoFix some bugs in Linux ILLINK testing.
Swaroop Sridhar [Wed, 29 Mar 2017 01:51:56 +0000 (18:51 -0700)]
Fix some bugs in Linux ILLINK testing.

Fix a few problems in the <test>.sh generation for
running CoreCLR tests on Linux via ILLINK

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

7 years agoCreate a GCHandleTable interface with Init/Shutdown.
Aditya Mandaleeka [Thu, 23 Mar 2017 23:23:05 +0000 (16:23 -0700)]
Create a GCHandleTable interface with Init/Shutdown.

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

7 years agoRe-enable multi-queue for coreclr (dotnet/coreclr#10541)
smile21prc [Wed, 29 Mar 2017 18:52:25 +0000 (11:52 -0700)]
Re-enable multi-queue for coreclr (dotnet/coreclr#10541)

* Add multiqueue Support for coreclr.

Add multiqueue Support for coreclr.

* Upload build results to ONE linux container

Upload build results to ONE linux container

* Fix helixpublish.proj

Fix helixpublish.proj

* Adding more logs.

Adding more logs.

* Revert logging changes.

Revert logging changes.

* Use build version containing support of "+" delimiter

Use build version containing support of "+" delimiter

* Fix indention.

Fix indention.

* Update to use latest tools.

Update to use latest tools.

* Use an older tool as latest has a wired error on "Run build.sh" step.

Error details:
2017-03-28T23:30:13.2659430Z Running:
/root/coreclr/Tools/dotnetcli/dotnet /root/coreclr/Tools/run.exe
/root/coreclr/config.json build -Project=/root/coreclr/build.proj
-MsBuildLog=/flp:Verbosity=normal;LogFile=/root/coreclr/bin/Logs/System.Private.CoreLib_Checked.log
-BuildTarget -__IntermediatesDir=/root/coreclr/bin/obj/Linux.x64.Checked
-__RootBinDir=/root/coreclr/bin -BuildNugetPackage=false
-UseSharedCompilation=false -BuildArch=x64 -BuildType=Checked
-BuildOS=Linux
-OptimizationDataDir="/root/coreclr/packages/optimization.Linux-x64.IBC.CoreCLR//data/"
-EnableProfileGuidedOptimization=true -skiprestore
-OfficialBuildId=20170329-01 -- /p:ConfigurationGroup=Release
/flp:v=diag
2017-03-28T23:30:13.6855470Z Running: /root/coreclr/Tools/msbuild.sh
/nologo /verbosity:minimal /clp:Summary /maxcpucount
/l:BinClashLogger,Tools/net46/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log
/p:RestoreDuringBuild=false  /root/coreclr/build.proj
/p:__BuildType=Checked /p:__BuildArch=x64 /p:__BuildOS=Linux
/p:__RootBinDir=/root/coreclr/bin
/p:__IntermediatesDir=/root/coreclr/bin/obj/Linux.x64.Checked
/p:OfficialBuildId=20170329-01 /p:EnableProfileGuidedOptimization=true
/p:OptimizationDataDir="/root/coreclr/packages/optimization.Linux-x64.IBC.CoreCLR//data/"

/flp:Verbosity=normal;LogFile=/root/coreclr/bin/Logs/System.Private.CoreLib_Checked.log
/p:BuildNugetPackage=false /t:Build /p:UseSharedCompilation=false
/p:ConfigurationGroup=Release /flp:v=diag
2017-03-28T23:30:15.5843800Z
/root/coreclr/Tools/Microsoft.CSharp.CurrentVersion.targets(321,5):
error MSB4019: The imported project
"/root/coreclr/Tools/Microsoft.Net.Compilers/2.0.0-rc/tools/Microsoft.CSharp.Core.targets"
was not found. Confirm that the path in the <Import> declaration is
correct, and that the file exists on disk.
[/root/coreclr/src/ToolBox/SOS/NETCore/SOS.NETCore.csproj]
2017-03-28T23:30:16.6459770Z
/root/coreclr/Tools/Microsoft.CSharp.CurrentVersion.targets(321,5):
error MSB4019: The imported project
"/root/coreclr/Tools/Microsoft.Net.Compilers/2.0.0-rc/tools/Microsoft.CSharp.Core.targets"
was not found. Confirm that the path in the <Import> declaration is
correct, and that the file exists on disk.
[/root/coreclr/src/mscorlib/System.Private.CoreLib.csproj]

* New builds have errors, revert to use older builds.

New builds have errors, revert to use older builds.

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

7 years agoMerge pull request dotnet/coreclr#10446 from rahku/fix9879
Rahul Kumar [Wed, 29 Mar 2017 18:50:38 +0000 (11:50 -0700)]
Merge pull request dotnet/coreclr#10446 from rahku/fix9879

Allow assemblies in TPA to loaded using LoadFrom

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

7 years agoAdd shared directory README (dotnet/coreclr#10535)
Alex Perovich [Wed, 29 Mar 2017 18:41:45 +0000 (13:41 -0500)]
Add shared directory README (dotnet/coreclr#10535)

* Add shared directory README

* PR feedback

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

7 years agoTake fields into account checking for self-assign
Joseph Tremoulet [Tue, 28 Mar 2017 18:56:27 +0000 (14:56 -0400)]
Take fields into account checking for self-assign

The code in `fgMorphCopyBlock` that removes self-assigns checks if the LHS
and RHS refer to the same `lclVar`; update it to also check if the LHS and
RHS refer to the same field(s) of that `lclVar`, since otherwise copies
from one field to another of a struct can get lost.

Fixes dotnet/coreclr#10481.

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

7 years agoFix indentation of diagram in comment (dotnet/coreclr#10554)
Hyung-Kyu Choi [Wed, 29 Mar 2017 17:28:13 +0000 (02:28 +0900)]
Fix indentation of diagram in comment (dotnet/coreclr#10554)

Fix indentation of diagram in comment
in Compiler::fgRecognizeAndMorphBitwiseRotation

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

7 years agoFix duplicate fcall entries for GetAssemblyName (dotnet/coreclr#10546)
Rahul Kumar [Wed, 29 Mar 2017 17:26:35 +0000 (10:26 -0700)]
Fix duplicate fcall entries for GetAssemblyName (dotnet/coreclr#10546)

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

7 years ago[x86/Linux] Use Portable ArrayInitializeWorker (dotnet/coreclr#10550)
Jonghyun Park [Wed, 29 Mar 2017 17:25:15 +0000 (02:25 +0900)]
[x86/Linux] Use Portable ArrayInitializeWorker (dotnet/coreclr#10550)

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

7 years agoFix dependency to coreclr and mscorrc in Linux (dotnet/coreclr#10138)
Hyeongseok Oh [Wed, 29 Mar 2017 08:28:57 +0000 (17:28 +0900)]
Fix dependency to coreclr and mscorrc in Linux (dotnet/coreclr#10138)

* Fix dependency to coreclr and mscorrc in Linux

Remove dependency with coreclr in some projects for Linux
Recover build mscorrc for cross architecture in Linux

* Fix CMakeLists.txt in src/dlls

minimize uses of CLR_CROSS_COMPONENTS_BUILD flag in CMakeLists.txt

Modify root/CMakeLists.txt to exclude corerun and coreconsole build
during cross component build

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

7 years ago[x86/Linux] fix a typo of FillRegDisplay method. (dotnet/coreclr#10547)
ragmani [Wed, 29 Mar 2017 08:21:25 +0000 (17:21 +0900)]
[x86/Linux] fix a typo of FillRegDisplay method. (dotnet/coreclr#10547)

Signed-off-by: ragmani <ragmani0216@gmail.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/a1ad1592f45bdfc544deedb1d2e88e9a35895bb1

7 years agoDelete moved file
Jan Kotas [Wed, 29 Mar 2017 01:56:43 +0000 (18:56 -0700)]
Delete moved file

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

7 years agoMerge pull request dotnet/corertdotnet/coreclr#3134 from dotnet/nmirror
Jan Kotas [Wed, 29 Mar 2017 01:45:38 +0000 (18:45 -0700)]
Merge pull request dotnet/corertdotnet/coreclr#3134 from dotnet/nmirror

Merge nmirror to master

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

7 years ago[x86/Linux] Fix signature mismatch inside InstantiatingStub (dotnet/coreclr#10538)
Jonghyun Park [Wed, 29 Mar 2017 03:39:37 +0000 (12:39 +0900)]
[x86/Linux] Fix signature mismatch inside InstantiatingStub (dotnet/coreclr#10538)

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

7 years agoMerge pull request dotnet/coreclr#10537 from ramarag/cleanup_longfile
Rama krishnan Raghupathy [Wed, 29 Mar 2017 02:37:43 +0000 (19:37 -0700)]
Merge pull request dotnet/coreclr#10537 from ramarag/cleanup_longfile

Removing Unnecessary CloseBuffer calls

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

7 years agoRemoving Unnecessary CloseBuffer calls
Rama Krishnan Raghupathy [Wed, 29 Mar 2017 01:09:12 +0000 (18:09 -0700)]
Removing Unnecessary CloseBuffer calls

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

7 years agoMerge pull request dotnet/coreclr#10534 from sdmaclea/PR-ARM64-GC-ASSIGN-BYREF
Brian Sullivan [Wed, 29 Mar 2017 00:37:39 +0000 (17:37 -0700)]
Merge pull request dotnet/coreclr#10534 from sdmaclea/PR-ARM64-GC-ASSIGN-BYREF

[Arm64] Revise CORINFO_HELP_ASSIGN_BYREF code

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

7 years agoTimeSpan.FromMilliseconds(TimeSpan.MaxValue.TotalMilliseconds) exception fix (dotnet...
Zverev Eugene [Tue, 28 Mar 2017 23:50:14 +0000 (02:50 +0300)]
TimeSpan.FromMilliseconds(TimeSpan.MaxValue.TotalMilliseconds) exception fix (dotnet/coreclr#10352)

The problem is discussed here: https://connect.microsoft.com/VisualStudio/feedback/details/542235/timespan-structure-incorrectly-handles-values-close-to-min-and-max-value

The existing overflow checks are ignorant and superfluous.

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

7 years ago[x86/Linux] Align frame before SetObjectAppDomain call (dotnet/coreclr#10519)
Jonghyun Park [Tue, 28 Mar 2017 23:43:34 +0000 (08:43 +0900)]
[x86/Linux] Align frame before SetObjectAppDomain call (dotnet/coreclr#10519)

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

7 years agoCtor Jit-EE interface change (dotnet/coreclr#10512)
Sergey Andreenko [Tue, 28 Mar 2017 23:25:58 +0000 (16:25 -0700)]
Ctor Jit-EE interface change (dotnet/coreclr#10512)

Change JIT-EE interface for getReadyToRunDelegateCtorHelper.
Update GUID.

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

7 years ago[Arm64] Revise CORINFO_HELP_ASSIGN_BYREF code
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Tue, 28 Mar 2017 22:01:37 +0000 (22:01 +0000)]
[Arm64] Revise CORINFO_HELP_ASSIGN_BYREF code

Reverts dotnet/coreclr#9655 which didn't work correctly

Revised code to match amd64

Fixes many failing GCStress tests

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

7 years agoSeparate finalizer thread creation from GC initialization in EE Startup.
Aditya Mandaleeka [Thu, 23 Mar 2017 22:49:12 +0000 (15:49 -0700)]
Separate finalizer thread creation from GC initialization in EE Startup.

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

7 years agoMerge pull request dotnet/coreclr#10503 from sandreenko/fgOptimizeDelegateConstructor...
Sergey Andreenko [Tue, 28 Mar 2017 21:39:44 +0000 (14:39 -0700)]
Merge pull request dotnet/coreclr#10503 from sandreenko/fgOptimizeDelegateConstructor-cleanup

small fgOptimizeDelegateConstructor code refactoring

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

7 years agoGet VS to quit bugging me about replacing SR.cs already. (dotnet/coreclr#10530)
Atsushi Kanamori [Tue, 28 Mar 2017 21:03:21 +0000 (14:03 -0700)]
Get VS to quit bugging me about replacing SR.cs already. (dotnet/coreclr#10530)

Fix https://github.com/dotnet/coreclr/issues/10358

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

7 years agoreturn TPA assembly if loadfrom is passed a path to assembly with same identity
Rahul Kumar [Tue, 28 Mar 2017 20:25:27 +0000 (13:25 -0700)]
return TPA assembly if loadfrom is passed a path to assembly with same identity

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

7 years agoAdd support for CoreCLR testing via ILLINK on Linux
Swaroop Sridhar [Thu, 23 Mar 2017 01:09:05 +0000 (18:09 -0700)]
Add support for CoreCLR testing via ILLINK on Linux

Made changes to the test infrastructure to
1) Generate <test>.sh with commands to invoke ILLINK and run the output
2) Add runtest.sh --link=<path-to-illink> to invoke the ILLINK testing

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

7 years agoFix comment on mark::recover_plug_info (dotnet/coreclr#10516)
303248153 [Tue, 28 Mar 2017 18:12:18 +0000 (02:12 +0800)]
Fix comment on mark::recover_plug_info (dotnet/coreclr#10516)

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

7 years agoMerge pull request dotnet/coreclr#10507 from eerhardt/TZBinarySearch
Eric Erhardt [Tue, 28 Mar 2017 17:56:04 +0000 (12:56 -0500)]
Merge pull request dotnet/coreclr#10507 from eerhardt/TZBinarySearch

Binary Search in TimeZoneInfo.GetAdjustmentRuleForTime

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

7 years ago[Local GC] Use standard C++ types (bool) and consistent types (void*) on the interfac...
Sean Gillespie [Tue, 28 Mar 2017 16:59:04 +0000 (09:59 -0700)]
[Local GC] Use standard C++ types (bool) and consistent types (void*) on the interface (dotnet/coreclr#10463)

* [Local GC] BOOL -> bool on IGCHeap

* [Local GC] size_t -> void* on IGCHeap

* [Local GC] Silence warnings by being explicit about BOOl -> bool conversions

* Address code review feedback: FinalizeAppDomain BOOL -> bool

* Fix warnings

* Address code review feedback:
  1) Fix a missed default parameter (FALSE) on a parameter of type bool,
  2) Fix invocations of the diagnostic callbacks to use boolean literals
     instead of TRUE and FALSE,
  3) Fix various invocations of GC interface methods in the VM to use
     boolean literals instead of TRUE and FALSE

* Address code review feedback: fix inconsistency

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

7 years agoFix usage text of runtest.sh (dotnet/coreclr#10518)
Hanjoung Lee [Tue, 28 Mar 2017 15:53:08 +0000 (00:53 +0900)]
Fix usage text of runtest.sh (dotnet/coreclr#10518)

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

7 years agoUpdate CoreClr to beta-25128-03 (dotnet/coreclr#10517)
dotnet bot [Tue, 28 Mar 2017 14:47:07 +0000 (07:47 -0700)]
Update CoreClr to beta-25128-03 (dotnet/coreclr#10517)

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

7 years agoBinary Search in TimeZoneInfo.GetAdjustmentRuleForTime
Eric Erhardt [Mon, 27 Mar 2017 17:50:36 +0000 (12:50 -0500)]
Binary Search in TimeZoneInfo.GetAdjustmentRuleForTime

Since Unix uses IANA tzdata files, there can be hundreds of adjustment rules for each time zone.  To make the search for a given rule faster, use a binary search since the rules are guaranteed to be in chronological order.  See ValidateTimeZoneInfo.

Fix dotnet/coreclr#5716

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

7 years agoDon't ignore exceptions thrown from handlers of some events (dotnet/coreclr#10502)
Koundinya Veluri [Tue, 28 Mar 2017 05:38:53 +0000 (22:38 -0700)]
Don't ignore exceptions thrown from handlers of some events (dotnet/coreclr#10502)

Fixes dotnet/corefxdotnet/coreclr#14747:
- Events include: AssemblyLoadContext.Unloading, AppDomain.ProcessExit
- Made the same change for AppDomain.DomainUnload for consistency, but it's not raised

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

7 years agoFix link for up-for-grabs issues (dotnet/coreclr#10488)
Olof Olsson [Tue, 28 Mar 2017 03:32:35 +0000 (05:32 +0200)]
Fix link for up-for-grabs issues (dotnet/coreclr#10488)

* Fix link for up-for-grabs issues

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

7 years agoMove deleted files and remove m_ prefix in shared file
Alex Perovich [Mon, 27 Mar 2017 22:44:34 +0000 (15:44 -0700)]
Move deleted files and remove m_ prefix in shared file

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

7 years agoAdd DateTimeFormat and Parse to shared and remove moved file
Alex Perovich [Mon, 27 Mar 2017 18:12:31 +0000 (11:12 -0700)]
Add DateTimeFormat and Parse to shared and remove moved file

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

7 years agoUpdate CoreClr, CoreFx to beta-25127-03, beta-25124-07, respectively (dotnet/coreclr...
dotnet bot [Tue, 28 Mar 2017 00:59:59 +0000 (17:59 -0700)]
Update CoreClr, CoreFx to beta-25127-03, beta-25124-07, respectively (dotnet/coreclr#10468)

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

7 years agoSome missing stragglers (dotnet/coreclr#10509)
Dan Moseley [Tue, 28 Mar 2017 00:58:14 +0000 (17:58 -0700)]
Some missing stragglers (dotnet/coreclr#10509)

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

7 years agoImplement TLS field handles for RyuJIT/x86 (dotnet/coreclr#10510)
Bruce Forstall [Tue, 28 Mar 2017 00:05:45 +0000 (17:05 -0700)]
Implement TLS field handles for RyuJIT/x86 (dotnet/coreclr#10510)

Implement TLS field handles for RyuJIT/x86

This isn't used by .NET Core, but helps us run desktop testing.

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

7 years agosmall changes in fgOptimizeDelegateConstructor
Sergey Andreenko [Mon, 27 Mar 2017 19:46:59 +0000 (12:46 -0700)]
small changes in fgOptimizeDelegateConstructor

Delete unnecessary condition.
Use default methods to work with lists.
ArgList construction reordering.

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

7 years agoAdd heuristic to trigger GC to finalize dead threads and clean up han… (dotnet/corecl...
Koundinya Veluri [Mon, 27 Mar 2017 18:10:07 +0000 (11:10 -0700)]
Add heuristic to trigger GC to finalize dead threads and clean up han… (dotnet/coreclr#10413)

Add heuristic to trigger GC to finalize dead threads and clean up handles and memory

A thread that is started allocates some handles in Thread::AllocHandles(). After it terminates, the managed thread object needs to be collected by a GC for the handles to be released. Some applications that are mostly idle but have a timer ticking periodically will cause a thread pool thread to be created on each tick, since the thread pool preserves threads for a maximum of 20 seconds currently. Over time the number of handles accumulates to a high value. Thread creation adds some memory pressure, but that does not force a GC until a sufficiently large handle count, and for some mostly idle apps, that can be very long. The same issue arises with directly starting threads as well.

Fixes dotnet/coreclr#6602:
- Track a dead thread count separately from the current dead thread count. This is the count that will contribute to triggering a GC, once it reaches a threshold. The count is tracked separately so that it may be reset to zero when a max-generation GC occurs, preventing dead threads that survive a GC due to references from contributing to triggering a GC again in this fashion.
- If the count exceeds a threshold, enumerate dead threads to see which GC generation the corresponding managed thread objects are in. If the duration of time since the last GC of the desired generation also exceeds a threshold, trigger a preferably non-blocking GC on the finalizer thread.
- Removed a couple of handles and some code paths specific to user-requested thread suspension, which is not supported on CoreCLR

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

7 years agoMove Pointer.cs to the shared partition. (dotnet/coreclr#10499)
Atsushi Kanamori [Mon, 27 Mar 2017 18:09:21 +0000 (11:09 -0700)]
Move Pointer.cs to the shared partition. (dotnet/coreclr#10499)

* Move Pointer.cs to the shared partition.

(The two internal helpers are not yet used
on CoreRT but that's only because CoreRT
doesn't yet implement Pointer support
for Reflection invoke. Exposing them
unconditionally now to save us the trouble
of removing the #ifdef's later.)

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

7 years agoPath may contain spaces. Wrap in quotes. (dotnet/coreclr#10493)
Ben Monroe [Mon, 27 Mar 2017 17:04:32 +0000 (02:04 +0900)]
Path may contain spaces. Wrap in quotes. (dotnet/coreclr#10493)

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

7 years agoMerge pull request dotnet/coreclr#10484 from mikedn/map-vn-assert
Joseph Tremoulet [Mon, 27 Mar 2017 15:45:18 +0000 (11:45 -0400)]
Merge pull request dotnet/coreclr#10484 from mikedn/map-vn-assert

Correctly update bitvector in optAddVnAssertionMapping

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

7 years agoMerge pull request dotnet/coreclr#10489 from stephentoub/capturethrow
Stephen Toub [Sun, 26 Mar 2017 21:04:40 +0000 (17:04 -0400)]
Merge pull request dotnet/coreclr#10489 from stephentoub/capturethrow

Add static ExceptionDispatchInfo.Throw method

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

7 years agoAdd static ExceptionDispatchInfo.Throw method
Stephen Toub [Sun, 26 Mar 2017 18:26:34 +0000 (14:26 -0400)]
Add static ExceptionDispatchInfo.Throw method

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

7 years agoChange typedef for BOOL in gcenv.base.h to int. (dotnet/coreclr#10486)
Aditya Mandaleeka [Sun, 26 Mar 2017 14:59:49 +0000 (07:59 -0700)]
Change typedef for BOOL in gcenv.base.h to int. (dotnet/coreclr#10486)

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

7 years agoUpdate for Android cross build script (dotnet/coreclr#10483)
Cyd Haselton [Sun, 26 Mar 2017 14:57:46 +0000 (09:57 -0500)]
Update for Android cross build script (dotnet/coreclr#10483)

Updated URLs for libandroid-support and libandroid-support-dev downloads.
Added URLs and folders for libunwind and libunwind-dev
Removed libunwind build

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

7 years agoCoreFx 14486 Update API summary. (dotnet/coreclr#10485)
Mandar Sahasrabuddhe [Sun, 26 Mar 2017 02:07:42 +0000 (07:37 +0530)]
CoreFx 14486 Update API summary. (dotnet/coreclr#10485)

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

7 years agoCorrectly update bitvector in optAddVnAssertionMapping
Mike Danes [Sat, 25 Mar 2017 07:45:15 +0000 (09:45 +0200)]
Correctly update bitvector in optAddVnAssertionMapping

When short bitvectors are used only the first assertion was stored in the map stored bitvector, all subsequent assertions were stored into copies of that bitvector.

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

7 years agoEnable global invariant on OSX (dotnet/coreclr#10470)
Tarek Mahmoud Sayed [Sat, 25 Mar 2017 17:41:39 +0000 (10:41 -0700)]
Enable global invariant on OSX (dotnet/coreclr#10470)

* Enable Globalization Invariant on OSX

* Fix typo

* Fix small typo

* Remove static link to ICU lib

* Addressing the feedback

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

7 years agoTypo correction (dotnet/coreclr#10482)
Ofer Zelig [Sat, 25 Mar 2017 15:31:45 +0000 (02:31 +1100)]
Typo correction (dotnet/coreclr#10482)

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

7 years agoDelete pointless <internalonly/> comments (dotnet/coreclr#10479)
Jan Kotas [Sat, 25 Mar 2017 15:30:40 +0000 (08:30 -0700)]
Delete pointless <internalonly/> comments (dotnet/coreclr#10479)

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

7 years agoIssue dotnet/coreclr#7061 Remove private _Prop from StreamReader, StreamWriter (dotne...
Mandar Sahasrabuddhe [Sat, 25 Mar 2017 15:04:23 +0000 (20:34 +0530)]
Issue dotnet/coreclr#7061 Remove private _Prop from StreamReader, StreamWriter (dotnet/coreclr#10480)

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

7 years agoSome BitVecOps improvements (dotnet/coreclr#10437)
mikedn [Sat, 25 Mar 2017 14:45:10 +0000 (16:45 +0200)]
Some BitVecOps improvements (dotnet/coreclr#10437)

* Avoid virtual calls when allocating bitvectors

* Use specialized BitVecOps when possible

* Avoid unnecessary bitvector copying

* Cleanup CSE_DataFlow

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

7 years agoAdd Interlocked.MemoryBarrierProcessWide (dotnet/coreclr#10476)
Jan Kotas [Sat, 25 Mar 2017 07:42:49 +0000 (00:42 -0700)]
Add Interlocked.MemoryBarrierProcessWide (dotnet/coreclr#10476)

Contributes to dotnet/coreclr#16799

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

7 years agoRemove return statement and throwing directly for obselete methods. (dotnet/coreclr...
Ahson Ahmed Khan [Sat, 25 Mar 2017 05:50:14 +0000 (22:50 -0700)]
Remove return statement and throwing directly for obselete methods. (dotnet/coreclr#10477)

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

7 years agoMerge pull request dotnet/coreclr#10469 from briansull/ibc-dump
Brian Sullivan [Sat, 25 Mar 2017 04:45:50 +0000 (21:45 -0700)]
Merge pull request dotnet/coreclr#10469 from briansull/ibc-dump

Change the Jit Disasm message when we have profile data

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