platform/upstream/coreclr.git
8 years agoMerge pull request #2705 from RussKeldorph/vectorargs
Russ Keldorph [Wed, 20 Jan 2016 17:12:48 +0000 (09:12 -0800)]
Merge pull request #2705 from RussKeldorph/vectorargs

Reenable VectorArgs after SIMD change

8 years agoMerge pull request #2747 from Dmitry-Me/fixVariableNameTypo
Jan Kotas [Wed, 20 Jan 2016 14:56:12 +0000 (06:56 -0800)]
Merge pull request #2747 from Dmitry-Me/fixVariableNameTypo

Fix variable name typo

8 years agoMerge pull request #2748 from JonHanna/typo_fix_outter_outer
Jan Kotas [Wed, 20 Jan 2016 14:55:46 +0000 (06:55 -0800)]
Merge pull request #2748 from JonHanna/typo_fix_outter_outer

Fix typo outter → outer

8 years agoFix typo outter → outer
Jon Hanna [Wed, 20 Jan 2016 11:18:54 +0000 (11:18 +0000)]
Fix typo outter → outer

Some comments, a test's logged statement, and a macro parameter name.

8 years agoFix variable name typo
Dmitry-Me [Wed, 20 Jan 2016 08:51:51 +0000 (11:51 +0300)]
Fix variable name typo

8 years agoMerge pull request #2743 from LLITCHEV/Issue2380-1
Lubomir Litchev [Wed, 20 Jan 2016 07:36:44 +0000 (23:36 -0800)]
Merge pull request #2743 from LLITCHEV/Issue2380-1

One of the commits for resolving Issue 2380 failed.

8 years agoOne of the commits for resolving Issue 2380 failed.
Lubomir Litchev [Wed, 20 Jan 2016 06:05:53 +0000 (22:05 -0800)]
One of the commits for resolving Issue 2380 failed.

The changes are cosmetic and cleanup. Adding it as this separate commit.

8 years agoMerge pull request #2729 from JonHanna/fix_2727
AlexGhiondea [Wed, 20 Jan 2016 05:04:13 +0000 (21:04 -0800)]
Merge pull request #2729 from JonHanna/fix_2727

Ensure same lock is used to read and write Dictionary in AppContext

8 years agoMerge pull request #2735 from AustinWise/patch-1
Jan Kotas [Wed, 20 Jan 2016 04:43:41 +0000 (20:43 -0800)]
Merge pull request #2735 from AustinWise/patch-1

Update debugging-instructions.md

8 years agoMerge pull request #2684 from LLITCHEV/Issue2380
Lubomir Litchev [Wed, 20 Jan 2016 03:43:04 +0000 (19:43 -0800)]
Merge pull request #2684 from LLITCHEV/Issue2380

Fix for issue 2380.

8 years agoMerge pull request #2697 from adityamandaleeka/floatingPointCxtFix
Sergiy Kuryata [Wed, 20 Jan 2016 02:41:19 +0000 (18:41 -0800)]
Merge pull request #2697 from adityamandaleeka/floatingPointCxtFix

Ensure floating point context pointer has been initialized

8 years agoFix for issue 2380.
Lubomir Litchev [Fri, 15 Jan 2016 16:45:26 +0000 (08:45 -0800)]
Fix for issue 2380.

The problem here is that when calculating the first caller frame stack
homed in argument
when preparing for a tail call, the code used the Windows convention
(arg0)
- on Windows the first 4 args always get slots on the caller stack when a
  call is made.
  For System V the first stack passed arg needs to be calculated.

 Needed to initialize the uninitialized lvArgReg and lvOtherArgReg to
 REG_STK, so these var can be used to detect first caller stack homed
 argument istead of iterating over the types of the args.

 Also caching the value of the first caller stack homed arg number to
 avoid calculating it multiple times.

8 years agoMerge pull request #2737 from mmitche/add-minopts
Matt Mitchell [Tue, 19 Jan 2016 23:54:59 +0000 (15:54 -0800)]
Merge pull request #2737 from mmitche/add-minopts

Add COMPLUS_JitMinopts=1 stress leg to Jenkins

8 years agoAdd COMPLUS_JitMinopts=1 stress leg to Jenkins
Matt Mitchell [Tue, 19 Jan 2016 23:37:12 +0000 (15:37 -0800)]
Add COMPLUS_JitMinopts=1 stress leg to Jenkins

