platform/upstream/coreclr.git
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 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 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 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 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

8 years agoMerge pull request #2616 from sergiy-k/stackprotector
Sergiy Kuryata [Thu, 14 Jan 2016 05:33:24 +0000 (21:33 -0800)]
Merge pull request #2616 from sergiy-k/stackprotector

Enable the stack-protector compiler option for all coreclr code on Unix.

8 years agoMerge pull request #2646 from stephentoub/list_exceptionnames
Stephen Toub [Thu, 14 Jan 2016 05:09:00 +0000 (00:09 -0500)]
Merge pull request #2646 from stephentoub/list_exceptionnames

Fix incorrect ArgumentException names in List<T>

8 years agoEnable corerun to select server GC or concurrent GC on startup based on environment...
Sean Gillespie [Thu, 14 Jan 2016 02:09:44 +0000 (18:09 -0800)]
Enable corerun to select server GC or concurrent GC on startup based on environment variables

8 years agoMerge pull request #2642 from stephentoub/aggexc_message
Stephen Toub [Thu, 14 Jan 2016 02:32:01 +0000 (21:32 -0500)]
Merge pull request #2642 from stephentoub/aggexc_message

Override AggregateException.Message to include more detail

8 years agoMerge pull request #2647 from dotnet-bot/from-tfs
Jan Kotas [Thu, 14 Jan 2016 02:27:23 +0000 (18:27 -0800)]
Merge pull request #2647 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoUse "-fstack-protector" instead of "-fstack-protector-strong" on OS X in order to...
Sergiy Kuryata [Thu, 14 Jan 2016 01:27:24 +0000 (17:27 -0800)]
Use "-fstack-protector" instead of "-fstack-protector-strong" on OS X in order to work around a bug in clang (current version 7.0.2).

8 years agoFix Unix stack overflow detection
Jan Vorlicek [Wed, 13 Jan 2016 16:56:29 +0000 (17:56 +0100)]
Fix Unix stack overflow detection

On Linux (and FreeBSD), we were not distinguishing a stack overflow detected
using a probe and general access violation. So instead of aborting the process,
we were sending it a managed access violation exception.
This change checks for the case when the access violation happens in the page
below the stack limit and aborts right in the sigsegv_handler if it does.
On OSX, we were detecting it, but there was a problem in it - it could only
detect it if the probed address was closer than 512kB to the current SP.
So e.g. an application failing due to allocating 1MB structure on stack didn't
pass this test.
The fix here was to remove the distance limit.

8 years agoMerge pull request #2264 from adityamandaleeka/dbg_exec_alloc
Aditya Mandaleeka [Thu, 14 Jan 2016 00:05:45 +0000 (16:05 -0800)]
Merge pull request #2264 from adityamandaleeka/dbg_exec_alloc

[WIP] Fix usage of executable heap memory

8 years agoMerge pull request #2637 from bbowyersmyth/StringExceptionParamName
Jan Kotas [Wed, 13 Jan 2016 23:56:23 +0000 (15:56 -0800)]
Merge pull request #2637 from bbowyersmyth/StringExceptionParamName

Provide paramName for ArgumentNull and ArgumentOutOfRange for String

