platform/upstream/coreclr.git
7 years agoImplement const, comparion and intrinsic for floating-point
Hyung-Kyu Choi [Thu, 22 Dec 2016 11:38:26 +0000 (20:38 +0900)]
Implement const, comparion and intrinsic for floating-point

Implement float/double const (GT_CNS_DBL) generation for ARM32 RyuJIT.
Implement binary operators for floating point for ARM32 RyuJIT
Implement of GT_INTRINSIC for ARM32 RyuJIT
Implement comparison (e.g. GT_GT and etc.) for floating-point

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoMerge pull request #8994 from dotnet-bot/master-UpdateDependencies
Stephen Toub [Thu, 19 Jan 2017 03:17:04 +0000 (22:17 -0500)]
Merge pull request #8994 from dotnet-bot/master-UpdateDependencies

Update CoreClr, CoreFx to beta-24919-01, beta-24918-13, respectively (master)

7 years agoUpdate CoreClr, CoreFx to beta-24919-01, beta-24918-13, respectively
dotnet-bot [Thu, 19 Jan 2017 01:45:52 +0000 (01:45 +0000)]
Update CoreClr, CoreFx to beta-24919-01, beta-24918-13, respectively

7 years agoFix an error in build-test.cmd (#8890)
Jonghyun Park [Thu, 19 Jan 2017 00:56:56 +0000 (09:56 +0900)]
Fix an error in build-test.cmd (#8890)

* Fix an error in CMake Probe

* Add double qutation around %__ProjectDir

* Revert "Fix an error in CMake Probe"

This reverts commit 78be1c0a2909d633023758fdebcc558bf07e3a4c.

7 years agoMerge pull request #8991 from CarolEidt/Arm64ArrOffConsume
Carol Eidt [Thu, 19 Jan 2017 00:38:12 +0000 (16:38 -0800)]
Merge pull request #8991 from CarolEidt/Arm64ArrOffConsume

Fix consumeReg order for ArrOffs on arm64

7 years ago[x86/Linux] Fix RtlRestoreContext (#8916)
Jonghyun Park [Thu, 19 Jan 2017 00:22:50 +0000 (09:22 +0900)]
[x86/Linux] Fix RtlRestoreContext (#8916)

* [x86/Linux] Fix RtlRestoreContext

* Use mov instead of push/pop

7 years agoRemove ILDASM GUI cruft (#8954)
mikedn [Wed, 18 Jan 2017 23:49:36 +0000 (01:49 +0200)]
Remove ILDASM GUI cruft (#8954)

7 years ago[x86/Linux] Do NOT use Shadow SP (#8913)
Jonghyun Park [Wed, 18 Jan 2017 23:35:46 +0000 (08:35 +0900)]
[x86/Linux] Do NOT use Shadow SP (#8913)

7 years agoMerge pull request #8977 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Wed, 18 Jan 2017 22:27:10 +0000 (14:27 -0800)]
Merge pull request #8977 from dotnet-bot/master-UpdateDependencies

Update CoreClr, CoreFx to beta-24918-03, beta-24918-07, respectively (master)

7 years agoFix consumeReg order for ArrOffs on arm64
Carol Eidt [Wed, 18 Jan 2017 20:39:29 +0000 (12:39 -0800)]
Fix consumeReg order for ArrOffs on arm64

The change in operand order for GenTreeArrOffs was not reflected in code generation for arm64. This fixes that.

7 years agoMerge pull request #8986 from JosephTremoulet/Unreachable
Joseph Tremoulet [Wed, 18 Jan 2017 18:10:11 +0000 (13:10 -0500)]
Merge pull request #8986 from JosephTremoulet/Unreachable

Refactor GT_IND value-numbering

7 years agoMerge pull request #8987 from stephentoub/remove_serialization_compat_workaround
Stephen Toub [Wed, 18 Jan 2017 18:08:39 +0000 (13:08 -0500)]
Merge pull request #8987 from stephentoub/remove_serialization_compat_workaround

Remove EnumEqualityComparer serialization compat workarounds

7 years agoUpdate CoreClr, CoreFx to beta-24918-03, beta-24918-07, respectively
dotnet-bot [Wed, 18 Jan 2017 17:36:17 +0000 (17:36 +0000)]
Update CoreClr, CoreFx to beta-24918-03, beta-24918-07, respectively

7 years agoRollback parameter name change to fix failing corefx tests (#8985)
Jan Kotas [Wed, 18 Jan 2017 16:58:03 +0000 (08:58 -0800)]
Rollback parameter name change to fix failing corefx tests (#8985)

7 years agoRemove EnumEqualityComparer serialization compat workaround
Stephen Toub [Wed, 18 Jan 2017 15:51:01 +0000 (10:51 -0500)]
Remove EnumEqualityComparer serialization compat workaround

This code exists to support serialization roundtrip between .NET 4 and .NET 4.5, which we don't need for .NET Core.

7 years agoMerge pull request #8984 from stephentoub/fix_dtfi_serialization
Stephen Toub [Wed, 18 Jan 2017 15:49:47 +0000 (10:49 -0500)]
Merge pull request #8984 from stephentoub/fix_dtfi_serialization

Fix DateTimeFormatInfo serialization on Unix

7 years agoMerge pull request #8970 from stephentoub/cwt_enum
Stephen Toub [Wed, 18 Jan 2017 15:23:42 +0000 (10:23 -0500)]
Merge pull request #8970 from stephentoub/cwt_enum

Add ConditionalWeakTable.Clear and IEnumerable implementation

7 years agoRefactor GT_IND value-numbering
Joseph Tremoulet [Wed, 18 Jan 2017 14:59:53 +0000 (06:59 -0800)]
Refactor GT_IND value-numbering

Method `fgValueNumberTree` had two pieces of code each attempting to
assume responsibility for `GT_IND` and some block ops.  The one later in
the function wasn't reachable because those ops would always take the
first path.  This change moves the special logic for `GTF_IND_ARR_LEN`,
which was only present in the unreachable code, up to the reachable code,
and removes the unreachable code.

7 years agoAddress PR feedback
Stephen Toub [Wed, 18 Jan 2017 13:31:56 +0000 (08:31 -0500)]
Address PR feedback

7 years agoFix DateTimeFormatInfo serialization on Unix
Stephen Toub [Wed, 18 Jan 2017 13:22:54 +0000 (08:22 -0500)]
Fix DateTimeFormatInfo serialization on Unix

The Unix copy of the src is missing some [NonSerialized] attribution on a few of its fields, one of which is for a field of type TokenHashValue, which isn't [Serializable].  This is causing DateTimeFormatInfo to itself fail to serialize.

7 years ago[x86/Linux] Port RtlVirtualUnwind (#8911)
Jonghyun Park [Wed, 18 Jan 2017 09:45:09 +0000 (18:45 +0900)]
[x86/Linux] Port RtlVirtualUnwind (#8911)

* [x86/Linux] (Partially) port RtlVirtualUnwind

* Rewrite x86 Unwinder using UnwindStackFrame

* Extract UnwindStackFrame from EECodeManager

* Port 'InlinedCallFrame::UpdateRegDisplay'

7 years agoMerge pull request #8851 from parjong/fix/JIT32_GCENCODER_build_error
Bruce Forstall [Wed, 18 Jan 2017 01:36:58 +0000 (17:36 -0800)]
Merge pull request #8851 from parjong/fix/JIT32_GCENCODER_build_error

Fix JIT32_GCENCODER-related build errors

7 years agoMerge pull request #8886 from YongseopKim/impl_gt_div
Bruce Forstall [Wed, 18 Jan 2017 01:26:46 +0000 (17:26 -0800)]
Merge pull request #8886 from YongseopKim/impl_gt_div

[RyuJIT/ARM32]Impl GT_DIV in genCodeForTreeNode

7 years agoRemove obsolete platforms ifdefs from PAL (#8971)
Jan Vorlicek [Wed, 18 Jan 2017 00:49:55 +0000 (01:49 +0100)]
Remove obsolete platforms ifdefs from PAL (#8971)

There were many ifdefs for obsolete platforms and processors like AIX, HPUX,
SPARC, ALPHA etc. This change is a cleanup that removes them.

7 years agoMerge pull request #8952 from AndyAyersMS/FixEndLFinAssert
Andy Ayers [Wed, 18 Jan 2017 00:49:15 +0000 (16:49 -0800)]
Merge pull request #8952 from AndyAyersMS/FixEndLFinAssert

JIT: fix bad assumption in non-funclet EH models

7 years agoAdd generic instantion argument passing description on x86 (#8940)
Jan Vorlicek [Wed, 18 Jan 2017 00:48:48 +0000 (01:48 +0100)]
Add generic instantion argument passing description on x86 (#8940)

This change adds missing information on generic instantion argument
passing description on x86 to the CLR ABI document.

7 years agoMerge pull request #8972 from pgavlin/ExactSizeSIMD
Pat Gavlin [Tue, 17 Jan 2017 23:37:33 +0000 (23:37 +0000)]
Merge pull request #8972 from pgavlin/ExactSizeSIMD

GS checkes: only set lVExactSize for SIMD vars.

7 years agoMerge pull request #8942 from stephentoub/fix_tpl_event
Stephen Toub [Tue, 17 Jan 2017 23:16:04 +0000 (18:16 -0500)]
Merge pull request #8942 from stephentoub/fix_tpl_event

Fix TplEventSource diagnostic error due to mismatched signature

7 years agoGS checkes: only set lVExactSize for SIMD vars.
Pat Gavlin [Tue, 17 Jan 2017 21:58:06 +0000 (13:58 -0800)]
GS checkes: only set lVExactSize for SIMD vars.

Copying this field for non-SIMD variables causes a later call to
`lvaSetStruct` to skip critical initialization steps. Skipping these
steps led to failures in GC stress due to uninitialized frame variables
that contained GC pointers.

7 years agoMerge pull request #8936 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Tue, 17 Jan 2017 20:28:29 +0000 (12:28 -0800)]
Merge pull request #8936 from dotnet-bot/master-UpdateDependencies

Update CoreClr, CoreFx to beta-24917-03, beta-24917-02, respectively (master)

7 years agoMerge pull request #8678 from hqueue/arm/ryujit/lowerrotate
Carol Eidt [Tue, 17 Jan 2017 19:50:54 +0000 (11:50 -0800)]
Merge pull request #8678 from hqueue/arm/ryujit/lowerrotate

Ryujit/ARM32: Implement Lowering::LowerRotate

7 years agoAdd ConditionalWeakTable.Clear and IEnumerable implementation
Stephen Toub [Tue, 17 Jan 2017 19:03:54 +0000 (14:03 -0500)]
Add ConditionalWeakTable.Clear and IEnumerable implementation

7 years agoMerge pull request #8925 from pgavlin/HeapVerifyIncompatibleTests
Pat Gavlin [Tue, 17 Jan 2017 17:36:11 +0000 (09:36 -0800)]
Merge pull request #8925 from pgavlin/HeapVerifyIncompatibleTests

Mark a small number of tests heap-verify-incompatible.

7 years agoUpdate CoreClr, CoreFx to beta-24917-03, beta-24917-02, respectively
dotnet-bot [Tue, 17 Jan 2017 17:30:07 +0000 (17:30 +0000)]
Update CoreClr, CoreFx to beta-24917-03, beta-24917-02, respectively

7 years agoMerge pull request #8908 from CarolEidt/Contained
Carol Eidt [Tue, 17 Jan 2017 16:59:59 +0000 (08:59 -0800)]
Merge pull request #8908 from CarolEidt/Contained

Don't treat spill temps as contained

7 years agoUse nameof in place of hardcoded variable names (#8968)
Toni Solarin-Sodara [Tue, 17 Jan 2017 16:39:38 +0000 (17:39 +0100)]
Use nameof in place of hardcoded variable names (#8968)

Fixes #8967

7 years agoFix armel toolchain setting (#8961)
chunseoklee [Tue, 17 Jan 2017 14:48:00 +0000 (23:48 +0900)]
Fix armel toolchain setting (#8961)

This PR fixes build fail for armel(debian)

Signed-off-by: chunseoklee <chunseok.lee@samsung.com>
7 years agoUpdate description related to ARM rootfs (#8962)
Hyung-Kyu Choi [Tue, 17 Jan 2017 14:45:38 +0000 (23:45 +0900)]
Update description related to ARM rootfs (#8962)

Update description in script and documentation related to ARM rootfs.

1. Change arm-softfp to armel to apply recent changes.

2. Change UbuntuCodeName to LinuxCodeName
For arm and armel, rootfs are available from three different Linux distro.
    For arm, Ubuntu is available.
    For armel, Debian and Tizen are available.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years ago[ARM32/Linx] cross-architecture build: restrict build project list (#8918)
Hyeongseok Oh [Tue, 17 Jan 2017 12:41:58 +0000 (21:41 +0900)]
[ARM32/Linx] cross-architecture build: restrict build project list (#8918)

* [ARM32/Linx] cross-architecture build: restrict build project list

Restrict build project for ARM32/Linux cross-architecture
We can build these projects with PR #8866 and #8917. (release build)
- crossgen
- clrjit
- protojit

* modify crosscomponents.cmake

Add list items when not Linux, instead remove in Linux

7 years ago[x86/Linux] Port ''ExceptionTracker::UpdateNonvolatileRegisters' (#8915)
Jonghyun Park [Mon, 16 Jan 2017 11:59:00 +0000 (20:59 +0900)]
[x86/Linux] Port ''ExceptionTracker::UpdateNonvolatileRegisters' (#8915)

7 years agoRemove unused mscoree files and code (#8956)
mikedn [Mon, 16 Jan 2017 04:49:52 +0000 (06:49 +0200)]
Remove unused mscoree files and code (#8956)

7 years agoRemove mscorpe cruft (#8957)
mikedn [Mon, 16 Jan 2017 04:49:18 +0000 (06:49 +0200)]
Remove mscorpe cruft (#8957)

7 years agoMerge pull request #8953 from kouvel/InterruptInFinally
Jan Kotas [Sat, 14 Jan 2017 08:33:15 +0000 (00:33 -0800)]
Merge pull request #8953 from kouvel/InterruptInFinally

Enable thread interrupt in finally blocks, remove some invalid asserts

7 years agoRemove invalid asserts in threads.cpp, DoAppropriateWaitWorker(int, ...)
Koundinya Veluri [Sat, 14 Jan 2017 05:18:34 +0000 (21:18 -0800)]
Remove invalid asserts in threads.cpp, DoAppropriateWaitWorker(int, ...)

These cases are actually possible because Windows APIs are inconsistent in their behavior when invalid handles are concerned. Depending on the invalid handle's value, a multi-wait can error with ERROR_INVALID_HANDLE, and a single-wait on an invalid handle could return WAIT_TIMEOUT.

7 years agoJIT: fix bad assumption in non-funclet EH models
Andy Ayers [Sat, 14 Jan 2017 03:28:30 +0000 (19:28 -0800)]
JIT: fix bad assumption in non-funclet EH models

The newly added finally optimizations mistakenly assumed that in
non-fuclet EH models the GT_END_LFIN in the continuation block would
be the last statement. The test case added below provides an example
where this is not so.

Relax the assumption and instead search the continuation for the
GT_END_LFIN. Assert that there is exactly one.

7 years agoEnable Standalone GC builds in the CI on OSX and Linux (#8950)
Sean Gillespie [Sat, 14 Jan 2017 03:06:05 +0000 (19:06 -0800)]
Enable Standalone GC builds in the CI on OSX and Linux (#8950)

7 years agoEnable thread interrupt in finally blocks
Koundinya Veluri [Sat, 14 Jan 2017 00:34:36 +0000 (16:34 -0800)]
Enable thread interrupt in finally blocks

Thread abort was not allowed in finally blocks, but the same logic was being applied to thread interrupt as well. There is nothing special about thread interrupt that requires it to not work in finally blocks.

7 years agoCheck if xsave is enabled by OS before calling xgetbv in XmmYmmStateSupport (#8939)
Cesar Blum Silveira [Sat, 14 Jan 2017 00:09:46 +0000 (16:09 -0800)]
Check if xsave is enabled by OS before calling xgetbv in XmmYmmStateSupport (#8939)

* Check if xsave is enabled by OS before calling xgetbv in XmmYmmStateSupport. Fix #8903

* Add ebx to clobbered registers.

7 years agoDon't treat spill temps as contained
Carol Eidt [Fri, 9 Dec 2016 19:22:41 +0000 (11:22 -0800)]
Don't treat spill temps as contained

Make Contained refer only to whether code is only generated for a node as part of its parent.
Spill temps that are used from memory are not contained, as code is generated for them.
Add methods to indicate whether an operand is used from register, memory (including spill),
or spill specifically, for use by codegen in distinguishing these cases.

7 years agoMerge pull request #8938 from ellismg/fix-corefx-hash-and-artifacts-for-ci
Matt Ellis [Fri, 13 Jan 2017 22:15:21 +0000 (14:15 -0800)]
Merge pull request #8938 from ellismg/fix-corefx-hash-and-artifacts-for-ci

Use a fixed version of CoreFX for testing

7 years agoFixes to make runtime work on ARM64 Linux (#8947)
Jan Vorlicek [Fri, 13 Jan 2017 22:11:54 +0000 (23:11 +0100)]
Fixes to make runtime work on ARM64 Linux (#8947)

This is a result of attempt to bring up CoreCLR on ARM64 Android.
The bring up is on hold now, but I want to check in the changes
that added ARM64 asm helpers and fixed general Linux ARM64 issues.

7 years agoMerge pull request #8934 from wtgodbe/localpkg
William Godbe [Fri, 13 Jan 2017 22:06:17 +0000 (14:06 -0800)]
Merge pull request #8934 from wtgodbe/localpkg

Stop build from leaving localpkg cache in src

7 years agoStop build from leaving localpkg cache in src
wtgodbe [Fri, 13 Jan 2017 00:35:45 +0000 (16:35 -0800)]
Stop build from leaving localpkg cache in src

7 years agoUse a fixed version of CoreFX for testing
Matt Ellis [Fri, 13 Jan 2017 01:37:15 +0000 (17:37 -0800)]
Use a fixed version of CoreFX for testing

CoreFX is going to be merging changes soon that will break how we
consume them to do our testing. To give us time to react, we'll fix
the version of the repository we build to a commit before the
changes. We'll also download artifacts from a saved build (produced
before the change took place) so the layout is as we expect.

The issue tracking cleaning this up is #8937

7 years agoMerge pull request #8935 from AndyAyersMS/FixSmAssert
Andy Ayers [Fri, 13 Jan 2017 18:21:44 +0000 (10:21 -0800)]
Merge pull request #8935 from AndyAyersMS/FixSmAssert

JIT: remove match accounting from inliner state machine

7 years agoFix Mutex.ReleaseMutex exception type for compatibility (#8941)
Koundinya Veluri [Fri, 13 Jan 2017 16:45:57 +0000 (08:45 -0800)]
Fix Mutex.ReleaseMutex exception type for compatibility (#8941)

7 years agoFix TplEventSource diagnostic error due to mismatched signature
Stephen Toub [Fri, 13 Jan 2017 16:07:22 +0000 (11:07 -0500)]
Fix TplEventSource diagnostic error due to mismatched signature

The TplEventSource TaskWaitBegin event is defined to take an int appDomain parameter, but it's not tracing that out, resulting in EventSource generating diagnostic events about 6 parameters being expected but only getting 5 arguments.

I've fixed it by removing the appDomain parameter, since it's not relevant to coreclr.

7 years agoRemove #if false blocks (#8933)
Dan Moseley [Fri, 13 Jan 2017 04:39:03 +0000 (20:39 -0800)]
Remove #if false blocks (#8933)

7 years agoJIT: remove match accounting from inliner state machine
Andy Ayers [Fri, 13 Jan 2017 00:59:00 +0000 (16:59 -0800)]
JIT: remove match accounting from inliner state machine

The inliner's code-size estimating state machine keeps count of
matches, but the count was only used in an assert that checked
that the count did not overflow.

The assert fired when jit stress drove the inliner to evaluate a
huge method as a potential inline candidate and the count reached
the overflow value.

This change removes the counting and the related assert.

Closes #8932.

7 years agoMerge pull request #8931 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Fri, 13 Jan 2017 00:19:17 +0000 (16:19 -0800)]
Merge pull request #8931 from dotnet-bot/master-UpdateDependencies

Update CoreClr to beta-24912-04 (master)

7 years agoMerge pull request #8928 from CarolEidt/Fix8898
Carol Eidt [Thu, 12 Jan 2017 23:36:04 +0000 (15:36 -0800)]
Merge pull request #8928 from CarolEidt/Fix8898

Fix putArgStk dstCount and ConsumeReg errors

7 years agoMerge pull request #8806 from sandreenko/array-bounds-check
sandreenko [Thu, 12 Jan 2017 22:03:34 +0000 (14:03 -0800)]
Merge pull request #8806 from sandreenko/array-bounds-check

Сhange children order in GenTreeBoundsChk. Fix #8077

7 years agoPrefer using Array.Length as upper for loop limit (#8923)
mikedn [Thu, 12 Jan 2017 20:59:10 +0000 (22:59 +0200)]
Prefer using Array.Length as upper for loop limit (#8923)

The JIT can't eliminate range checks if it can't "see" Length and uses loop cloning which generates a lot of code. Even in cases where not all range checks can be eliminated and loop cloning is used anyway it's still preferable to have fewer range checks.

For example, SortExceptions is ~140 bytes shorter after this change, despite the fact that loop cloning is still being used.

7 years agoUpdate CoreClr to beta-24912-04
dotnet-bot [Thu, 12 Jan 2017 20:57:32 +0000 (20:57 +0000)]
Update CoreClr to beta-24912-04

7 years agoFix putArgStk dstCount and ConsumeReg errors
Carol Eidt [Thu, 12 Jan 2017 20:15:16 +0000 (12:15 -0800)]
Fix putArgStk dstCount and ConsumeReg errors

The LastConsumedNode used in genCheckConsumeNode was not initialized for arm64.
Fixing this exposed several places where nodes were being consumed twice or in the wrong order.
In addition, since GT_PUTARG_STK doesn't define a register, its dstCount needs to be zero. This is enabled by checking IsValue() instead of type of TYP_VOID for the default case of TreeNodeInfoInit. This was missed for both arm and arm64.

7 years agoMark a small number of tests heap-verify-incompatible.
Pat Gavlin [Thu, 12 Jan 2017 18:41:54 +0000 (10:41 -0800)]
Mark a small number of tests heap-verify-incompatible.

These tests simply take too long to execute when run with heap
verification.

7 years agoMerge pull request #8909 from gkhanna79/Docker1404
Gaurav Khanna [Thu, 12 Jan 2017 18:11:44 +0000 (10:11 -0800)]
Merge pull request #8909 from gkhanna79/Docker1404

Add optional argument to skip unmount for rootfs

7 years agoMerge pull request #8840 from CarolEidt/Fix8824
Carol Eidt [Thu, 12 Jan 2017 16:54:49 +0000 (08:54 -0800)]
Merge pull request #8840 from CarolEidt/Fix8824

Fix initialization of resolution sets

7 years ago[x86/Linux] Port 'ExceptionTracker::ProcessOSExceptionNotification' (#8912)
Jonghyun Park [Thu, 12 Jan 2017 15:43:54 +0000 (00:43 +0900)]
[x86/Linux] Port 'ExceptionTracker::ProcessOSExceptionNotification' (#8912)

7 years agoMerge pull request #8588 from litian2025/AVX_SSE
Sivarv [Thu, 12 Jan 2017 07:11:05 +0000 (23:11 -0800)]
Merge pull request #8588 from litian2025/AVX_SSE

Remove AVX/SSE transition penalties

7 years agofix format
Li Tian [Thu, 12 Jan 2017 05:08:11 +0000 (21:08 -0800)]
fix format

7 years agoUpdate CoreClr, CoreFx to beta-24911-02, beta-24911-08, respectively (#8855)
dotnet bot [Thu, 12 Jan 2017 04:55:50 +0000 (20:55 -0800)]
Update CoreClr, CoreFx to beta-24911-02, beta-24911-08, respectively (#8855)

7 years agoAdd more comments to document remove AVX/SSE transition penalty logic
Li Tian [Thu, 12 Jan 2017 04:47:48 +0000 (20:47 -0800)]
Add more comments to document remove AVX/SSE transition penalty logic

7 years agoMerge pull request #8905 from JosephTremoulet/OneMoreHeapUse
Joseph Tremoulet [Thu, 12 Jan 2017 02:24:40 +0000 (21:24 -0500)]
Merge pull request #8905 from JosephTremoulet/OneMoreHeapUse

Remove bogus fgCurHeapDef guard

7 years agoMerge pull request #8879 from russellhadley/span-intrinsics
Russell C Hadley [Thu, 12 Jan 2017 01:19:58 +0000 (17:19 -0800)]
Merge pull request #8879 from russellhadley/span-intrinsics

Initial implementation of two field span.

7 years agoFix initialization of resolution sets
Carol Eidt [Sat, 7 Jan 2017 02:21:31 +0000 (18:21 -0800)]
Fix initialization of resolution sets

This was causing a failure during dumping.
Fixing it exposed another dumping failure in crossgen of System.Private.Corelib.dll on x86, due to a dead node. I've fixed the assert, but I believe the dead node should have been eliminated. I filed issue #8839 for this.

7 years agoFix issue #8139 amd64 decoder bug. (#8901)
Mike McLaughlin [Thu, 12 Jan 2017 00:40:49 +0000 (16:40 -0800)]
Fix issue #8139 amd64 decoder bug. (#8901)

Ignore modrm == 0 which ignores "inc dword ptr []" instructions.

Also fixed minor EEHeap formatting bug on Linux.

7 years agoMerge pull request #8907 from DrewScoggins/PullRequestFix
Drew Scoggins [Thu, 12 Jan 2017 00:36:41 +0000 (16:36 -0800)]
Merge pull request #8907 from DrewScoggins/PullRequestFix

Fix pull request title automation

7 years agoAdd clang 3.7 support and remove __FakePrologName to fix build (#8904)
Maarten Mensink [Thu, 12 Jan 2017 00:28:18 +0000 (01:28 +0100)]
Add clang 3.7 support and remove __FakePrologName to fix build (#8904)

* add clang 3.7 support

* Removing

__FakePrologName="DelayLoad_Helper\suffix\()_FakeProlog"

based on https://github.com/dotnet/coreclr/issues/4332#issuecomment-271990909

7 years agoFix pull request title automation
Drew Scoggins [Thu, 12 Jan 2017 00:24:43 +0000 (16:24 -0800)]
Fix pull request title automation

When I added the ability to give a custom name to a run that was kicked
off using the PR leg I did it by adding an additional parameter.  When
using a variable name there I need to use the dollar sign syntax of
groovy and not an environment variable.

7 years agoAdd optional argument to skip unmount for rootfs
Gaurav Khanna [Thu, 12 Jan 2017 00:03:51 +0000 (16:03 -0800)]
Add optional argument to skip unmount for rootfs

7 years agoMerge pull request #8897 from pgavlin/GH8860.1
Pat Gavlin [Wed, 11 Jan 2017 23:44:28 +0000 (15:44 -0800)]
Merge pull request #8897 from pgavlin/GH8860.1

Fix #8860.

7 years agoFormat code.
Pat Gavlin [Wed, 11 Jan 2017 23:15:31 +0000 (15:15 -0800)]
Format code.

7 years agoMerge pull request #8899 from pgavlin/FixTotalMemoryTest
Pat Gavlin [Wed, 11 Jan 2017 23:07:44 +0000 (15:07 -0800)]
Merge pull request #8899 from pgavlin/FixTotalMemoryTest

Fix the GC total memory test.

7 years agoMerge pull request #8900 from adiaaida/fix8550
Michelle McDaniel [Wed, 11 Jan 2017 23:06:30 +0000 (15:06 -0800)]
Merge pull request #8900 from adiaaida/fix8550

Copy lvExactSize to shadowVar

7 years agouse assert insteaf of if statement
Li Tian [Wed, 11 Jan 2017 22:48:20 +0000 (14:48 -0800)]
use assert insteaf of if statement

7 years agoRewrite CalleeSavedRegisters for x86 (#8871)
Jonghyun Park [Wed, 11 Jan 2017 22:22:00 +0000 (07:22 +0900)]
Rewrite CalleeSavedRegisters for x86 (#8871)

This commit revises CalleeSavedRegisters for x86 using
ENUM_CALLEE_SAVED_REGISTERS as in x64.

7 years agoInitial implementation of two field span.
Jan Kotas [Wed, 7 Dec 2016 05:30:54 +0000 (21:30 -0800)]
Initial implementation of two field span.

Implements two field span struct which is comprised of a byref field
that may be an interior pointer to a managed object, or a native
pointer indicating the start of the span, and a length field which
describes the span of access.

Since there is no MSIL operation which assign a byref field, the jit
gets involved and treats the constructor and getter of a special struct
called ByReference that contains an declared IntPtr.  This special
struct is then used as a field in the span implementation and recognized
by the runtime as a field that may contain a GC pointer.  In
implementation, the ctor of ByReference is converted into an assignment
value is returned by a reverse assignment.

Since there are some dependencies on CoreFX for the span implementation
local testing of the implementation has been done using the
BasicSpanTest.cs in the CoreCLR tests.  Once this is checked in and is
propagated to CoreFX the apporopate code in the packages will be enabled
and then may be referenced in CoreCLR tests.  At that time more span
tests will be added.

Additional comments and fixes based on code review added.

7 years agoMerge pull request #8570 from sbomer/dasm_automation
Sven Boemer [Wed, 11 Jan 2017 21:32:56 +0000 (13:32 -0800)]
Merge pull request #8570 from sbomer/dasm_automation

Fix some problems with the ubuntu dasm output

7 years agoMerge pull request #8551 from AndyAyersMS/FinallyCloning
Andy Ayers [Wed, 11 Jan 2017 21:20:57 +0000 (13:20 -0800)]
Merge pull request #8551 from AndyAyersMS/FinallyCloning

Finally cloning

7 years agoRemove bogus fgCurHeapDef guard
Joseph Tremoulet [Wed, 11 Jan 2017 20:59:29 +0000 (15:59 -0500)]
Remove bogus fgCurHeapDef guard

We should set fgCurHeapUse when visiting a heap use regardless of whether
fgCurHeapDef is set, because we haven't proven that the def writes all
memory that the use might read.  This should have been included in #8757
but somehow slipped through.

7 years agoCopy lvExactSize to shadowVar
Michelle McDaniel [Wed, 11 Jan 2017 20:48:55 +0000 (12:48 -0800)]
Copy lvExactSize to shadowVar

For TYP_SIMD12 vars, we need to copy the lvExactSize to the shadowVar
so that we have the right size in lower.

Fixes #8550.

7 years agoFix the GC total memory test.
Pat Gavlin [Wed, 11 Jan 2017 20:34:21 +0000 (12:34 -0800)]
Fix the GC total memory test.

This test was relying upon the result of GC.GetTotalMemory() returning a
greater number after allocating a large array. However, the array was
not kept live past the call to GC.GetTotalMemory, which resulted in this
test failing under GCStress=0xC (in which a GC is performed after each
instruction). This change adds the requisite call to GC.KeepAlive to
keep the allocated array live enough to be observed by
GC.GetTotalMemory.

7 years agoFix #8860.
Pat Gavlin [Wed, 11 Jan 2017 19:42:30 +0000 (11:42 -0800)]
Fix #8860.

These failure was an assertion under GC stress due to registers that
were reported as live while containing an invalid GC reference. The root
cause of this assertion was the use of SIMD instructions that did not
kill any GC ref contained in their destination register. This change fixes
the bug by properly killing any GC ref in the destination register for
such an instruction, which required two changes:
- Instructions with the format `IF_RRW_RRW_CNS` were never killing the
  destination register. The code that handles this format has been
  updated to do so when necessary.
- `pextrw` and `pmovmskb` were not handled correctly in
  `emitInsCanOnlyWriteSSE2OrAVXReg`. These instructions may write to
  GPRs, so that function must return false when they are passed as
  input.

7 years agoMerge pull request #8880 from JosephTremoulet/SimplifyHeapPhiArg
Joseph Tremoulet [Wed, 11 Jan 2017 19:47:11 +0000 (14:47 -0500)]
Merge pull request #8880 from JosephTremoulet/SimplifyHeapPhiArg

Simplify HeapPhiArg

7 years agoAdd parameterless overloads of TrimStart/TrimEnd (#8834)
Thiago Camargos Lopes [Wed, 11 Jan 2017 19:12:22 +0000 (17:12 -0200)]
Add parameterless overloads of TrimStart/TrimEnd (#8834)

Add parameterless overloads of TrimStart/TrimEnd

7 years agoMerge pull request #8892 from stephentoub/enumeq_ser
Stephen Toub [Wed, 11 Jan 2017 17:35:06 +0000 (12:35 -0500)]
Merge pull request #8892 from stephentoub/enumeq_ser

Fix deserialization of EnumEqualityComparer

7 years ago[ARM32/Linux] Fix cross-architecture build error: T_CONTEXT (#8888)
Hyeongseok Oh [Wed, 11 Jan 2017 14:37:21 +0000 (23:37 +0900)]
[ARM32/Linux] Fix cross-architecture build error: T_CONTEXT (#8888)

confusion of T_CONTEXT and CONTEXT in projects
- cee_dac
- gc_wks

related issue: #8885

7 years agoFix deserialization of EnumEqualityComparer
Stephen Toub [Wed, 11 Jan 2017 13:58:53 +0000 (08:58 -0500)]
Fix deserialization of EnumEqualityComparer

Its deserialization ctor is getting removed by the rewriter, causing deserialization of its instances to fail.

7 years agoMerge pull request #8868 from stephentoub/linkedcts_array
Stephen Toub [Wed, 11 Jan 2017 13:52:58 +0000 (08:52 -0500)]
Merge pull request #8868 from stephentoub/linkedcts_array

Remove array allocation from CTS.CreateLinkedTokenSource