platform/upstream/dotnet/runtime.git
8 years agoMerge pull request dotnet/coreclr#3466 from mikem8361/armfix
Mike McLaughlin [Wed, 2 Mar 2016 21:01:08 +0000 (13:01 -0800)]
Merge pull request dotnet/coreclr#3466 from mikem8361/armfix

Fixes issue dotnet/coreclr#3453 ARM build break.

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

8 years agoMerge pull request dotnet/coreclr#3447 from AndyAyersMS/ForceInlineFix
Andy Ayers [Wed, 2 Mar 2016 19:43:48 +0000 (11:43 -0800)]
Merge pull request dotnet/coreclr#3447 from AndyAyersMS/ForceInlineFix

Inliner: restore some force inline overrides

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

8 years agoMerge pull request dotnet/coreclr#3468 from jashook/amr64_rel
Jarret Shook [Wed, 2 Mar 2016 19:38:59 +0000 (11:38 -0800)]
Merge pull request dotnet/coreclr#3468 from jashook/amr64_rel

Turn off testing for arm64 for debug and checked builds.

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

8 years agoTurn off testing for arm64 for debug and checked builds.
jashook [Wed, 2 Mar 2016 19:31:25 +0000 (11:31 -0800)]
Turn off testing for arm64 for debug and checked builds.

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

8 years agoMerge pull request dotnet/coreclr#3435 from jashook/arm64_testing
Jarret Shook [Wed, 2 Mar 2016 18:48:27 +0000 (10:48 -0800)]
Merge pull request dotnet/coreclr#3435 from jashook/arm64_testing

Small changes to netci to enable arm64 testing.

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

8 years agoFixes issue dotnet/coreclr#3453 ARM build break.
Mike McLaughlin [Wed, 2 Mar 2016 18:42:40 +0000 (10:42 -0800)]
Fixes issue dotnet/coreclr#3453 ARM build break.

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

8 years agoMerge pull request dotnet/coreclr#3460 from AndyAyersMS/FixBadInlineeRedundancy
Andy Ayers [Wed, 2 Mar 2016 18:34:41 +0000 (10:34 -0800)]
Merge pull request dotnet/coreclr#3460 from AndyAyersMS/FixBadInlineeRedundancy

Inliner: fix assert for multiple failure reasons when inlining

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

8 years agoMerge pull request dotnet/coreclr#3444 from kyulee1/mul
Kyungwoo Lee [Wed, 2 Mar 2016 18:14:34 +0000 (10:14 -0800)]
Merge pull request dotnet/coreclr#3444 from kyulee1/mul

ARM64: Fix for Multiplication with Overflow Check

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

8 years agoARM64: Fix for Multiplication with Overflow Check
Kyungwoo Lee [Tue, 1 Mar 2016 17:33:13 +0000 (09:33 -0800)]
ARM64: Fix for Multiplication with Overflow Check

For 4 byte integer multiplication, JIT emits a bad-code which is valid
only for 8 byte (i8) multiplication.
For the fix, I use ```smull```(signed)/```umull```(unsigned) instructions
that contain 8 byte results from 4 byte by 4 byte multiplication.
So only one multiplication is needed instead of two for this case.
By simply shifting the results, we could get the upper results that is
used to detect overflow.
Similar transform is made for the unsigned case.
Lower is also changed to reserve a register for overflow check.

Before
smulh   w10, w8, w9  --> Incorrect use: smulh is for obtaining the upper
bits [127:64] of x8 * x9
mul     w8, w8, w9
cmp     x10, x8, ASR dotnet/coreclr#63

After
smull   x8, x8, x9   --> x8 = w8 * w9
lsr     x10, x8, dotnet/coreclr#32 --> shift the upper bit of x8 to get sign bit
cmp     w10, w8, ASR dotnet/coreclr#31 --> check sign bit

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

8 years agoMerge pull request dotnet/coreclr#3464 from kyulee1/deltest
Pat Gavlin [Wed, 2 Mar 2016 18:07:11 +0000 (10:07 -0800)]
Merge pull request dotnet/coreclr#3464 from kyulee1/deltest

Delete a bad test (b06435) for double to long conversion

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

8 years agoSmall changes to netci to enable arm64 testing.
jashook [Tue, 1 Mar 2016 01:06:40 +0000 (17:06 -0800)]
Small changes to netci to enable arm64 testing.

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

8 years agoMerge pull request dotnet/coreclr#3456 from bbowyersmyth/StringReplace
Jan Kotas [Wed, 2 Mar 2016 17:59:39 +0000 (09:59 -0800)]
Merge pull request dotnet/coreclr#3456 from bbowyersmyth/StringReplace

Port String.Replace(char, char) from CoreRT

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

