platform/upstream/coreclr.git
7 years agoSpmi second cleaning (#12402)
Sergey Andreenko [Wed, 21 Jun 2017 23:20:37 +0000 (16:20 -0700)]
Spmi second cleaning (#12402)

* don't init zero-init struct with nulls.

* Clean spmi code for GetTokenTypeAsHandle and GetCastingHelper

* Clean spmi GetVarArgsHandle and CanGetVarArgsHandle

* Clean GetCookieForPInvokeCalliSig and CanGetCookieForPInvokeCalliSig

* clean spmi GetNewHelper

* clean spmi GetArgType

* clean spmi GetArgClassValue

7 years agoMerge pull request #12404 from adiaaida/changeLinuxTPAssemblies
Michelle McDaniel [Wed, 21 Jun 2017 21:34:27 +0000 (14:34 -0700)]
Merge pull request #12404 from adiaaida/changeLinuxTPAssemblies

Align Linux TP benchmarks with Windows TP benchmarks

7 years agoNeed to pass handle to SeekCore (#12399)
Jeremy Kuhne [Wed, 21 Jun 2017 18:51:36 +0000 (11:51 -0700)]
Need to pass handle to SeekCore (#12399)

We're not setting the member field until the end of construction.

7 years agoFix event, semaphore, mutex create/open to request the maximum allowe… (#12381)
Koundinya Veluri [Wed, 21 Jun 2017 18:07:01 +0000 (11:07 -0700)]
Fix event, semaphore, mutex create/open to request the maximum allowe… (#12381)

Fix event, semaphore, mutex create/open to request the maximum allowed access

Functional fix for #11306
- Ported dotnet/corert@78fae17f5434839a8720603973ff53f27e27f916 to CoreCLR, see that commit for details on the hang during mutex creation that is also fixed by this change.
- Replaced all uses of the *_ALL_ACCESS flags relevant to events, semaphores, and mutexes

7 years agoMerge pull request #12395 from erozenfeld/fgMorphRecognizeBoxNullable
Eugene Rozenfeld [Wed, 21 Jun 2017 17:52:47 +0000 (10:52 -0700)]
Merge pull request #12395 from erozenfeld/fgMorphRecognizeBoxNullable

Fix for a bug in fgMorphRecognizeBoxNullable.

7 years agoProvision CodeBase and NotificationAlias variables -CoreCLR (#12403)
Ravi Eda [Wed, 21 Jun 2017 17:18:46 +0000 (12:18 -0500)]
Provision CodeBase and NotificationAlias variables -CoreCLR (#12403)

* Security build JSONs.

* Provision CodeBase and NotificationAlias variables.

7 years agoAlign Linux TP benchmarks with Windows TP benchmarks
Michelle McDaniel [Wed, 21 Jun 2017 16:55:43 +0000 (09:55 -0700)]
Align Linux TP benchmarks with Windows TP benchmarks

On Windows, we download a set of assemblies that we have uploaded to
MyGet. On Linux, we were building corefx each run to get the benchmarks.
This change updates Linux to pull down the same benchmarks Windows uses,
using curl to grab the nuget package from MyGet.

Note: after this commit, we will have data for fewer assemblies on
Linux, but we will now have the same set for both Windows and Linux.
Some data in Benchview may be affected.

7 years agoMerge pull request #12379 from dotnet-maestro-bot/master-UpdateDependencies
Wes Haggard [Wed, 21 Jun 2017 16:19:46 +0000 (09:19 -0700)]
Merge pull request #12379 from dotnet-maestro-bot/master-UpdateDependencies

Update CoreClr, CoreFx to preview1-25421-01, preview1-25421-02, respectively (master)

7 years agoMerge pull request #12164 from hqueue/arm/ryujit/lsra_12078_live_in
Carol Eidt [Wed, 21 Jun 2017 14:46:23 +0000 (07:46 -0700)]
Merge pull request #12164 from hqueue/arm/ryujit/lsra_12078_live_in

[RyuJIT/ARM32] Unassign double register properly at BB entry

7 years agoMerge pull request #12358 from jyoungyun/ryujit/assersion_failed_info_numslots_is_1
Carol Eidt [Wed, 21 Jun 2017 14:43:37 +0000 (07:43 -0700)]
Merge pull request #12358 from jyoungyun/ryujit/assersion_failed_info_numslots_is_1

[RyuJIT/ARM32] Assign 2 numslots to gtLsraInfo.srcCount in TYP_DOUBLE

7 years agoUpdate CoreClr, CoreFx to preview1-25421-01, preview1-25421-02, respectively
dotnet-maestro-bot [Wed, 21 Jun 2017 13:38:07 +0000 (13:38 +0000)]
Update CoreClr, CoreFx to preview1-25421-01, preview1-25421-02, respectively

7 years agoPlease include this line to enable build (#12382)
Richard L. Jackson [Wed, 21 Jun 2017 09:33:20 +0000 (11:33 +0200)]
Please include this line to enable build (#12382)

find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-4.0/include")

7 years agoSpmi source code cleaning (#12378)
Sergey Andreenko [Wed, 21 Jun 2017 07:27:08 +0000 (00:27 -0700)]
Spmi source code cleaning (#12378)

* fix pointer names in CORINFO_RESOLVED_TOKENin

* Remove exceptionCode from Agnostic_CORINFO_RESOLVED_TOKENout

The target if to do Agnostic_CORINFO_RESOLVED_TOKEN =
Agnostic_CORINFO_RESOLVED_TOKENin + Agnostic_CORINFO_RESOLVED_TOKENout

* Agnostic_CORINFO_RESOLVED_TOKEN = Agnostic_CORINFO_RESOLVED_TOKENin + Agnostic_CORINFO_RESOLVED_TOKENout

* spmi cleaning for ResolvedToken.

It is only the first part of changes. I am trying to delete as many code
as I can, because for now it is bad pain to make changes in this files.

7 years agoFix for a bug in fgMorphRecognizeBoxNullable.
Eugene Rozenfeld [Tue, 20 Jun 2017 23:46:02 +0000 (16:46 -0700)]
Fix for a bug in fgMorphRecognizeBoxNullable.

fgMorphRecognizeBoxNullable doesn't work correctly when called during re-morphing. In particular it can't handle late args in the call to CORINFO_HELP_BOX_NULLABLE. The test case results in several asserts (the first one in lsra) followed by an infinite loop in the jit.

The reason the optimization is not performed during global morph is that only patterns with GT_EQ and GT_NE are handled. Some versions of csc generate

...
ldnull
cgt.un
ret

for

this C# line

null != this.value

so we get GT_GT instead.

The fix has two parts:

1. Don't attempt to perform the optimization when called during re-morph and the struct parameter is a late arg.
2. Call fgMorphRecognizeBoxNullable for GT_GT nodes with GTF_UNSIGNED set. This allows the optimization to fire during global morph.

7 years agoEnable and use updateAssginedInterval() for all targets
Hyung-Kyu Choi [Wed, 21 Jun 2017 03:06:19 +0000 (12:06 +0900)]
Enable and use updateAssginedInterval() for all targets

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoUpdate trusted RHEL build Dockertag to support LTO (#12396)
Daniel Podder [Wed, 21 Jun 2017 02:39:49 +0000 (19:39 -0700)]
Update trusted RHEL build Dockertag to support LTO (#12396)

The new RHEL image was generated using the same Dockerfile as the
previous, but has LLVM recompiled with gold support enabled, which is
required to do a build with -flto (a prerequisite for PGO).

7 years agoIntroduce LinearScan::isAssignedToInterval()
Hyung-Kyu Choi [Wed, 21 Jun 2017 02:21:45 +0000 (11:21 +0900)]
Introduce LinearScan::isAssignedToInterval()

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoFix typo and formatting issues
Jiyoung Yun [Wed, 21 Jun 2017 02:09:14 +0000 (11:09 +0900)]
Fix typo and formatting issues

7 years ago[RyuJIT/ARM32] Avoid assersion for double arguments
Jiyoung Yun [Tue, 20 Jun 2017 09:43:44 +0000 (18:43 +0900)]
[RyuJIT/ARM32] Avoid assersion for double arguments

Double arguments in ARM32 uses 2 slots and it isn't a multi-reg struct.
In this case, it should avoid an assersion that checks if the slot is 1.

7 years ago[RyuJIT/ARM32] Assign 1 srcCount in TYP_DOUBLE
Jiyoung Yun [Mon, 19 Jun 2017 07:32:17 +0000 (16:32 +0900)]
[RyuJIT/ARM32] Assign 1 srcCount in TYP_DOUBLE

Even though TYP_DOUBLE uses 2 numSlots, we consume 1 srcCount in TYP_DOUBLE

7 years agoAssign 2 numslots to gtLsraInfo.srcCount in TYP_DOUBLE
Jiyoung Yun [Fri, 16 Jun 2017 02:52:35 +0000 (11:52 +0900)]
Assign 2 numslots to gtLsraInfo.srcCount in TYP_DOUBLE

7 years ago[RyuJIT/ARM32] Use helper to update RegRecord
Hyung-Kyu Choi [Tue, 20 Jun 2017 11:03:32 +0000 (20:03 +0900)]
[RyuJIT/ARM32] Use helper to update RegRecord

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years ago[RyuJIT/ARM32] Clear assigned interval of double register
Hyung-Kyu Choi [Thu, 8 Jun 2017 10:21:35 +0000 (19:21 +0900)]
[RyuJIT/ARM32] Clear assigned interval of double register

Clear assigned interval of double register properly

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years ago[RyuJIT/ARM32] Unassign double register properly at BB entry
Hyung-Kyu Choi [Thu, 8 Jun 2017 09:33:12 +0000 (18:33 +0900)]
[RyuJIT/ARM32] Unassign double register properly at BB entry

When updating var locations at basic block entry, we should
unassign double register properly for TYP_DOUBLE interval.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoStub Environment from registry apis inside app-containers. (CoreCLR) (#12390)
Atsushi Kanamori [Tue, 20 Jun 2017 23:44:56 +0000 (16:44 -0700)]
Stub Environment from registry apis inside app-containers. (CoreCLR) (#12390)

We're not going to get exemptions for these inside appcontainers
so we'll change them to behave as they do on Unix (present
an empty reg key that eats writes requests.)

7 years agoUpdate building documentation for osx/macOS (#12366)
Tomas Weinfurt [Tue, 20 Jun 2017 23:05:20 +0000 (16:05 -0700)]
Update building documentation for osx/macOS (#12366)

* Update osx-instructions.md

add 10.12 Sierra as minimal needed version and add some more notes for pkg-config add reference to clean.sh

7 years ago[Local GC] Move handle creation/deletion profiler callbacks out of the GC (#12314)
Sean Gillespie [Tue, 20 Jun 2017 22:24:05 +0000 (15:24 -0700)]
[Local GC] Move handle creation/deletion profiler callbacks out of the GC (#12314)

* [Local GC] Move handle creation and handle destruction profiler
callbacks out of the GC

* Remove dead code

* Move some handle-related code out of gcheaputilities.cpp and into gchandleutilities.cpp

* Address code review feedback, remove some more dead code and add some style fixes

* Refactor handle creation and destruction helpers to go through a common function

7 years ago[RyuJIT/ARM32] Implement storing multi-reg/HFA return value at caller (#12294)
Hyung-Kyu Choi [Tue, 20 Jun 2017 21:09:22 +0000 (06:09 +0900)]
[RyuJIT/ARM32] Implement storing multi-reg/HFA return value at caller (#12294)

* [RyuJIT/ARM32] Initial implementation of multi-reg return

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [RyuJIT/ARM32] Update multi-reg return for ARM32

- Update comment
- Remove wrong implementation
- Handle HFA struct correctly by consitering type

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* Update comments for GetABIReturnReg() and GetABIReturnRegs()

- Remove and update obsolete comment
- Fix format

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoMerge pull request #11629 from pentp/Math-perf
Eric Mellino [Tue, 20 Jun 2017 17:02:02 +0000 (13:02 -0400)]
Merge pull request #11629 from pentp/Math-perf

Optimized Math.Sign

7 years agoUpdate CI to follow up corefx changes (#12384)
Hyung-Kyu Choi [Tue, 20 Jun 2017 16:21:13 +0000 (01:21 +0900)]
Update CI to follow up corefx changes (#12384)

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years ago.clang format from jit (#12377)
Sergey Andreenko [Tue, 20 Jun 2017 05:40:25 +0000 (22:40 -0700)]
.clang format from jit (#12377)

7 years agoMerge pull request #12313 from kyulee1/st
Carol Eidt [Mon, 19 Jun 2017 23:10:53 +0000 (16:10 -0700)]
Merge pull request #12313 from kyulee1/st

Remove static for function pointer

7 years agoDon't close passed in FileStream handles in constructor (#12253)
Jeremy Kuhne [Mon, 19 Jun 2017 22:31:01 +0000 (15:31 -0700)]
Don't close passed in FileStream handles in constructor (#12253)

* Don't close passed in FileStream handles in constructor

As the finalizer will run when throwing we need to be
careful to make sure we don't put the passed-in handle
in the member field until we're sure we've succeeeded.

Additionally we need to make sure any wrapping SafeHandle
we create on a passed in IntPtr isn't collected.

* Move platform specific assertion and add comment.

* Comment- fix mistake in CanSeekCore

7 years agoFixing CompareInfo AssemblyMode.Full serialization between Core <--> Desktop (#12365)
Viktor Hofer [Mon, 19 Jun 2017 20:59:38 +0000 (22:59 +0200)]
Fixing CompareInfo AssemblyMode.Full serialization between Core <--> Desktop (#12365)

* Fixing CompareInfo AssemblyMode.Full serialization

* Adding reason why culture field is introduced

7 years agoMerge pull request #12055 from mikedn/lower-long-relops
Pat Gavlin [Mon, 19 Jun 2017 20:10:49 +0000 (13:10 -0700)]
Merge pull request #12055 from mikedn/lower-long-relops

[WIP] Simplify long relop lowering

7 years agoILLink Performance Tests: Enable MusicStore
Swaroop Sridhar [Wed, 24 May 2017 00:19:15 +0000 (17:19 -0700)]
ILLink Performance Tests: Enable MusicStore

Enable the Musicstore tests, since the failure in JitBench is
now fixed.

7 years ago[RyuJIT/ARM32] Update LinearScan::resolveLocalRef() for ARM32 (#12194)
Hyung-Kyu Choi [Mon, 19 Jun 2017 17:47:37 +0000 (02:47 +0900)]
[RyuJIT/ARM32] Update LinearScan::resolveLocalRef() for ARM32 (#12194)

Update LinearScan::resolveLocalRef()
- Always update two float register consisting a double register
- Use helper function for ARM32 double register
- Use stronger assertion condition

Introduce updateAssignedInterval() to update assigned interval
of ARM32 register considering register type.

7 years agoMerge pull request #12364 from adiaaida/removeSudoThroughput
Michelle McDaniel [Mon, 19 Jun 2017 16:16:01 +0000 (09:16 -0700)]
Merge pull request #12364 from adiaaida/removeSudoThroughput

Remove sudo from throughput run

7 years agoUpdate CoreClr, CoreFx to preview1-25419-02, preview1-25419-02, respectively (#12342)
dotnet-maestro-bot [Mon, 19 Jun 2017 15:51:33 +0000 (08:51 -0700)]
Update CoreClr, CoreFx to preview1-25419-02, preview1-25419-02, respectively (#12342)

7 years agoRemove sudo from throughput run
Michelle McDaniel [Mon, 19 Jun 2017 15:24:22 +0000 (08:24 -0700)]
Remove sudo from throughput run

Sudo is not necessary for running throughput testing, so remove sudo so
we don't run into requests for passwords if the ubuntu machines are not
set up correctly.

7 years agoCleanup most code in StringBuilder (#10156)
James Ko [Sun, 18 Jun 2017 13:53:45 +0000 (09:53 -0400)]
Cleanup most code in StringBuilder (#10156)

* Cleanup most code in StringBuilder

* Respond to PR feedback

* Document StringBuilder's fields

* VerifyClassInvariant -> AssertInvariants

* Fix always-true assert

* Respond to PR feedback from @stephentoub

7 years agoMerge pull request #12335 from mikedn/assert-prop-alloc
Pat Gavlin [Sun, 18 Jun 2017 02:43:46 +0000 (19:43 -0700)]
Merge pull request #12335 from mikedn/assert-prop-alloc

Remove unnecessary bitvec allocation in assertion prop

7 years agoFurther improve perf of Char.IsWhiteSpace (#12353)
Stephen Toub [Sun, 18 Jun 2017 01:40:38 +0000 (21:40 -0400)]
Further improve perf of Char.IsWhiteSpace (#12353)

IsWhiteSpaceLatin1 is not being inlined.  By changing a range check done with two comparison operations to instead be done with a subtraction and a single comparison, the code is shortened to not only be less expensive but also then get inlined into IsWhiteSpace and then further into String.IsNullOrWhiteSpace.  The net result is a measurable throughput improvement for IsNullOrWhiteSpace.

7 years agoMerge pull request dotnet/corert#3911 from jkotas/nmirror-merge
Jan Kotas [Sat, 17 Jun 2017 21:07:16 +0000 (14:07 -0700)]
Merge pull request dotnet/corert#3911 from jkotas/nmirror-merge

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoAdd regression test for issue #12224 (#12331)
Jan Vorlicek [Sat, 17 Jun 2017 14:36:46 +0000 (16:36 +0200)]
Add regression test for issue #12224 (#12331)

This change adds regression test for EH getting stuck in an infinite
loop when NullReferenceException happens inside a handler of another
NullReferenceException.

7 years agoRemove some dead argument checks for unsigned primitives for less than zero (#12349)
Hugh Bellamy [Sat, 17 Jun 2017 14:32:10 +0000 (21:32 +0700)]
Remove some dead argument checks for unsigned primitives for less than zero (#12349)

* Remove dead comparisons of unsigned primitive less than zero

* Delete bad assertition that is consistently hit using the Debug coreclr using the tests

7 years agoFix chained hardware exception handling on Unix (#12344)
Jan Vorlicek [Sat, 17 Jun 2017 12:13:39 +0000 (14:13 +0200)]
Fix chained hardware exception handling on Unix (#12344)

There is an issue when hardware exception occurs while handling another hardware exception. In such case,
the exception unwinding ends up in an infinite loop. It is caused by the kernel reusing the same location
for signal handler context.

The fix is to use a windows style context local variable in the common_signal_handler that contains
the right context - it is the original signal context converted to windows style context.

7 years agoThrow ArgumentNullException on Unix calling Marshal.IsComObject(null) (#12348)
Hugh Bellamy [Sat, 17 Jun 2017 10:49:26 +0000 (17:49 +0700)]
Throw ArgumentNullException on Unix calling Marshal.IsComObject(null) (#12348)

7 years agoFix perf.groovy
Swaroop Sridhar [Sat, 17 Jun 2017 01:50:31 +0000 (18:50 -0700)]
Fix perf.groovy

Fix perf.groovy so that ILLink perf tests can be triggered.

7 years agoLoadFromResolve event handler should return null incase of any load error (#12329)
Gaurav Khanna [Sat, 17 Jun 2017 00:26:11 +0000 (17:26 -0700)]
LoadFromResolve event handler should return null incase of any load error (#12329)

7 years agoFix CompareInfo.Version on Windows (#12330)
Tarek Mahmoud Sayed [Fri, 16 Jun 2017 22:53:03 +0000 (15:53 -0700)]
Fix CompareInfo.Version on Windows (#12330)

We call Windows to get the sort version. We call Windows passing the structure NlsVersionInfoEx but Windows expect we have to initialize the size of this structure which we are missing.

7 years agoSecurity build JSONs. (#12279)
Ravi Eda [Fri, 16 Jun 2017 22:31:17 +0000 (17:31 -0500)]
Security build JSONs. (#12279)

7 years agoUpdate CoreClr, CoreFx to preview1-25416-04, preview1-25416-02, respectively (#12319)
dotnet-maestro-bot [Fri, 16 Jun 2017 21:30:57 +0000 (14:30 -0700)]
Update CoreClr, CoreFx to preview1-25416-04, preview1-25416-02, respectively (#12319)

7 years agoAdd path to exception messages (#12322)
Dan Moseley [Fri, 16 Jun 2017 20:45:27 +0000 (13:45 -0700)]
Add path to exception messages (#12322)

* Remove dead code

* Arg_PathIllegal

* IO_PathTooLong

* Remove no longer necessary path sanitization

* Argument_PathFormatNotSupported

* Arg_PathIllegalUNC

* Arg_InvalidSearchPattern

* Dead strings

* Missing nameof

7 years agoRemove unnecessary bitvec allocation in assertion prop
Mike Danes [Fri, 16 Jun 2017 18:50:07 +0000 (21:50 +0300)]
Remove unnecessary bitvec allocation in assertion prop

optVnNonNullPropCurStmt is called for each node and every time it allocates an empty BitVec because optNonNullAssertionProp_Call and optAssertionProp_Ind require it, they are also used in other code paths that do provide a non-empty BitVec.

7 years agoMerge pull request #12203 from wtgodbe/Timing
William Godbe [Fri, 16 Jun 2017 18:45:54 +0000 (11:45 -0700)]
Merge pull request #12203 from wtgodbe/Timing

Fix timing issues in some baseservices tests

7 years agoMerge pull request #12321 from BruceForstall/FixMeasureSize2
Bruce Forstall [Fri, 16 Jun 2017 17:26:45 +0000 (10:26 -0700)]
Merge pull request #12321 from BruceForstall/FixMeasureSize2

Convert size measurements for nodes to unsigned __int64

7 years agoRemove unused source causing restore error
Christopher Costa [Fri, 16 Jun 2017 16:39:13 +0000 (09:39 -0700)]
Remove unused source causing restore error

7 years ago[ARM] Set local variables as addr-exposed (for LEGACY_BACKEND) (#12237)
Jonghyun Park [Fri, 16 Jun 2017 15:50:43 +0000 (00:50 +0900)]
[ARM] Set local variables as addr-exposed (for LEGACY_BACKEND) (#12237)

7 years agoDisable Portable RID build for Tizen (#12292)
Hyung-Kyu Choi [Fri, 16 Jun 2017 13:13:46 +0000 (22:13 +0900)]
Disable Portable RID build for Tizen (#12292)

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoFix chained hardware exception handling on Unix (#12316)
Jan Vorlicek [Fri, 16 Jun 2017 11:23:34 +0000 (13:23 +0200)]
Fix chained hardware exception handling on Unix (#12316)

There is an issue when hardware exception occurs while handling another hardware exception. In such case,
the exception unwinding ends up in an infinite loop. It is caused by the kernel reusing the same location
for signal handler context.

The fix is to use the windows style context local variable in the common_signal_handler that contains
the right context - it is the original signal context converted to windows style context.

7 years agoMerge pull request #12320 from BruceForstall/CompactGenTreeCall2
Bruce Forstall [Fri, 16 Jun 2017 07:06:05 +0000 (00:06 -0700)]
Merge pull request #12320 from BruceForstall/CompactGenTreeCall2

Compact the size of GenTreeCall nodes

7 years agoMerge pull request #12185 from hqueue/arm/ryujit/lsra_11851_resolve_edges
Carol Eidt [Fri, 16 Jun 2017 02:27:07 +0000 (19:27 -0700)]
Merge pull request #12185 from hqueue/arm/ryujit/lsra_11851_resolve_edges

[RyuJIT/ARM32] Select proper temp register when resolving edges

7 years agoCompact the size of GenTreeCall nodes
Bruce Forstall [Fri, 16 Jun 2017 02:24:50 +0000 (19:24 -0700)]
Compact the size of GenTreeCall nodes

The data stored in GenTreeCall under `#ifdef FEATURE_MULTIREG_RET`
(defined for x86 (RyuJIT), amd64/Linux, arm32, arm64) was poorly
packed. Improving this reduces x86 GenTreeCall node size from 124 to 112 bytes.
Since GenTreeCall is the largest node, it also reduces the size of all
"large" nodes.

7 years agoConvert size measurements for nodes to unsigned __int64
Bruce Forstall [Fri, 16 Jun 2017 02:20:14 +0000 (19:20 -0700)]
Convert size measurements for nodes to unsigned __int64

I found these numbers overflowing a size_t on x86 with a long
SuperPMI run.

7 years agoMerge pull request #12298 from dotnet/revert-12227-PR-12197
Jarret Shook [Fri, 16 Jun 2017 01:13:50 +0000 (18:13 -0700)]
Merge pull request #12298 from dotnet/revert-12227-PR-12197

Revert "[Arm64] JIT_WriteBarrier optimization"

7 years ago[x86/Linux] Enable gcMarkFilterVarsPinned (WIN64EXCEPTIONS) (#11281)
Hanjoung Lee [Fri, 16 Jun 2017 00:53:44 +0000 (09:53 +0900)]
[x86/Linux] Enable gcMarkFilterVarsPinned (WIN64EXCEPTIONS) (#11281)

* [x86/Linux] Enable gcMarkFilterVarsPinned

Do gcMarkFilterVarsPinned() for WIN64EXCEPTIONS

* [x86/Linux] GCInfo : Force this pointer untracked

`this` pointer is now always untracked so we can use pinned flag in tracked lifetimes.
This allows us to make the refs(inside filter) pinned to prevent from double-relocation.

* [x86/Linux] GCInfo : fix comment and formatting

* [x86/Linux] GCInfo : Update

- Force "this" pointer untracked only when "this" is generic context
- Style fixes

* [x86/Linux] GCInfo : remove this_OFFSET_FLAG

7 years agoUpdate CoreFx to preview1-25415-03 (#12305)
dotnet-maestro-bot [Thu, 15 Jun 2017 23:05:38 +0000 (16:05 -0700)]
Update CoreFx to preview1-25415-03 (#12305)

7 years agoRemove static for function pointer
Kyungwoo Lee [Thu, 15 Jun 2017 22:55:34 +0000 (15:55 -0700)]
Remove static for function pointer

qsort with static compare functions crashes with ALTJIT.
It appears due to _guard_check_icall_fptr in Windows 10.
Simply dropping static keyword works.

7 years agoMerge pull request #12307 from stephentoub/iswhitespace
Stephen Toub [Thu, 15 Jun 2017 22:49:56 +0000 (18:49 -0400)]
Merge pull request #12307 from stephentoub/iswhitespace

Small cleanup to Char.IsWhiteSpaceLatin1

7 years agoMerge pull request #12311 from jashook/arm64_unix_ci
Jarret Shook [Thu, 15 Jun 2017 22:01:00 +0000 (15:01 -0700)]
Merge pull request #12311 from jashook/arm64_unix_ci

Add the arm64 unix CI

7 years agoFix timing issues in some baseservices tests
wtgodbe [Fri, 9 Jun 2017 20:32:31 +0000 (13:32 -0700)]
Fix timing issues in some baseservices tests

7 years agoMerge branch 'master' into arm64_unix_ci
Jarret Shook [Thu, 15 Jun 2017 21:36:22 +0000 (14:36 -0700)]
Merge branch 'master' into arm64_unix_ci

7 years agoAdd the arm64 unix CI
jashook [Mon, 17 Apr 2017 22:53:12 +0000 (15:53 -0700)]
Add the arm64 unix CI

This will enable unix arm64 testing in CI. Currently there are no
default tirggers; however, anyone will be able to request the jobs.

7 years agoMerge pull request #12310 from dotnet/revert-11743-arm64_unix_ci
Jarret Shook [Thu, 15 Jun 2017 21:31:55 +0000 (14:31 -0700)]
Merge pull request #12310 from dotnet/revert-11743-arm64_unix_ci

Revert "Add the arm64 unix CI"

7 years agoRevert "Add the arm64 unix CI"
Jarret Shook [Thu, 15 Jun 2017 21:31:30 +0000 (14:31 -0700)]
Revert "Add the arm64 unix CI"

7 years agoMerge pull request #11743 from jashook/arm64_unix_ci
Jarret Shook [Thu, 15 Jun 2017 21:20:11 +0000 (14:20 -0700)]
Merge pull request #11743 from jashook/arm64_unix_ci

Add the arm64 unix CI

7 years agoMerge pull request #12297 from stephentoub/getdatepart
Stephen Toub [Thu, 15 Jun 2017 20:22:10 +0000 (16:22 -0400)]
Merge pull request #12297 from stephentoub/getdatepart

Avoid duplicated computations with DateTime.GetDatePart

7 years agoSmall cleanup to Char.IsWhiteSpaceLatin1
Stephen Toub [Thu, 15 Jun 2017 20:14:32 +0000 (16:14 -0400)]
Small cleanup to Char.IsWhiteSpaceLatin1

For some reason this is resulting in measurably better throughput, in particular for non-whitespace chars, so much so that it's visible in microbenchmarks against string.IsNullOrWhiteSpace.

If nothing else, it's cleaner.

7 years agoMerge pull request dotnet/corert#3890 from jkotas/nmirror-merge
Jan Kotas [Thu, 15 Jun 2017 14:32:54 +0000 (07:32 -0700)]
Merge pull request dotnet/corert#3890 from jkotas/nmirror-merge

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoMerge pull request #12047 from rartemev/issue_4122_2
Roman Artemev [Thu, 15 Jun 2017 19:51:28 +0000 (12:51 -0700)]
Merge pull request #12047 from rartemev/issue_4122_2

Fixed determintaion of need to make code that contains tail.call loop fully interuptible

7 years ago[Local GC] Fix a number of handle table interface violations (#12277)
Sean Gillespie [Thu, 15 Jun 2017 19:45:12 +0000 (12:45 -0700)]
[Local GC] Fix a number of handle table interface violations (#12277)

* Fix a smattering of GC handle table interface violations

Stub out a few other handle violations

* [Local GC] Add SetExtraInfoForHandle onto GC handle manager interface

* [Local GC] Changes uses of HndGetHandleADIndex to GetHandleContext

* Add HandleGetType to GC handle table interface

1) Change IGCHandleManager methods that take "int" to represent the type of a handle to HandleType, and fix callers to cast to HandleType
2) Add HandleFetchType to IGCHandleManager, returning a HandleType
3) Fix uses of handtablepriv's HandleFetchType and remove the GC directory from the include path

* 9 -> HNDTYPE_WEAK_WINRT, 0 -> HNDTYPE_WEAK_SHORT in assert

7 years agoMerge branch 'master' into arm64_unix_ci
Jarret Shook [Thu, 15 Jun 2017 18:28:54 +0000 (11:28 -0700)]
Merge branch 'master' into arm64_unix_ci

7 years agoMerge pull request #12287 from briansull/nowarn-SIMD
Brian Sullivan [Thu, 15 Jun 2017 18:16:42 +0000 (11:16 -0700)]
Merge pull request #12287 from briansull/nowarn-SIMD

Crossgen - Disable the Target-dependent SIMD vector types warning

7 years agoMerge pull request #12251 from kyulee1/override
Bruce Forstall [Thu, 15 Jun 2017 17:15:47 +0000 (10:15 -0700)]
Merge pull request #12251 from kyulee1/override

Missing override keyword to DoPhase

7 years agoAdd sdmaclea to arm64Users
Steve MacLean [Thu, 15 Jun 2017 15:52:15 +0000 (15:52 +0000)]
Add sdmaclea to arm64Users

7 years agoUpdate CoreClr, CoreFx to preview1-25415-03, preview1-25415-01, respectively (#12284)
dotnet-maestro-bot [Thu, 15 Jun 2017 15:42:52 +0000 (08:42 -0700)]
Update CoreClr, CoreFx to preview1-25415-03, preview1-25415-01, respectively (#12284)

7 years agoRevert "[Arm64] JIT_WriteBarrier optimization (#12227)"
Jarret Shook [Thu, 15 Jun 2017 15:42:07 +0000 (08:42 -0700)]
Revert "[Arm64] JIT_WriteBarrier optimization (#12227)"

This reverts commit b5914c8d1b20be898b8982a4dfcf9d8e9046b2ec.

7 years agoAvoid duplicated compuations with DateTime.GetDatePart
Stephen Toub [Thu, 15 Jun 2017 15:31:12 +0000 (11:31 -0400)]
Avoid duplicated compuations with DateTime.GetDatePart

- Remove duplicate code in GregorianCalendar. GetDatePart is identical to the implementation in DateTime.  Just reuse it via the Year/Month/Day properties. Also avoids an unnecessary virtual call.
- Then copy GetDatePart into a version that returns year/month/day rather than just one of them.
- And use that in several places throughout corelib where all three are retrieved, avoiding redoing all of the calculations three times.

7 years ago[RyuJIT/ARM32] Reserve a double register for both TYP_DOUBLE and TYP_FLOAT
Hyung-Kyu Choi [Thu, 15 Jun 2017 08:16:14 +0000 (17:16 +0900)]
[RyuJIT/ARM32] Reserve a double register for both TYP_DOUBLE and TYP_FLOAT

First, try to reserve a double temp register for both TYP_DOUBLE and TYP_FLOAT.
If fails, try to reserve a float temp register for only TYP_FLOAT.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years ago[RyuJIT/ARM32] Fix typo
Hyung-Kyu Choi [Wed, 14 Jun 2017 03:36:03 +0000 (12:36 +0900)]
[RyuJIT/ARM32] Fix typo

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years ago[Arm64] JIT_WriteBarrier optimization (#12227)
Steve MacLean [Thu, 15 Jun 2017 06:35:49 +0000 (02:35 -0400)]
[Arm64] JIT_WriteBarrier optimization (#12227)

* [Arm64] JIT_WriteBarrier optimization

Add skipEphemeralCheck if gcServer=1

Copy all gc parameters into a literal pool which
fits in single cache line

Add dmb ishst on gcHeap changes

Reduce unpredictable branches

Remove unneeded instructiuons

Fixes #11374
Fixes #12197

* [Arm64] fix typo in asm

* Fixup asm

* [Arm64] Revise per comments

Nits - Whitespace, Labels to PascalCase
Fix state change order
Add Suspend/Resume to fix race
Fix errors in Windows arm64 assembly

* [Arm64] Remove SuspendEE/RestartEE in StompWriteBarrierResize

* Use Volatile<> for g_highest_address

* Revise synchronization per comments

7 years agoRemove unused forward declaration (#12288)
Jonghyun Park [Thu, 15 Jun 2017 06:06:41 +0000 (15:06 +0900)]
Remove unused forward declaration (#12288)

7 years agoFix build break
chcosta [Thu, 15 Jun 2017 06:05:46 +0000 (23:05 -0700)]
Fix build break

Download from Azure task does not retain blob prefix when downloading blobs.

7 years agoCrossgen - Disable the Target-dependent SIMD vector types warning
Brian Sullivan [Thu, 15 Jun 2017 01:44:12 +0000 (18:44 -0700)]
Crossgen - Disable the Target-dependent SIMD vector types warning

When a SIMD type is referenced during CEEPreloader instead of loading it
we throw a type load exception with a unique resource ID and message.
This commit changed the ICorCompileDataStore interface to allow us to pass
the unique resource ID over to the zapper from the VM.

The Zapper can then demote certain resource ID warnings down to the
lowest informational level, so that they aren't printed out  during crossgen.
With this commit we currently are demoting IDS_EE_SIMD_NGEN_DISALLOWED

7 years agoUpdate CoreClr to preview1-25414-05 (#12282)
dotnet-maestro-bot [Thu, 15 Jun 2017 00:29:45 +0000 (17:29 -0700)]
Update CoreClr to preview1-25414-05 (#12282)

7 years agoUpdate buildtools to 2.0.0-prerelease-01714-04 (#12280)
chcosta [Thu, 15 Jun 2017 00:28:10 +0000 (17:28 -0700)]
Update buildtools to 2.0.0-prerelease-01714-04 (#12280)

7 years agoFix NullReferenceException thrown when using CurrentCulture (#12281)
Tarek Mahmoud Sayed [Wed, 14 Jun 2017 23:36:24 +0000 (16:36 -0700)]
Fix NullReferenceException thrown when using CurrentCulture (#12281)

CurrentCulture used the static field s_userDefaultCulture which used to store the current culture. We always ensure this field is initialized all the time. When we introduced the v2.0 added APIs, we have added ClearCachedData(). This method was setting s_userDefaultCulture to null which can cause any other thread to throw this NullReferenceException if it is using s_userDefaultCulture. Here is example of such stack

System.NullReferenceException : Object reference not set to an instance of an object.
Stack Trace :
   at System.Globalization.NumberFormatInfo.get_CurrentInfo()
   at System.Double.ToString(String format, IFormatProvider provider)

7 years agoRenaming serializable field (#12273)
Viktor Hofer [Wed, 14 Jun 2017 19:57:36 +0000 (21:57 +0200)]
Renaming serializable field (#12273)

7 years agoRemove the warning about Implicit boxing during crossgen (#12274)
Brian Sullivan [Wed, 14 Jun 2017 19:57:20 +0000 (12:57 -0700)]
Remove the warning about Implicit boxing during crossgen (#12274)