8 years agocoreclr BuildTools for github builds - instead of building the tools (which do not...
Rahul Kumar [Wed, 13 Jan 2016 23:34:21 +0000 (15:34 -0800)]
coreclr BuildTools for github builds - instead of building the tools (which do not change) create a nuget package
This contains changes for following:
     1. Binplace & sign following binaries
       a. pdbtypematch.exe (only build in x86 ret .... build errors for other flavors)
       b. dactableGen.exe
       c. dialib.dll
       d. GenClrDebugResource.exe
       e. InjectResource.exe
     2. add sources of PdbTypeMatch tools in github
     3. bump up the version of coreclr buildtools package to 1.0.4
     4. add above tools to coreclr buildtools package
     5. remove bclrewriter from coreclr buildtools package
     6. build dotnet.builtools.coreclr package only for x86 ret builds as pdbtypematch.exe only builds for ret flavor.

[tfs-changeset: 1564332]

8 years agoAdd configureonly and skipconfigure to builds.
Pat Gavlin [Tue, 12 Jan 2016 19:25:27 +0000 (11:25 -0800)]
Add configureonly and skipconfigure to builds.

These options allow the developer to either:
1. Run build configuration without actually running the build, or
2. Skip build configuration when running the build.

CMake already adds the various CMakeLists.txt files as build
dependencies s.t. it will be automatically re-run when necessary.

8 years agoFix incorrect ArgumentException names in List<T>
stephentoub [Wed, 13 Jan 2016 23:29:39 +0000 (18:29 -0500)]
Fix incorrect ArgumentException names in List<T>

8 years agoMerge pull request #2641 from eerhardt/FixIdn
Stephen Toub [Wed, 13 Jan 2016 23:15:58 +0000 (18:15 -0500)]
Merge pull request #2641 from eerhardt/FixIdn

IdnMapping GetUnicode conformance tests fail

8 years agoOverride AggregateException.Message to include more detail
stephentoub [Wed, 13 Jan 2016 18:37:47 +0000 (13:37 -0500)]
Override AggregateException.Message to include more detail

ToString() includes details on inner exceptions, but Message does not, with the default message just saying "One or more errors occurred."  This commit overrides Message to append the messages of the inner exceptions as well.

8 years agoMerge pull request #2622 from AndyAyersMS/MiscBenchmarks
Andy Ayers [Wed, 13 Jan 2016 21:39:49 +0000 (13:39 -0800)]
Merge pull request #2622 from AndyAyersMS/MiscBenchmarks

Add miscellaneous benchmarks

8 years agoFast path IndexOf and variants for ASCII
Matt Ellis [Wed, 13 Jan 2016 01:01:02 +0000 (17:01 -0800)]
Fast path IndexOf and variants for ASCII

In ICU doing any sort of index of operation (which includes Prefix and
Suffix checking) is relatively expensive. ICU ends up doing a fair
amount of work and allocations in order to construct a searcher object
which could be reused, but our APIs are not amenable towards working in
this manner.

However, for some cultures we can often fast path ASCII searches when we
know that ASCII and Ordinal comparisions are the same, as is the case
for both Invariant and en-US.

This change has CompareInfo hold some additional state about a locale to
decide if we can do this optimiztion and then wires it up to IndexOf,
LastIndexOf, IsPrefix and IsSuffix.

In the future, we can try to extend the set of allowable cultures that
we preform this optimization on by coming up with better checks on when
it is safe to preform this transformation.

Today, this optimization does not apply when IgnoreSymbols is set,
because we would need to blank some ASCII symbol characters. If this
ends up being a common operation, we could consider having ordinal
implementations that also ignore symbols.

This represents the best that we can do for dotnet/corefx#3672. It gets
us back to where we were before for many common real world cases.

Fixes dotnet/corefx#3672.

8 years agoProvide paramName for ArgumentNull and ArgumentOutOfRange
Bruce Bowyer-Smyth [Wed, 13 Jan 2016 20:57:50 +0000 (06:57 +1000)]
Provide paramName for ArgumentNull and ArgumentOutOfRange

8 years agoMerge pull request #2631 from adityamandaleeka/floatingPointCxtFix
Aditya Mandaleeka [Wed, 13 Jan 2016 20:02:02 +0000 (12:02 -0800)]
Merge pull request #2631 from adityamandaleeka/floatingPointCxtFix

Fix usage of floating point state from native contexts.

8 years agoMerge pull request #2599 from mikedn/baddef
Jan Kotas [Wed, 13 Jan 2016 17:43:52 +0000 (09:43 -0800)]
Merge pull request #2599 from mikedn/baddef

Fix bad JIT #ifdefs

8 years agoMerge pull request #2636 from bbowyersmyth/FixedString
Jan Kotas [Wed, 13 Jan 2016 17:36:00 +0000 (09:36 -0800)]
Merge pull request #2636 from bbowyersmyth/FixedString

Port https://github.com/dotnet/corert/pull/629 to CoreCLR

8 years agoMerge pull request #2635 from dotnet-bot/from-tfs
Jan Kotas [Wed, 13 Jan 2016 17:29:47 +0000 (09:29 -0800)]
Merge pull request #2635 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #2639 from dotnet/revert-2624-founddiff
Jan Kotas [Wed, 13 Jan 2016 17:29:36 +0000 (09:29 -0800)]
Merge pull request #2639 from dotnet/revert-2624-founddiff

Revert "Fix to github issue #2349."

8 years agoIdnMapping GetUnicode conformance tests fail
Eric Erhardt [Wed, 13 Jan 2016 17:05:11 +0000 (11:05 -0600)]
IdnMapping GetUnicode conformance tests fail

The IdnaConformanceTests fail on Unix because \u00DF, \u200C and \u200D characters are not being handled as specified in the http://www.unicode.org/Public/idna/6.0.0/IdnaTest.txt file.

The fix is to use UIDNA_NONTRANSITIONAL_TO_UNICODE and UIDNA_CHECK_CONTEXTJ options when calling uidna_openUTS46.

Partial fix for https://github.com/dotnet/corefx/issues/3406.

8 years agoRevert "Fix to github issue #2349."
Jan Kotas [Wed, 13 Jan 2016 15:26:52 +0000 (07:26 -0800)]
Revert "Fix to github issue #2349."

8 years agoUse m_firstChar instead of string object in fixed statement
Bruce Bowyer-Smyth [Wed, 13 Jan 2016 06:12:09 +0000 (16:12 +1000)]
Use m_firstChar instead of string object in fixed statement

8 years agoMerge pull request #2625 from swgillespie/volatile_gc_perf_tests
Sean Gillespie [Wed, 13 Jan 2016 05:46:06 +0000 (21:46 -0800)]
Merge pull request #2625 from swgillespie/volatile_gc_perf_tests

Remove volatile GC perf tests from the main perf run

8 years agoMerge pull request #2624 from sivarv/founddiff
Sivarv [Wed, 13 Jan 2016 05:15:47 +0000 (21:15 -0800)]
Merge pull request #2624 from sivarv/founddiff

Fix to github issue #2349.

8 years agoFix arm specific build break pertaining to AssemblyLoadContext changes.
Gaurav Khanna [Wed, 13 Jan 2016 05:10:11 +0000 (21:10 -0800)]
Fix arm specific build break pertaining to AssemblyLoadContext changes.

[tfs-changeset: 1564035]

8 years agoMerge pull request #2612 from hoyMS/Bug2610
Hongtao Yu [Wed, 13 Jan 2016 04:39:38 +0000 (20:39 -0800)]
Merge pull request #2612 from hoyMS/Bug2610

Fix for bug 2610 Incorrect copy prop substitution.

8 years agoMerge pull request #2623 from BruceForstall/BuildShChanges
Bruce Forstall [Wed, 13 Jan 2016 04:37:04 +0000 (20:37 -0800)]
Merge pull request #2623 from BruceForstall/BuildShChanges

Clean up build.sh