8 years agoDelete a bad test (b06435) for double to long conversion
Kyungwoo Lee [Wed, 2 Mar 2016 01:17:14 +0000 (17:17 -0800)]
Delete a bad test (b06435) for double to long conversion

This test relies on unspecified value when a large double value
is converted to a long value where overflow occurs.
For x64(cvttsd2si), this value is MIN_INT(0x8000000000000000) while ARM64(fcvtzs) produces MAX_INT(0x7fffffffffffffff).
According to ECMA spec, the value is unspecified, so I simply delete this test.

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

8 years agoMerge pull request dotnet/coreclr#3458 from dotnet-bot/from-tfs
Jan Kotas [Wed, 2 Mar 2016 11:45:39 +0000 (03:45 -0800)]
Merge pull request dotnet/coreclr#3458 from dotnet-bot/from-tfs

Merge changes from TFS

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

8 years agoInliner: fix assert for multiple failure reasons when inlining
Andy Ayers [Wed, 2 Mar 2016 07:24:43 +0000 (23:24 -0800)]
Inliner: fix assert for multiple failure reasons when inlining

Change dotnet/coreclr#3436 added asserts that checked that the LegacyPolicy would not
see multiple failing observations when inlining because we expect the
inliner to fail fast when it hits the first bad observation.

This change adds a test case that shows one example where we could get
two failing observations, along with code changes to fix the issue.

When an inlinee has invalid IL, an exception is raised and caught in
`jitNativeCode`. The catch there sets the inline result to the never
state. A failure code is propagated back to `fgInvokeInlineeCompiler`
which redundantly sets the inline result to a failing state with a
generic "something bad happened" observation. This second observation
triggers an assert since the jit is inlining and the result is already
known to be a failure.

The fix is to check in `fgInvokeInlineeCompiler` if the inline result
is already known to be in a failing state, and if so, forgo the new
observation.

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

8 years agoFix build break on arm caused by long path support change
John Chen [Wed, 2 Mar 2016 06:43:03 +0000 (22:43 -0800)]
Fix build break on arm caused by long path support change

[tfs-changeset: 1580615]

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

8 years agoMerge pull request dotnet/coreclr#3448 from swgillespie/license_headers
Sean Gillespie [Wed, 2 Mar 2016 04:02:52 +0000 (20:02 -0800)]
Merge pull request dotnet/coreclr#3448 from swgillespie/license_headers

Fix license header for test files

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

8 years agoPort String.Replace(char, char) from CoreRT
Bruce Bowyer-Smyth [Wed, 2 Mar 2016 03:49:41 +0000 (13:49 +1000)]
Port String.Replace(char, char) from CoreRT

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

8 years agoInliner: restore some force inline overrides
Andy Ayers [Tue, 1 Mar 2016 21:11:59 +0000 (13:11 -0800)]
Inliner: restore some force inline overrides

Force inline should override the IL size and maxstack limits imposed
for normal inlines. This change undoes an unintentional behavior change
from recent refactoring.

Added some test cases which are sensitive to this behavior.

Also, since we now track failing inlines, dump the inline tree even
if no methods were successfully inlined.

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

8 years agoMerge pull request dotnet/coreclr#3438 from swaroop-sridhar/corjithost
Swaroop Sridhar [Tue, 1 Mar 2016 22:21:13 +0000 (14:21 -0800)]
Merge pull request dotnet/coreclr#3438 from swaroop-sridhar/corjithost

Export CorJitHost interface

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

8 years agoMerge pull request dotnet/coreclr#3445 from mikem8361/buildsymbols
Mike McLaughlin [Tue, 1 Mar 2016 21:58:43 +0000 (13:58 -0800)]
Merge pull request dotnet/coreclr#3445 from mikem8361/buildsymbols

Enable source/line info on "release" builds

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

8 years agoMerge pull request dotnet/coreclr#3433 from JohnChen0/longpath
John Chen [Tue, 1 Mar 2016 21:48:22 +0000 (13:48 -0800)]
Merge pull request dotnet/coreclr#3433 from JohnChen0/longpath

Support long paths in CoreCLR runtime on Windows

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

8 years agoMerge pull request dotnet/coreclr#3440 from gkhanna79/InitToolsUpdate
Gaurav Khanna [Tue, 1 Mar 2016 19:42:21 +0000 (11:42 -0800)]
Merge pull request dotnet/coreclr#3440 from gkhanna79/InitToolsUpdate

Map RHEL distribution to download CentOS CLI

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

8 years agoMerge pull request dotnet/coreclr#3436 from AndyAyersMS/InlineRefactorResilientPolicy
Andy Ayers [Tue, 1 Mar 2016 19:02:10 +0000 (11:02 -0800)]
Merge pull request dotnet/coreclr#3436 from AndyAyersMS/InlineRefactorResilientPolicy