Triggered daily, currently windows only (primarily because the testenv option isn't currently available for runtest.sh).

Can be triggered using: "@dotnet-bot test Windows_NT minopts"

Also a bunch of refactoring to make adding stress modes

8 years agoUpdate debugging-instructions.md
Austin Wise [Tue, 19 Jan 2016 22:10:57 +0000 (14:10 -0800)]
Update debugging-instructions.md

The directories for the the projects generated by CMake have moved.

8 years agoMerge pull request #2724 from stephentoub/readwrite_perf
Jan Kotas [Tue, 19 Jan 2016 22:00:13 +0000 (14:00 -0800)]
Merge pull request #2724 from stephentoub/readwrite_perf

Several Stream.Read/WriteAsync improvements

8 years agoMerge pull request #2723 from Dmitry-Me/fixCommentTypo
Jan Kotas [Tue, 19 Jan 2016 21:18:55 +0000 (13:18 -0800)]
Merge pull request #2723 from Dmitry-Me/fixCommentTypo

Fix comment typo

8 years agoSimplify FP flag reset.
Aditya Mandaleeka [Tue, 19 Jan 2016 20:32:49 +0000 (12:32 -0800)]
Simplify FP flag reset.

8 years agoEnsure same lock is used to read and write Dictionary in AppContext
Jon Hanna [Tue, 19 Jan 2016 19:11:22 +0000 (19:11 +0000)]
Ensure same lock is used to read and write Dictionary in AppContext

Fixes #2727

8 years agoMerge pull request #1745 from ww898/thread_static_struct_issue
noahfalk [Tue, 19 Jan 2016 19:50:14 +0000 (11:50 -0800)]
Merge pull request #1745 from ww898/thread_static_struct_issue

GetStaticFieldAddrNoCreate() returns data offset instead of NULL

8 years agoFix override detection to work reliably for JITed mscorlib
Jan Kotas [Tue, 19 Jan 2016 15:41:19 +0000 (07:41 -0800)]
Fix override detection to work reliably for JITed mscorlib

8 years agoTweak a few more aspects of Stream.Read/WriteAsync perf improvements
stephentoub [Tue, 19 Jan 2016 13:14:42 +0000 (08:14 -0500)]
Tweak a few more aspects of Stream.Read/WriteAsync perf improvements

- Remove older reflection-based detection of overrides from SyncStream
- Remove Tuple allocation from RunReadWriteTaskWhenReady
- Fix spelling of Overridden
- Add a few comments

8 years agoAdd generic detection of Stream.{Begin|End}{Read|Write} overrides
Jan Kotas [Tue, 19 Jan 2016 08:04:33 +0000 (00:04 -0800)]
Add generic detection of Stream.{Begin|End}{Read|Write} overrides

8 years agoSeveral Stream.Read/WriteAsync improvements
stephentoub [Mon, 18 Jan 2016 15:44:35 +0000 (10:44 -0500)]
Several Stream.Read/WriteAsync improvements

Stream.XxAsync are currently implemented as a wrapper around Stream.Begin/EndXx.  When a derived class overrides XxAsync to do its own async implementation, there's no issue.  When a derived class overrides Begin/EndXx but not XxAsync, there's no issue (the base implementation does what it needs to do, wrapping Begin/EndXx).  However, if the derived implementation doesn't override either XxAsync or Begin/EndXx, there are a few issues.

First, there's unnecessary cost.  The base Begin/EndXx methods queue a Task to call the corresponding Read/Write method.  But then the XxAsync method create another Task to wrap the Begin/End method invocation.  This means we're allocating and completing two tasks, when we only needed to do one.

Second, task wait inlining is affected.  Because Read/WriteAsync aren't returning the original queued delegate-backed task but rather a promise task, Wait()'ing on the returned task blocks until the operation completes on another thread.  If the original delegate-backed task were returned, then Wait()'ing on the task could potentially "inline" its execution onto the current thread.

Third, there's unnecessary blocking if there are other outstanding async operations on the instance.  Since Begin/EndXx were introduced, they track whether an operation is in progress, and subsequent calls to BeginXx while an operation is in progress blocks synchronously.  Since Read/WriteAsync just wrap the virtual Begin/End methods, they inherit this behavior.

This commit addresses all three issues for CoreCLR.  The Begin/EndXx methods aren't exposed from Stream in the new contracts, and as a result outside of mscorlib we don't need to be concerned about these methods being overridden.  Thus, the commit adds an optimized path that simply returns the original delegate-backed task rather than wrapping it.  This avoids the unnecessary task overheads and duplication, and it enables wait inlining if someone happens to wait on it.  Further, since we're no longer subject to the behaviors of Begin/End, we can change the serialization to be done asynchronously rather than synchronously.

8 years agoFix comment typo
Dmitry-Me [Tue, 19 Jan 2016 10:26:53 +0000 (13:26 +0300)]
Fix comment typo

8 years agoMerge pull request #2720 from hughbe/synchronized-list
Jan Kotas [Tue, 19 Jan 2016 02:29:25 +0000 (18:29 -0800)]
Merge pull request #2720 from hughbe/synchronized-list

Remove SynchronizedList, Fix #1859

8 years agoMerge pull request #2718 from stephentoub/forcsync_completionaction
Stephen Toub [Mon, 18 Jan 2016 23:49:21 +0000 (18:49 -0500)]
Merge pull request #2718 from stephentoub/forcsync_completionaction

Allow some ITaskCompletionActions to always run synchronously

8 years agoRemove SynchronizedList
Hugh Bellamy [Mon, 18 Jan 2016 18:55:28 +0000 (18:55 +0000)]
Remove SynchronizedList

Fixes #1859
As stated in the issue, SynchronizedList and its accompanying internal
method are not called or used at across the dotnet projects, so it can
be dropped with a heavy heart.

8 years agoMerge pull request #2716 from janvorli/fix-crossgen-readytorun-build
Jan Kotas [Mon, 18 Jan 2016 16:02:31 +0000 (08:02 -0800)]
Merge pull request #2716 from janvorli/fix-crossgen-readytorun-build

Add ready to run support to unix crossgen

8 years agoAllow some ITaskCompletionActions to always run synchronously
stephentoub [Mon, 18 Jan 2016 12:26:14 +0000 (07:26 -0500)]
Allow some ITaskCompletionActions to always run synchronously

A few internal Task completion actions do a known and small quantity of work, without any potential to run arbitrary code, e.g. a completion action used in Task.Wait to set a ManualResetEventSlim.  Such actions used to typically run synchronously, but after https://github.com/dotnet/coreclr/pull/2026 can be forced to run asynchronously.  These few actions are considered purely internal implementation details of TPL, need not be subject to forcing continuations to run asynchronously, and have perf benefits to always being run synchronously, e.g. calling Wait on a RunContinuationsAsynchronously task shouldn't require a work item to be queued to unblock the task.

This commit adds a property to ITaskCompletionAction that we can check to determine whether it's ok to force the continuation to run synchronously even if the system says we should be running all continuations asynchronously.  Only those actions which are safe are annotated as such.  We only invoke this interface property getter in cases where we're about to fall back to allocating and queueing a work item, so the cost of the extra interface call is acceptable for the benefits it provides.  As all of this is internal, it can also be tweaked further in the future.

8 years agoAdd ready to run support to unix crossgen
Jan Vorlicek [Mon, 18 Jan 2016 10:50:50 +0000 (11:50 +0100)]
Add ready to run support to unix crossgen

This change enables ready to run support in the unix crossgen that was accidentally
not enabled when adding ready to run support for Unix in the past. Only the
FEATURE_READYTORUN was set, but not the FEATURE_READYTORUN_COMPILER.

8 years agoMerge pull request #2678 from DionYe/master
Jan Kotas [Mon, 18 Jan 2016 03:18:27 +0000 (19:18 -0800)]
Merge pull request #2678 from DionYe/master

Add check for out of memory

8 years agoAdd check for out of memory
DionYe [Fri, 15 Jan 2016 03:32:01 +0000 (11:32 +0800)]
Add check for out of memory

8 years agoMerge pull request #2608 from justinvp/functorcomparer
Jan Kotas [Mon, 18 Jan 2016 02:06:08 +0000 (18:06 -0800)]
Merge pull request #2608 from justinvp/functorcomparer

Remove redundant internal Array.FunctorComparer<T> type

8 years agoMerge pull request #2709 from dotnet-bot/from-tfs
Matt Ellis [Sun, 17 Jan 2016 02:56:19 +0000 (18:56 -0800)]
Merge pull request #2709 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix incorrect placement of FEATURE_SIMD ifdef, and syntax error under _TARGET_ARM_.
Ron Cain [Sun, 17 Jan 2016 00:37:22 +0000 (16:37 -0800)]
Fix incorrect placement of FEATURE_SIMD ifdef, and syntax error under _TARGET_ARM_.
Ron Cain checking in for Carol Eidt after validating fix.

[tfs-changeset: 1565967]

8 years agoMerge pull request #2707 from dotnet-bot/from-tfs
Matt Ellis [Sat, 16 Jan 2016 09:18:26 +0000 (01:18 -0800)]
Merge pull request #2707 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #2702 from justinvp/array_sort_getlowerbound
Jan Kotas [Sat, 16 Jan 2016 07:51:01 +0000 (23:51 -0800)]
Merge pull request #2702 from justinvp/array_sort_getlowerbound

Array.Sort<T>: Remove unnecessary GetLowerBound(0) call

8 years agoReenable VectorArgs after SIMD change
Russ Keldorph [Sat, 16 Jan 2016 04:45:34 +0000 (20:45 -0800)]
Reenable VectorArgs after SIMD change

8 years agoMerge pull request #2686 from hoyMS/Bug2652
Hongtao Yu [Sat, 16 Jan 2016 03:09:57 +0000 (19:09 -0800)]
Merge pull request #2686 from hoyMS/Bug2652

Fix for Bug 2652 [JitStress=2] JIT/Directed/Arrays/Complex2/Complex2.…

8 years agoMerge pull request #2694 from dotnet/UpdateReadmeForDebian
Stephen Toub [Sat, 16 Jan 2016 01:47:34 +0000 (20:47 -0500)]
Merge pull request #2694 from dotnet/UpdateReadmeForDebian

Add Debian CI projects to README

8 years agoMerge pull request #2693 from adityamandaleeka/contextAlignment
Aditya Mandaleeka [Sat, 16 Jan 2016 01:32:13 +0000 (17:32 -0800)]
Merge pull request #2693 from adityamandaleeka/contextAlignment

Revert old change for floating point context alignment issue

8 years agoReset CONTEXT_FLOATING_POINT flag if the values are invalid.
Aditya Mandaleeka [Sat, 16 Jan 2016 00:46:27 +0000 (16:46 -0800)]
Reset CONTEXT_FLOATING_POINT flag if the values are invalid.

8 years agoArray.Sort<T>: Remove unnecessary GetLowerBound(0) call
Justin Van Patten [Sat, 16 Jan 2016 00:57:56 +0000 (16:57 -0800)]
Array.Sort<T>: Remove unnecessary GetLowerBound(0) call

The lower bound of T[] is 0, so there's no need to call
GetLowerBound(0).

8 years agoVSO 178902 - Jit can incorrectly make a method partially interruptible when it should...
Brian Sullivan [Sat, 16 Jan 2016 00:55:26 +0000 (16:55 -0800)]
VSO 178902 - Jit can incorrectly make a method partially interruptible when it should be fully interruptible

This issue was caused when the IBC data for a very hot method overflowed the multiplication operation in setBBProfileWeight for the x86 Jit32
We then reorder the blocks in an odd way, which caused us to use a block that was not part of a loop in optReachWithoutCall
This caused us to make the method partially interruptible instead of fully interruptible.
This changeset fixes both issue for both the RyuJIT x64 and the x86 Jit32

[tfs-changeset: 1565753]

8 years agoMerge pull request #2695 from mikem8361/envvar
Mike McLaughlin [Sat, 16 Jan 2016 00:29:23 +0000 (16:29 -0800)]
Merge pull request #2695 from mikem8361/envvar

Add back COMPlus_DbgWaitForDebuggerAttach env var for mdbg tests

8 years agoMerge pull request #2545 from CarolEidt/LinuxSIMD
Carol Eidt [Fri, 15 Jan 2016 23:48:38 +0000 (15:48 -0800)]
Merge pull request #2545 from CarolEidt/LinuxSIMD

Enable FEATURE_SIMD on Linux.

8 years agoEnsure floating point context pointer has been initialized.
Aditya Mandaleeka [Fri, 15 Jan 2016 23:19:32 +0000 (15:19 -0800)]
Ensure floating point context pointer has been initialized.

8 years agoAdd back COMPlus_DbgWaitForDebuggerAttach env var for mdbg tests (for now).
Mike McLaughlin [Fri, 15 Jan 2016 22:00:04 +0000 (14:00 -0800)]
Add back COMPlus_DbgWaitForDebuggerAttach env var for mdbg tests (for now).

8 years agoMerge pull request #2685 from eerhardt/Fix2185
Eric Erhardt [Fri, 15 Jan 2016 21:36:57 +0000 (15:36 -0600)]
Merge pull request #2685 from eerhardt/Fix2185

Daylight transitions are not correct on Unix.

8 years agoEnable FEATURE_SIMD on Linux.
Carol Eidt [Wed, 9 Dec 2015 02:15:15 +0000 (18:15 -0800)]
Enable FEATURE_SIMD on Linux.

Most of the changes involve checking varTypeIsStruct instead of TYP_STRUCT in
cases where the SIMD types are treated like other structs, and then adding
a few special cases for SIMD types.  The UNIX ABI implementation currently requires
that struct handles be preserved through code generation, so this required some
additional changes. Finally, the code that "homes" incoming arguments required changes
to handle incoming SIMD register args that need to be reassembled into their assigned
registers. That method was slightly refactored, primarily because it had cases that
should have been ifdef'd out for 64 bits. It needs further refactoring, but that is
left for future work. This fixes half of issue #983.
A previous version of this PR exposed issues with JIT/SIMD tests being inconsistently
compiled wrt optimization. This change modifies those tests to always
compile both with and without optimization.

8 years agoAdd Debian CI projects to README
Nate Amundson [Fri, 15 Jan 2016 21:24:52 +0000 (15:24 -0600)]
Add Debian CI projects to README

Also define the table using HTML instead of markdown to have the ability to specify the width of each column.

8 years agorollback 1565534 and also fix build break
Rahul Kumar [Fri, 15 Jan 2016 21:06:24 +0000 (13:06 -0800)]
rollback 1565534 and also fix build break

[tfs-changeset: 1565674]

8 years agoFix for Bug 2652 [JitStress=2] JIT/Directed/Arrays/Complex2/Complex2.exe fails
Hongtao Yu [Fri, 15 Jan 2016 18:48:35 +0000 (10:48 -0800)]
Fix for Bug 2652 [JitStress=2] JIT/Directed/Arrays/Complex2/Complex2.exe fails

The bug is caused by calling fgMorph in optPerformHoistExpr:

Before
 N043 ( 1, 1) [000806] ------------ /--* lclVar int V04 loc3 u:7 $380
 N044 ( 3, 3) [000805] ------------ /--* + int $348
 N042 ( 1, 1) [000807] ------------ | --* lclVar int V05 loc4 u:7 $381
 N045 ( 5, 5) [000804] ------------ /--* + int $349
 N041 ( 1, 1) [000808] ------------ | --* lclVar int V06 loc5 u:7 $382
 N046 ( 7, 7) [000803] ------------ /--* + int $34a
 N040 ( 1, 1) [000809] ------------ | --* lclVar int V07 loc6 u:7 $383
 N047 ( 9, 9) [000802] ------------ /--* + int $34b
 N039 ( 1, 1) [000810] ------------ | --* lclVar int V08 loc7 u:7 $384
 N048 ( 11, 11) [000801] ------------ * + int $34c
 N038 ( 1, 1) [000811] ------------ --* lclVar int V09 loc8 u:7 $385

After
 ( 1, 1) [001747] -------H---- | /--* lclVar int V04 loc3 u:7 $380
 ( 11, 11) [001737] -------H---- --* + int $34c
 ( 1, 1) [001746] -------H---- | /--* lclVar int V05 loc4 u:7 $381
 ( 9, 9) [001739] ------------ --* + int $34b
 ( 1, 1) [001744] -------H---- | /--* lclVar int V06 loc5 u:7 $382
 ( 7, 7) [001741] ------------ --* + int $34a
 ( 1, 1) [001742] -------H---- | /--* lclVar int V07 loc6 u:7 $383
 ( 5, 5) [001743] ------------ --* + int $349
 ( 1, 1) [001740] -------H---- | /--* lclVar int V08 loc7 u:7 $384
 ( 3, 3) [001745] ------------ --* + int $348
 ( 1, 1) [001738] -------H---- --* lclVar int V09 loc8 u:7 $385

See the value number $34b doesn't reflect the same expressions before and after.

When fgMorph is called after value numbering, we have to ensure that a correct or a new value number is assigned to the resulting tree.

8 years agoRevert old change for floating point context alignment issue
Aditya Mandaleeka [Fri, 15 Jan 2016 21:01:35 +0000 (13:01 -0800)]
Revert old change for floating point context alignment issue

8 years agoMerge pull request #2687 from AndyAyersMS/FixBurgers
Andy Ayers [Fri, 15 Jan 2016 20:45:01 +0000 (12:45 -0800)]
Merge pull request #2687 from AndyAyersMS/FixBurgers

Fix exception in Burgers on AVX-capable HW

8 years agoMerge pull request #2691 from mmitche/fix-coreclr-builds
Matt Mitchell [Fri, 15 Jan 2016 20:29:09 +0000 (12:29 -0800)]
Merge pull request #2691 from mmitche/fix-coreclr-builds

Reenable commit builds for OS's where we don't run flow jobs (got acc…

8 years agoReenable commit builds for OS's where we don't run flow jobs (got accidentally disabl...
Matt Mitchell [Fri, 15 Jan 2016 20:27:21 +0000 (12:27 -0800)]
Reenable commit builds for OS's where we don't run flow jobs (got accidentally disabled yesterday)

8 years agoMerge pull request #2654 from pgavlin/BuildRyuJitPackage
Pat Gavlin [Fri, 15 Jan 2016 20:08:35 +0000 (12:08 -0800)]
Merge pull request #2654 from pgavlin/BuildRyuJitPackage

Add a script to build RyuJit packages.

8 years agoMerge pull request #2628 from hoyMS/Bug2353
Hongtao Yu [Fri, 15 Jan 2016 19:56:33 +0000 (11:56 -0800)]
Merge pull request #2628 from hoyMS/Bug2353

Fix for bug 2353 Assertion Failure 'nextStmtExpr->gtOper == GT_RETURN…

8 years agoMerge pull request #2670 from Priya91/addmachinename
Lakshmi Priya [Fri, 15 Jan 2016 19:55:30 +0000 (11:55 -0800)]
Merge pull request #2670 from Priya91/addmachinename

Expose MachineName in mscorlib.

8 years agoFix exception in Burgers on AVX-capable HW
Andy Ayers [Fri, 15 Jan 2016 18:47:18 +0000 (10:47 -0800)]
Fix exception in Burgers on AVX-capable HW

Original code was implicitly assuming Vector<>.Count == 2, which isn't true once AVX kicks in.

Closes #2679.

8 years agoFix for bug 2353 Assertion Failure 'nextStmtExpr->gtOper == GT_RETURN' in morph.cpp...
Hongtao Yu [Fri, 15 Jan 2016 00:01:03 +0000 (16:01 -0800)]
Fix for bug 2353 Assertion Failure 'nextStmtExpr->gtOper == GT_RETURN' in morph.cpp line 6671.

The change fixes a bug in importing POP instruction where a copy between a tempvar and the return value of a tail call is misgenerated for Unix with enregisterable struct return values.

8 years agoMerge pull request #2668 from mmitche/add-checked-builds
Matt Mitchell [Fri, 15 Jan 2016 18:10:07 +0000 (10:10 -0800)]
Merge pull request #2668 from mmitche/add-checked-builds

Add checked build jobs to Jenkins

8 years agoMerge pull request #2669 from wtgodbe/serverGC
William Godbe [Fri, 15 Jan 2016 18:02:41 +0000 (10:02 -0800)]
Merge pull request #2669 from wtgodbe/serverGC

Enable server GC for Ubuntu test runs for PRs in CI

8 years agoDaylight transitions are not correct on Unix.
Eric Erhardt [Fri, 15 Jan 2016 17:54:24 +0000 (11:54 -0600)]
Daylight transitions are not correct on Unix.

When checking whether a DateTime is daylight savings time, TimeZoneInfo gets it wrong when the AdjustmentRule spans multiple years. This is because CheckIsDst will adjust the DateTime's Year to be the same as the AdjustmentRule.StartTime.Year. On Unix, this is incorrect because the AdjustmentRules are fixed for the whole time; the offset doesn't change at all during the AdjustmentRule.

This is a fix for the last 2 issues noted in #2185.

8 years agoRollback changeset 1565223.
Wes Haggard [Fri, 15 Jan 2016 17:01:45 +0000 (09:01 -0800)]
Rollback changeset 1565223.

[tfs-changeset: 1565534]

8 years agoMerge pull request #2675 from RussKeldorph/disable4checked
Russ Keldorph [Fri, 15 Jan 2016 16:18:36 +0000 (08:18 -0800)]
Merge pull request #2675 from RussKeldorph/disable4checked

Disable tests failing in Checked builds so automation will be green

8 years agoMerge pull request #2660 from janvorli/stack-limit-changes
Jan Vorlicek [Fri, 15 Jan 2016 09:23:09 +0000 (10:23 +0100)]
Merge pull request #2660 from janvorli/stack-limit-changes

Improve stack limit checking precision

8 years agoMerge pull request #2661 from sergiy-k/pie
Sergiy Kuryata [Fri, 15 Jan 2016 05:29:15 +0000 (21:29 -0800)]
Merge pull request #2661 from sergiy-k/pie

Enable the fPIE compiler option for executables in the coreclr repo on Unix platforms

8 years agoDisable tests failing in Checked builds so automation is green
Russ Keldorph [Fri, 15 Jan 2016 01:36:57 +0000 (17:36 -0800)]
Disable tests failing in Checked builds so automation is green

 JIT\SIMD\VectorArgs\VectorArgs.cmd

 JIT/Methodical/Arrays/misc/_il_dbgarrres/_il_dbgarrres.sh
 JIT/Methodical/Arrays/misc/_il_relarrres/_il_relarrres.sh
 JIT/Methodical/delegate/_simpleoddpower_il_d/_simpleoddpower_il_d.sh
 JIT/Methodical/delegate/_simpleoddpower_il_r/_simpleoddpower_il_r.sh

 JIT/Methodical/Invoke/25params/25param1c_il_r/25param1c_il_r.sh
 JIT/Methodical/Invoke/25params/25param3c_il_r/25param3c_il_r.sh
 JIT/Methodical/Invoke/25params/25paramMixed_il_r/25paramMixed_il_r.sh

I also took the liberty of fixing the whitespace in issues.targets on the
assumption that all modern differs can ignore whitespace diffs.  If this
is unacceptable and should be separated, let me know.

8 years agoMerge pull request #2633 from mikem8361/launch
Mike McLaughlin [Fri, 15 Jan 2016 03:08:05 +0000 (19:08 -0800)]
Merge pull request #2633 from mikem8361/launch

Add debugger launch to dbgshim for xplat.

8 years agoAdd debugger launch to dbgshim for xplat.
Mike McLaughlin [Wed, 16 Dec 2015 00:42:20 +0000 (16:42 -0800)]
Add debugger launch to dbgshim for xplat.

Add the RegisterForRuntimeStartup/UnregisterForRuntimeStartup to dbghim. Executes
the callback when the coreclr runtime starts in the specified process. The callback
is passed the proper ICorDebug instance for the version of the runtime or an error if
something fails. This API works for launch and attach (and even the attach scenario
if the runtime hasn't been loaded yet) equally on both xplat and Windows. The callback
is always called on a separate thread. This API returns immediately.

The callback is invoke when the coreclr runtime module is loaded during early
initialization. The runtime is blocked during initialization until the callback
returns.

HRESULT
RegisterForRuntimeStartup(
    __in DWORD dwProcessId,
    __in PSTARTUP_CALLBACK pfnCallback,
    __in PVOID parameter,
    __out PVOID *ppUnregisterToken)

HRESULT
UnregisterForRuntimeStartup(
    __in PVOID pUnregisterToken)

Most of the work is done for xplat in the PAL_RegisterForRuntimeStartup and
PAL_UnregisterForRuntimeStartup. On Windows, the APIs are implemented on top
of the old dbgshim ones.

Added reference counting to DbgTransportSession so the cleanup can be done after
the transport worker and the main code is finished.

Fix a hang in OSX initializing multiple PALs in the debugging test dbg, dbgshim
and mscordaccore by not calling FILEInitStdHandles() from PAL_InitializeDLL.

Fixed a minor EnumerateCLRs bug in an error path. A ThrowHR instead of returning
the HRESULT.

Better pipe file/dbg transport cleanup. Now also call the dbg transport connection
abort for an unhandled native exception. Added PROCAbort to replace most calls to
abort(). The shutdown handler is called in PROCAbort().

Cleanup debugger transport pipes on CTRL-C termination.

Cleanup process code; remove now useless CProcSharedData.

Added "PROCESS" PAL trace type.

8 years agoMerge pull request #2630 from ellismg/fast-path-index-of
Stephen Toub [Fri, 15 Jan 2016 01:59:15 +0000 (20:59 -0500)]
Merge pull request #2630 from ellismg/fast-path-index-of

Fast path IndexOf and variants for ASCII

8 years agoMerge pull request #2665 from janvorli/fix-pal-test-time-measurement
Jan Vorlicek [Fri, 15 Jan 2016 01:49:39 +0000 (02:49 +0100)]
Merge pull request #2665 from janvorli/fix-pal-test-time-measurement

Make time measurement in PAL threading tests more precise

8 years agoExpose MachineName in mscorlib.
Lakshmi Priya Sekar [Thu, 14 Jan 2016 22:43:53 +0000 (14:43 -0800)]
Expose MachineName in mscorlib.

8 years agoMerge pull request #2659 from dotnet-bot/from-tfs
Jan Kotas [Fri, 15 Jan 2016 01:36:06 +0000 (17:36 -0800)]
Merge pull request #2659 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix for Build Issue #785302:
Rahul Kumar [Fri, 15 Jan 2016 01:29:57 +0000 (17:29 -0800)]
Fix for Build Issue #785302:
tools were still not getting built for projectK build....fixed that. Verified on local machine using below command
msbuild /t:rebuild /p:ProductGroupsToBuild=PK dirs.proj

[tfs-changeset: 1565223]

8 years ago[Fix issue https://github.com/dotnet/coreclr/issues/2379]
Pallavi Taneja [Fri, 15 Jan 2016 00:58:21 +0000 (16:58 -0800)]
[Fix issue https://github.com/dotnet/coreclr/issues/2379]

When retuning the args from the host we return the same array to all the callers causing changes done
by one reflected to the other caller. Adding Array.Clone() to mitigate the issue.
I will add the tests for these in corefx repro once they can be consumed there.

[tfs-changeset: 1565211]

8 years agoMerge pull request #2648 from sivarv/founddiff2
Sivarv [Fri, 15 Jan 2016 00:36:12 +0000 (16:36 -0800)]
Merge pull request #2648 from sivarv/founddiff2

Fix to issue #2349 - Assertion failed '!foundDiff' in 'Node[__Canon][System.__Canon]:Search(ref,ref):ref:this' in lsra.cpp

8 years agoMerge pull request #2664 from adityamandaleeka/enable_hw_excep_pal
Aditya Mandaleeka [Fri, 15 Jan 2016 00:34:32 +0000 (16:34 -0800)]
Merge pull request #2664 from adityamandaleeka/enable_hw_excep_pal

Add hardware exception handling back to Read/WriteProcessMemory

8 years agoMerge pull request #2657 from briansull/fix-legacy
Brian Sullivan [Thu, 14 Jan 2016 23:00:48 +0000 (15:00 -0800)]
Merge pull request #2657 from briansull/fix-legacy

 Fix the legacy frankenjit test execution failures

8 years agoEnable server GC for Ubuntu test runs for PRs in CI
William Godbe [Thu, 14 Jan 2016 22:53:08 +0000 (14:53 -0800)]
Enable server GC for Ubuntu test runs for PRs in CI

8 years agoAdd checked build jobs to Jenkins
Matt Mitchell [Thu, 14 Jan 2016 22:46:44 +0000 (14:46 -0800)]
Add checked build jobs to Jenkins

Initially checked will only run on commits.  Once verification is completed, checked will replace release for most testing

8 years agoMerge pull request #2566 from dotnet/UpdateDocDebian
Nate Amundson [Thu, 14 Jan 2016 22:45:50 +0000 (16:45 -0600)]
Merge pull request #2566 from dotnet/UpdateDocDebian

Update Linux instructions for Debian

8 years agoImprove stack limit checking precision
Jan Vorlicek [Thu, 14 Jan 2016 19:45:58 +0000 (20:45 +0100)]
Improve stack limit checking precision

This change improves the precision of checking whether an address is in stack limits
for cases where ulimit -s is set to unlimited and the stack limit is checked for the
current thread. It uses current SP instead of the cached stack limit, since the OS
is free to move the stack limit up during the process runtime and the cached value
reflects the initial stack limit.

8 years agoMake time measurement in PAL threading tests more precise
Jan Vorlicek [Thu, 14 Jan 2016 21:57:01 +0000 (22:57 +0100)]
Make time measurement in PAL threading tests more precise

This change replaces GetTickCount by measurement using QueryPerformanceCounter.
This is an attempt to fix stability of bunch of threading tests that were
failing randomly due to large error margin of the GetTickCount on Debian.

8 years agoMerge pull request #2564 from mmitche/add-ildasm-roundtrip
Matt Mitchell [Thu, 14 Jan 2016 21:47:38 +0000 (13:47 -0800)]
Merge pull request #2564 from mmitche/add-ildasm-roundtrip

Add ildasm roundtrip

8 years agoAdd ILAsm roundtrip testing
Matt Mitchell [Thu, 7 Jan 2016 19:01:12 +0000 (11:01 -0800)]
Add ILAsm roundtrip testing

Refactor pri1 and default testing into scenarios

8 years agoFix the frankenjit test execution failures
Brian Sullivan [Wed, 13 Jan 2016 23:21:54 +0000 (15:21 -0800)]
Fix the frankenjit test execution failures

The frankenjit is the new RyuJit frontend minus the rationalize phase and the legacy x86 backend.
It is still used internally for testing purposed and it was broken with the recent cleanup of liveness.
This change pust back the old method that handled GT_QMARK nodes. It is renamed to
fgLegacyPerStatementLocalVarLiveness and it is moved into codegenlegacy.cpp.

8 years agoAdd hardware exception handling back to Read/WriteProcessMemory
Aditya Mandaleeka [Thu, 14 Jan 2016 20:38:45 +0000 (12:38 -0800)]
Add hardware exception handling back to Read/WriteProcessMemory

8 years agoEnable the fPIE compiler option for executables in the coreclr repo on Unix platforms
Sergiy Kuryata [Thu, 14 Jan 2016 20:40:37 +0000 (12:40 -0800)]
Enable the fPIE compiler option for executables in the coreclr repo on Unix platforms

8 years agoFix for bug 2353 Assertion Failure 'nextStmtExpr->gtOper == GT_RETURN' in RetBufferBu...
Hongtao Yu [Tue, 12 Jan 2016 23:44:43 +0000 (15:44 -0800)]
Fix for bug 2353 Assertion Failure 'nextStmtExpr->gtOper == GT_RETURN' in RetBufferBug:Tailaller() in morph.cpp line 6671.

The change fixes a bug in importing POP instruction where a copy between a tempvar and the return value of a tail call is misgenerated for Unix with enregisterable struct return values.

The change also fixes a bug of using GenTree::CopyFrom in fMorphInline where the dst node is a child of the src node.

8 years agoAdd OSS license headers to all new files in github
Rahul Kumar [Thu, 14 Jan 2016 20:02:03 +0000 (12:02 -0800)]
Add OSS license headers to all new files in github

[tfs-changeset: 1565108]

8 years agoFix x86chk build break:
Brian Sullivan [Thu, 14 Jan 2016 19:27:36 +0000 (11:27 -0800)]
Fix x86chk build break:

ndp\clr\src\debug\ee\debugger.h(1117): error C2220: warning treated as error - no 'object' file generated
ndp\clr\src\debug\ee\debugger.h(1117): warning C4324: 'DebuggerHeapExecutableMemoryChunk' : structure was padded due to __declspec(align())

[tfs-changeset: 1565087]

8 years agoAdd a script to build RyuJit packages.
Pat Gavlin [Thu, 14 Jan 2016 18:02:45 +0000 (10:02 -0800)]
Add a script to build RyuJit packages.

This will be used to build and publish these packages.

8 years agoFor the repro case the method being compiled is a generic method
sivarv [Thu, 14 Jan 2016 00:20:39 +0000 (16:20 -0800)]
For the repro case the method being compiled is a generic method
whose generic context is derived from thisptr.  For this reason JIT
is asked to keep thisptr alive and report in gc-info.  For such
methods JIT, caches thisptr to a stack slot in prolog and that
stack slot gets reported in gc-info.

Due to tail call loop optimization, the recursive method call at the end
is converted into a loop.  This transformation assigns all the arguments
to temps and temps back to incoming parameters of the method and finally
branches to the first basic block (see fgMorphRecursiveFastTailCallIntoLoop()).
This will leads to the following basic block

tmp = GT_INDIR(thisptr+24)
thisptr = tmp

That is thisptr is changing while looping.  But the thisptr stores in
cached stack slot is not updated.  So potentially there is a mismatch
in generic context reported in gc-info to VM and the one used within
the method body.

The same issue exists in case of methods that have generic context
passed in a hidden argument instead of derived from thisptr.

Fix:
For now disabling tail call loop optimization for methods that need generic
context till we the above mentioned issue.

8 years agoMerge pull request #2621 from pgavlin/ConfigureOnly
Pat Gavlin [Thu, 14 Jan 2016 17:53:47 +0000 (09:53 -0800)]
Merge pull request #2621 from pgavlin/ConfigureOnly

Add configureonly and skipconfigure to builds.

8 years agoMerge pull request #2649 from swgillespie/gc_flavor_select
Sean Gillespie [Thu, 14 Jan 2016 08:44:18 +0000 (00:44 -0800)]
Merge pull request #2649 from swgillespie/gc_flavor_select

corerun: Enable Server GC and Concurrent GC to be configured with environment variables

8 years agoMerge pull request #2640 from janvorli/fix-stack-overflow
Jan Kotas [Thu, 14 Jan 2016 06:27:03 +0000 (22:27 -0800)]
Merge pull request #2640 from janvorli/fix-stack-overflow

Fix Unix stack overflow detection