Inliner refactoring: allow repeated bad observations

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

8 years agoMerge pull request dotnet/coreclr#3385 from kyulee1/fixmod1
Kyungwoo Lee [Tue, 1 Mar 2016 17:35:54 +0000 (09:35 -0800)]
Merge pull request dotnet/coreclr#3385 from kyulee1/fixmod1

ARM64: Fix for Mod 1

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

8 years agoEnable source/line info on "release" builds
Mike McLaughlin [Tue, 1 Mar 2016 17:26:07 +0000 (09:26 -0800)]
Enable source/line info on "release" builds

The symbol info will be stripped and put into a separate *-dbg by dotnet cli (soon).

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

8 years agoARM64: Fix for Mod 1
Kyungwoo Lee [Fri, 26 Feb 2016 19:30:23 +0000 (11:30 -0800)]
ARM64: Fix for Mod 1

In Arm64, mod a % b is simulated as a - a / b * b.
When b (divisor) is 1, the result is simply 0.
This optimization is done in the post-pass of morph
while JIT already expands the mod operation in the pre-pass of morph.
This unnessary expansion results in bad codegen down the road.
So, the fix is to move this special case handling in the pre-pass.

Before
fgMorphTree BB02, stmt 2 (after)
[000035] -------------                   /--*  lclVar    int    V02 tmp1
[000036] -A-----------                /--*  comma     int
[000001] -------------                |  |  /--*  const     int 0xffffffff80000000
[000034] -A-----------                |  \--*  =         int
[000033] D------N-----                |     \--*  lclVar    int    V02 tmp1
[000041] -A-----------             /--*  -         int
[000040] -------------             |  \--*  lclVar    int    V02
[000006] -A-----------             *  =         int
[000005] D------N-----             \--*  lclVar    int    V01 tmp0

After
[000033] -------------             /--*  const     int    0
[000006] -A-----------             *  =         int
[000005] D------N-----             \--*  lclVar    int    V01 tmp0

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

8 years agoMap RHEL distribution to download CentOS CLI
Gaurav Khanna [Tue, 1 Mar 2016 06:50:01 +0000 (22:50 -0800)]
Map RHEL distribution to download CentOS CLI

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

8 years agoMerge pull request dotnet/coreclr#3351 from LLITCHEV/Issue2757
Lubomir Litchev [Tue, 1 Mar 2016 05:29:51 +0000 (21:29 -0800)]
Merge pull request dotnet/coreclr#3351 from LLITCHEV/Issue2757

Add support for emitting GC-ness of the second return register for 16…

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

8 years agoMerge pull request dotnet/coreclr#3437 from briansull/update-tests
Brian Sullivan [Tue, 1 Mar 2016 03:21:28 +0000 (19:21 -0800)]
Merge pull request dotnet/coreclr#3437 from briansull/update-tests

Updated arm64 Tests.lst for  PR dotnet/coreclr#3430
This is a test metadata only update, it contains no source code changes

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

8 years agoMoved 42 tests from UNSTABLE to EXPECTED_PASS
Brian Sullivan [Tue, 1 Mar 2016 02:57:36 +0000 (18:57 -0800)]
Moved 42 tests from UNSTABLE to EXPECTED_PASS

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

8 years agoExport CorJitHost interface
Swaroop Sridhar [Tue, 1 Mar 2016 02:24:28 +0000 (18:24 -0800)]
Export CorJitHost interface

Export the CorJitHost interface to the build directory, so that
alternate JITs can use it.

This change is necessary to fix LLILC build break.

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

8 years agoUpdated arm64 Tests.lst for PR dotnet/coreclr#3430
Brian Sullivan [Tue, 1 Mar 2016 01:58:53 +0000 (17:58 -0800)]
Updated arm64 Tests.lst for  PR dotnet/coreclr#3430

That PR fixed Issue dotnet/coreclr#3104 and we now have 20 new passing tests
There are still 5 tests with that tag that still fail and now are marked with NEED_TRIAGE
The tests that fail when we do not set COMPLUS_GCgen0size=50000000 are now tagged with REQ_LARGE_GEN0

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

8 years agoInliner refactoring: allow repeated bad observations
Andy Ayers [Mon, 29 Feb 2016 22:59:46 +0000 (14:59 -0800)]
Inliner refactoring: allow repeated bad observations

The LegacyPolicy now allows repeated observations leading to never
or failing inlines, provided the policy is used as part of the prejit
scan and the observations all have the same impact (that is, all nevers
or all failures). Only the first bad observation is remembered and it
is used as the reason for badness.

This addresses another of the items in issue dotnet/coreclr#3371.

Also, clean up a few things:

Fix a few copy and paste errors in comment headers.

Fix broken "disallow copy-assignment" pattern for InlineResult
and uncomment and fix same for InlinePolicy.

Remove an accidentally duplicated comment block (original is still
there in inline.h).

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

8 years agoAdd support for emitting GC-ness of the second return register for 16 byte
Lubomir Litchev [Thu, 25 Feb 2016 05:26:55 +0000 (21:26 -0800)]
Add support for emitting GC-ness of the second return register for 16 byte
structs.

This changeset adds support for emitting the GC-ness of the second return
register (RDX for System V Amd64) for multi-register return structs.
It closes a hole in the GC info and resolves multiple GC stress failures.

Fixes dotnet/coreclr#2757.

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

8 years agoMerge pull request dotnet/coreclr#3434 from dotnet-bot/from-tfs
Pat Gavlin [Mon, 29 Feb 2016 23:50:37 +0000 (15:50 -0800)]
Merge pull request dotnet/coreclr#3434 from dotnet-bot/from-tfs

Merge changes from TFS

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

8 years agoMerge pull request dotnet/coreclr#3432 from AndyAyersMS/InlineRefactorRemoveLRMode
Andy Ayers [Mon, 29 Feb 2016 23:48:10 +0000 (15:48 -0800)]
Merge pull request dotnet/coreclr#3432 from AndyAyersMS/InlineRefactorRemoveLRMode

Inliner refactoring: remove the LR sampling mode

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

8 years agoFix a build break in ArenaAllocator.
Pat Gavlin [Mon, 29 Feb 2016 22:40:59 +0000 (14:40 -0800)]
Fix a build break in ArenaAllocator.

The toolset used by the internal build (and the ARM build in CI) seems to be a bit
buggy w.r.t. move assignment and deleted assignment operators. In particular,
it attempts to generate an assignment operator for a derived type whose base
type has deleted the corresponding operator and it chooses deleted copy
assignment operators over move assignment operators unless std::move is
used.

[tfs-changeset: 1579941]

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

8 years agoSupport long paths in CoreCLR runtime on Windows
John Chen (JOCHEN7) [Wed, 24 Feb 2016 04:36:07 +0000 (20:36 -0800)]
Support long paths in CoreCLR runtime on Windows

The CoreCLR runtime is updated to support long file paths on Windows.
Pending updates to mscorlib.dll, the following scenarios are supported:
* Run managed apps from a long path.
* Load CoreCLR runtime and framework from a long path.
* Load user assemblies from a long path.
* Run CrossGen from a long path, with its input/output from a long path.
* Generate debug log file at a long path.

The following scenarios are not yet supported, and will be fixed in
future commits:
* Mscorlib.dll and framework assemblies are not yet long path compatible.
  Note that until mscorlib.dll is fixed, most of the runtime changes can't
  actually be used.
* Support on non-Windows platforms.
* Support for debugging and error reporting.
* Tools such as ilasm or ildasm.

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

8 years agoInliner refactoring: remove the LR sampling mode
Andy Ayers [Mon, 29 Feb 2016 18:33:23 +0000 (10:33 -0800)]
Inliner refactoring: remove the LR sampling mode

Remove code that sampled methods and provided data for the linear
regresssion (LR) size model used by the inliner. We plan on preserving
the current model for legacy behavior and creating new and different
models for future work.

Addreses one part of dotnet/coreclr#3371.

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

8 years agoMerge pull request dotnet/coreclr#3431 from CarolEidt/ProtojitAltJit
Pat Gavlin [Mon, 29 Feb 2016 20:55:50 +0000 (12:55 -0800)]
Merge pull request dotnet/coreclr#3431 from CarolEidt/ProtojitAltJit

Define ALT_JIT for protojit.dll

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

8 years agoMerge pull request dotnet/coreclr#3389 from pgavlin/AllocatorRefactor
Pat Gavlin [Mon, 29 Feb 2016 19:33:15 +0000 (11:33 -0800)]
Merge pull request dotnet/coreclr#3389 from pgavlin/AllocatorRefactor

Refactor the pooled ArenaAllocator.

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

8 years agoMerge pull request dotnet/coreclr#3429 from kyulee1/pow
Pat Gavlin [Mon, 29 Feb 2016 19:32:46 +0000 (11:32 -0800)]
Merge pull request dotnet/coreclr#3429 from kyulee1/pow

ARM64: Fix for pow test

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

8 years agoMerge pull request dotnet/coreclr#3430 from rahku/arm64
Rahul Kumar [Mon, 29 Feb 2016 19:21:29 +0000 (11:21 -0800)]
Merge pull request dotnet/coreclr#3430 from rahku/arm64

Fixes issue dotnet/coreclr#2643 and dotnet/coreclr#2731

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

8 years agoDefine ALT_JIT for protojit.dll
Carol Eidt [Mon, 29 Feb 2016 19:18:02 +0000 (11:18 -0800)]
Define ALT_JIT for protojit.dll

This enables the use of the COMPlus variables for controlling which
files use the altjit, as well as for dumps, etc.

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

8 years agoMerge pull request dotnet/coreclr#3328 from wtgodbe/centos
William Godbe [Mon, 29 Feb 2016 18:23:23 +0000 (10:23 -0800)]
Merge pull request dotnet/coreclr#3328 from wtgodbe/centos

Enable checked CentOS pri 1 build & test jobs per-commit in CI

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

8 years agoEnable checked CentOS pri 1 build & test jobs per-commit in CI
William Godbe [Tue, 23 Feb 2016 19:52:19 +0000 (11:52 -0800)]
Enable checked CentOS pri 1 build & test jobs per-commit in CI

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

8 years agoFixes issue dotnet/coreclr#2643 and dotnet/coreclr#2731
Rahul Kumar [Mon, 29 Feb 2016 18:01:04 +0000 (10:01 -0800)]
Fixes issue dotnet/coreclr#2643 and dotnet/coreclr#2731

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

8 years agoMerge pull request dotnet/coreclr#3399 from pgavlin/Disable374539
Pat Gavlin [Mon, 29 Feb 2016 17:57:25 +0000 (09:57 -0800)]
Merge pull request dotnet/coreclr#3399 from pgavlin/Disable374539

Move devdiv374539 out of test priority 0.

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

8 years agoRefactor the pooled ArenaAllocator.
Pat Gavlin [Fri, 26 Feb 2016 19:17:03 +0000 (11:17 -0800)]
Refactor the pooled ArenaAllocator.

The mark/release functionality on `ArenaAllocator` was only being used by the pooled
allocator, and caused some complications in API and implementation. Instead of
providing this functionality on all allocators, refactor this functionality out of
`ArenaAllocator` and into a new subclass, `PooledAllocator`, that provides the
singleton pooled allocator.

A number of additional usability/reliability changes have been enabled as part of this
change:
- `ArenaAllocator::initialize` has been replaced with move assignment
- Asserts have been added on all relevant instance methods to ensure that
  `ArenaAllocator` values are initialized before use
- `ArenaAllocator::returnPooledAllocator` has been replaced by making
  `ArenaAllocator::destroy` virtual and having `PooledAllocator::destroy` return the
  singleton
- The teardown of the pooled allocator is now thread-safe w.r.t. the shutdown of the
  arena allocator subsystem

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

8 years agoARM64: Fix for pow test
Kyungwoo Lee [Mon, 29 Feb 2016 16:18:33 +0000 (08:18 -0800)]
ARM64: Fix for pow test

This skips Pow(Double.Epsilon,1) test for ARM64 same as ARM.

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

8 years agoMerge pull request dotnet/coreclr#3423 from gkhanna79/ExtendNugetPkgSupport
Gaurav Khanna [Mon, 29 Feb 2016 03:42:52 +0000 (19:42 -0800)]
Merge pull request dotnet/coreclr#3423 from gkhanna79/ExtendNugetPkgSupport

Generate CoreCLR Nuget Package for CentOS, Debian and RHEL

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

8 years agoMerge pull request dotnet/coreclr#3424 from dotnet-bot/from-tfs
Matt Ellis [Mon, 29 Feb 2016 02:43:19 +0000 (18:43 -0800)]
Merge pull request dotnet/coreclr#3424 from dotnet-bot/from-tfs

Merge changes from TFS

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

8 years agoAdd missing .gitmirror file.
Matt Ellis [Mon, 29 Feb 2016 01:40:42 +0000 (17:40 -0800)]
Add missing .gitmirror file.

[tfs-changeset: 1579610]

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

8 years agoMerge pull request dotnet/coreclr#3418 from krytarowski/netbsd-support-58
Stephen Toub [Sun, 28 Feb 2016 23:46:10 +0000 (18:46 -0500)]
Merge pull request dotnet/coreclr#3418 from krytarowski/netbsd-support-58

Add netbsdmscorlib to build.cmd

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

8 years agoMerge pull request dotnet/coreclr#3387 from rahku/Helix
Rahul Kumar [Sun, 28 Feb 2016 23:40:16 +0000 (15:40 -0800)]
Merge pull request dotnet/coreclr#3387 from rahku/Helix

Helix test: remove hack to copy currently built runtime.

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

8 years agoremove hack to copy currently built runtime.
Rahul Kumar [Fri, 26 Feb 2016 01:13:49 +0000 (17:13 -0800)]
remove hack to copy currently built runtime.
Instead add dependency to currently built runtime package

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

8 years agoGenerate CoreCLR Nuget Package for CentOS, Debian and RHEL
Gaurav Khanna [Sun, 28 Feb 2016 17:38:18 +0000 (09:38 -0800)]
Generate CoreCLR Nuget Package for CentOS, Debian and RHEL

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

8 years agoMerge pull request dotnet/coreclr#3402 from rahku/fixBbuil
Rahul Kumar [Sun, 28 Feb 2016 16:16:24 +0000 (08:16 -0800)]
Merge pull request dotnet/coreclr#3402 from rahku/fixBbuil

fix warning C4334

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

8 years agoMerge pull request dotnet/coreclr#3410 from jkotas/license
Jan Kotas [Sun, 28 Feb 2016 06:17:46 +0000 (22:17 -0800)]
Merge pull request dotnet/coreclr#3410 from jkotas/license

Update license header

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

8 years agoMerge pull request dotnet/coreclr#3415 from krytarowski/netbsd-support-57
Jan Kotas [Sat, 27 Feb 2016 23:44:21 +0000 (15:44 -0800)]
Merge pull request dotnet/coreclr#3415 from krytarowski/netbsd-support-57

Fix build on NetBSD: Include <stdarg.h> for va_arg(3)

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

8 years agoAdd netbsdmscorlib to build.cmd
Kamil Rytarowski [Sat, 27 Feb 2016 22:42:42 +0000 (23:42 +0100)]
Add netbsdmscorlib to build.cmd

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

8 years agoMerge pull request dotnet/coreclr#3140 from adityamandaleeka/env_pal
Aditya Mandaleeka [Sat, 27 Feb 2016 22:34:51 +0000 (14:34 -0800)]
Merge pull request dotnet/coreclr#3140 from adityamandaleeka/env_pal

Fix usage of environment in PAL

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

8 years agoFix build on NetBSD: Include <stdarg.h> for va_arg(3)
Kamil Rytarowski [Sat, 27 Feb 2016 21:19:11 +0000 (22:19 +0100)]
Fix build on NetBSD: Include <stdarg.h> for va_arg(3)

STDARG(3)                  Library Functions Manual                  STDARG(3)

NAME
     stdarg, va_arg, va_copy, va_end, va_start - variable argument lists

SYNOPSIS
     #include <stdarg.h>

     void
     va_start(va_list ap, last);

     type
     va_arg(va_list ap, type);

     void
     va_copy(va_list dest, va_list src);

     void
     va_end(va_list ap);

NetBSD 7.99                      June 14, 2015                     NetBSD 7.99

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

8 years agoMerge pull request dotnet/coreclr#3261 from krytarowski/netbsd-support-51
Aditya Mandaleeka [Sat, 27 Feb 2016 21:12:17 +0000 (13:12 -0800)]
Merge pull request dotnet/coreclr#3261 from krytarowski/netbsd-support-51

Fix NetBSD build: Define PAL_STDCPP_COMPAT=1 for twowaypipe.cpp

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

8 years agoFurther cleanup of environment code.
Aditya Mandaleeka [Fri, 12 Feb 2016 03:08:06 +0000 (19:08 -0800)]
Further cleanup of environment code.

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

8 years agoMerge pull request dotnet/coreclr#3406 from BruceForstall/RemoveDupGS2
Jan Kotas [Sat, 27 Feb 2016 16:38:31 +0000 (08:38 -0800)]
Merge pull request dotnet/coreclr#3406 from BruceForstall/RemoveDupGS2

Remove duplicate GS compiler switch setting

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

8 years agoUpdate license header
Jan Kotas [Sat, 27 Feb 2016 16:36:55 +0000 (08:36 -0800)]
Update license header

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

8 years agoMerge pull request dotnet/coreclr#3395 from dotnet-bot/from-tfs
Jan Kotas [Sat, 27 Feb 2016 16:33:58 +0000 (08:33 -0800)]
Merge pull request dotnet/coreclr#3395 from dotnet-bot/from-tfs

Merge changes from TFS

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

8 years agoMerge pull request dotnet/coreclr#3397 from BruceForstall/AddRuntimeInformationReference
Bruce Forstall [Sat, 27 Feb 2016 16:25:50 +0000 (08:25 -0800)]
Merge pull request dotnet/coreclr#3397 from BruceForstall/AddRuntimeInformationReference

Add reference to System.Runtime.InteropServices.RuntimeInformation

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

8 years agoMerge pull request dotnet/coreclr#3403 from BruceForstall/FixLinuxStandalone
Bruce Forstall [Sat, 27 Feb 2016 16:21:48 +0000 (08:21 -0800)]
Merge pull request dotnet/coreclr#3403 from BruceForstall/FixLinuxStandalone

Add linker magic to non-Windows standalone RyuJIT build

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

8 years agoMerge pull request dotnet/coreclr#3409 from stephentoub/stop_masking_job_signals
Jan Kotas [Sat, 27 Feb 2016 16:09:41 +0000 (08:09 -0800)]
Merge pull request dotnet/coreclr#3409 from stephentoub/stop_masking_job_signals

Stop masking SIGTSTP and SIGCONT

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

8 years agoMerge pull request dotnet/coreclr#3407 from mikedn/nra-comments
Pat Gavlin [Sat, 27 Feb 2016 15:52:07 +0000 (07:52 -0800)]
Merge pull request dotnet/coreclr#3407 from mikedn/nra-comments

Update JIT's ArenaAllocator comments

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

8 years agoStop masking SIGTSTP and SIGCONT
Stephen Toub [Sat, 27 Feb 2016 13:51:58 +0000 (08:51 -0500)]
Stop masking SIGTSTP and SIGCONT

These are needed for job management, e.g. with SIGTSTP masked, ctrl-z doesn't work to suspend a process, and with SIGCONT masked, when the process is resumed it doesn't get notified.

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

8 years agoUpdate JIT's ArenaAllocator comments
Mike Danes [Sat, 27 Feb 2016 11:34:28 +0000 (13:34 +0200)]
Update JIT's ArenaAllocator comments

A recent allocator refactoring changed function and class names but the old names were still referenced in a comment.

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

8 years agoFix license header for test files
Sean Gillespie [Sat, 27 Feb 2016 06:37:01 +0000 (22:37 -0800)]
Fix license header for test files

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

8 years agoMerge pull request dotnet/coreclr#3400 from pgavlin/TruncationCleanup
Pat Gavlin [Sat, 27 Feb 2016 03:58:34 +0000 (19:58 -0800)]
Merge pull request dotnet/coreclr#3400 from pgavlin/TruncationCleanup

Clean up some truncation warnings in the JIT.

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

8 years agoMerge pull request dotnet/coreclr#3401 from mikem8361/sosdocs
Mike McLaughlin [Sat, 27 Feb 2016 03:29:35 +0000 (19:29 -0800)]
Merge pull request dotnet/coreclr#3401 from mikem8361/sosdocs

Add the "sosdocsunix.txt" sos help file to the nuget packages.

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

8 years agoAdd linker magic to non-Windows standalone RyuJIT build to make PAL work better when...
Bruce Forstall [Sat, 27 Feb 2016 01:40:23 +0000 (17:40 -0800)]
Add linker magic to non-Windows standalone RyuJIT build to make PAL work better when dynamically loading it.

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

8 years agoRemove duplicate /GS switch
Bruce Forstall [Sat, 27 Feb 2016 03:08:24 +0000 (19:08 -0800)]
Remove duplicate /GS switch

Also, fix a typo.

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

8 years agoMerge pull request dotnet/coreclr#3398 from mikem8361/fixstrike
Matt Ellis [Sat, 27 Feb 2016 02:22:11 +0000 (18:22 -0800)]
Merge pull request dotnet/coreclr#3398 from mikem8361/fixstrike

Fix sos/strike build.

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

8 years agoMerge pull request dotnet/coreclr#3390 from briansull/mod-fixes
Brian Sullivan [Sat, 27 Feb 2016 01:59:44 +0000 (17:59 -0800)]
Merge pull request dotnet/coreclr#3390 from briansull/mod-fixes

Fixes GT_MOD codegen and three other issues for ARM64

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

8 years agoFixes GT_MOD codegen and three other issues for ARM64
Brian Sullivan [Fri, 26 Feb 2016 22:21:51 +0000 (14:21 -0800)]
Fixes GT_MOD codegen and three other issues for ARM64

Fix Issue 3263 - Incorrect codegen for rem.un - Unisgned Remainder
Fix Issue 3317 - Improve the codegen for divide so that we omit checks when we have a constant divisor
Fix Issue 3326 - assert EA_4BYTE or EA_8BYTE
Fix an assert when using alloca with allocation between 65 and 4095 bytes

Also fixed the name for GT_UDIV and GT_UDIV to contain a "un-" prefix.
Added 10 additional passing tests with tag REL_PASS

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

8 years agofix warning C4334
Rahul Kumar [Sat, 27 Feb 2016 00:42:48 +0000 (16:42 -0800)]
fix warning C4334

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

8 years agoAdd the "sosdocsunix.txt" sos help file to the nuget packages.
Mike McLaughlin [Sat, 27 Feb 2016 01:15:13 +0000 (17:15 -0800)]
Add the "sosdocsunix.txt" sos help file to the nuget packages.

This allows the sos help command to work when installed from our packages.

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

8 years agoMove devdiv374539 out of test priority 0.
Pat Gavlin [Sat, 27 Feb 2016 01:06:27 +0000 (17:06 -0800)]
Move devdiv374539 out of test priority 0.

This test takes a very long time to execute (~60% of the total time
spent in JIT tests on my machine) and does not seem to be providing
an enormous amount of value. This change moves the test into priority
1, which excludes it from the build by default. If you already have
a test build, you will need to do a clean build in order to avoid
running this test.

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

8 years agoMerge pull request dotnet/coreclr#3393 from janvorli/make-hw-exception-test-pri-0
Jan Vorlicek [Sat, 27 Feb 2016 01:06:01 +0000 (02:06 +0100)]
Merge pull request dotnet/coreclr#3393 from janvorli/make-hw-exception-test-pri-0

Change avtest priority to 0

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

8 years agoClean up some truncation warnings in the JIT.
Pat Gavlin [Sat, 27 Feb 2016 00:48:47 +0000 (16:48 -0800)]
Clean up some truncation warnings in the JIT.

These changes address casts that trigger warnings C4242, C4254, or
C4302 (all of which are truncation-related). Most of the warnings
turned out to be innocuous, but there does seem to be some fishiness
when truncating pointer values to 32-bit integers for the purpose
of generating hash codes.

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

8 years agoFix sos/strike build.
Mike McLaughlin [Sat, 27 Feb 2016 00:35:19 +0000 (16:35 -0800)]
Fix sos/strike build.

The previous sos commit added some xplat specific files in a "inc" directory that already exists on the tfs side containing the actual dbgeng version of the files.  Renamed the directory to "xplat".

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

8 years agoAdd reference to System.Runtime.InteropServices.RuntimeInformation.dll for some JIT...
Bruce Forstall [Sat, 27 Feb 2016 00:29:57 +0000 (16:29 -0800)]
Add reference to System.Runtime.InteropServices.RuntimeInformation.dll for some JIT tests

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

8 years agoMerge pull request dotnet/coreclr#3383 from BruceForstall/FixJitSystemIOFilesystemBinding
Bruce Forstall [Sat, 27 Feb 2016 00:23:38 +0000 (16:23 -0800)]
Merge pull request dotnet/coreclr#3383 from BruceForstall/FixJitSystemIOFilesystemBinding

Change binding of System.IO.FileSystem

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

8 years agoFix directory name casing in TFS to match what is in git.
Matt Ellis [Fri, 26 Feb 2016 23:57:40 +0000 (15:57 -0800)]
Fix directory name casing in TFS to match what is in git.

[tfs-changeset: 1579410]

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

8 years agoChange avtest priority to 0
Jan Vorlicek [Fri, 26 Feb 2016 23:39:00 +0000 (00:39 +0100)]
Change avtest priority to 0

This change modifies the priority of the coreclr regression test avtest
to 0 so that it is run in the lab as part of the CI. This fulfills the

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

8 years agoAdd missing .gitmirror file.
Matt Ellis [Fri, 26 Feb 2016 22:05:51 +0000 (14:05 -0800)]
Add missing .gitmirror file.

[tfs-changeset: 1579391]

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

8 years agoAdd documentation to environ functions.
Aditya Mandaleeka [Thu, 11 Feb 2016 02:06:38 +0000 (18:06 -0800)]
Add documentation to environ functions.

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

8 years agoFix all callers of environment functions.
Aditya Mandaleeka [Wed, 10 Feb 2016 03:14:28 +0000 (19:14 -0800)]
Fix all callers of environment functions.

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

8 years agoRemove usage of PALC versions of critsec functions in environ.
Aditya Mandaleeka [Tue, 9 Feb 2016 03:17:09 +0000 (19:17 -0800)]
Remove usage of PALC versions of critsec functions in environ.

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

8 years agoModify environment code to avoid unsafe environ usage.
Aditya Mandaleeka [Tue, 9 Feb 2016 02:11:15 +0000 (18:11 -0800)]
Modify environment code to avoid unsafe environ usage.

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

8 years agoConsolidate environment code in environ.cpp.
Aditya Mandaleeka [Tue, 9 Feb 2016 00:14:57 +0000 (16:14 -0800)]
Consolidate environment code in environ.cpp.

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

8 years agoMerge pull request dotnet/coreclr#3381 from cmckinsey/DevDiv_168744
Chris McKinsey [Fri, 26 Feb 2016 20:37:32 +0000 (12:37 -0800)]
Merge pull request dotnet/coreclr#3381 from cmckinsey/DevDiv_168744

Fix bug in optOptimizeBools for equality of 0/1.

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