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

7 years agoMerge pull request #12272 from jashook/add_documentation_for_building_tests_on_unix
Jarret Shook [Wed, 14 Jun 2017 19:47:55 +0000 (12:47 -0700)]
Merge pull request #12272 from jashook/add_documentation_for_building_tests_on_unix

Add documentation for building test(s) on Unix

7 years agoAdd documentation for building test(s) on Unix
jashook [Wed, 14 Jun 2017 17:01:58 +0000 (10:01 -0700)]
Add documentation for building test(s) on Unix

This also includes steps on how to build individual tests.

7 years agoFix a COMDouble::Round() issue (#12210)
Han Lee [Wed, 14 Jun 2017 16:14:18 +0000 (09:14 -0700)]
Fix a COMDouble::Round() issue (#12210)

* Fix a COMDouble::Round() issue
fixes https://github.com/dotnet/coreclr/issues/12137

* Add a couple tests for Math.Round(double)
based on https://github.com/dotnet/coreclr/issues/12137

* Use G17 format specifier for printing double values

7 years agoUpdate CoreClr to preview1-25414-04 (#12270)
dotnet-maestro-bot [Wed, 14 Jun 2017 16:09:10 +0000 (09:09 -0700)]
Update CoreClr to preview1-25414-04 (#12270)

7 years agoAdd `-PortableBuild=false` option in Tizen CI build (#12241)
Jiyoung Giuliana Yun [Wed, 14 Jun 2017 14:50:51 +0000 (23:50 +0900)]
Add `-PortableBuild=false` option in Tizen CI build (#12241)

7 years agoAdditional to fix #12104 for CoreRT issue #3672 (armel tizen) (#12244)
sergey ignatov [Wed, 14 Jun 2017 14:28:12 +0000 (17:28 +0300)]
Additional to fix #12104 for CoreRT issue #3672 (armel tizen) (#12244)

* Additional to fix #12104 for CoreRT issue #3672 (armel tizen)

* Fix for unregistered info.compLvFrameListRoot

7 years agoFix gethashcode for ordinal comparer (#12267)
Viktor Hofer [Wed, 14 Jun 2017 11:34:45 +0000 (13:34 +0200)]
Fix gethashcode for ordinal comparer (#12267)

Fix GetHashCode for ordinal comparer

7 years agoRewrite of OpCodeGen.pl script to generate correctly IL OpCodes (#12040)
Jacek Blaszczynski [Wed, 14 Jun 2017 06:16:26 +0000 (08:16 +0200)]
Rewrite of OpCodeGen.pl script to generate correctly IL OpCodes (#12040)

* Rewrite of OpCodeGen.pl script to generate correctly IL OpCodes related C# code: FlowControl.cs, OpCodes.cs, OpCodeTypes.cs, OperandType.cs, StackBehaviour.cs from opcode.def file

* Update OpcodeType.cs to OpCodeType.cs in System.Private.CorLib.csproj

7 years agoImprove the packing of RefPosition (#12263)
Bruce Forstall [Wed, 14 Jun 2017 06:16:05 +0000 (23:16 -0700)]
Improve the packing of RefPosition (#12263)

The LSRA RefPosition type was not packing well. In particular,
bitfields don't pack unless they have the same base type.

Move all the data member declarations to the top, and make them adjacent,
so it is easier to see them all together. Also, change all bitfields
to "unsigned char" base type.

This reduces the size from 36 to 28 bytes for x86, and 48 to 40 bytes
for x64 (release, on Windows).

7 years ago[Arn64/Unix] Revise Volatile.T barriers (#12156)
Steve MacLean [Wed, 14 Jun 2017 06:04:01 +0000 (02:04 -0400)]
[Arn64/Unix] Revise Volatile.T barriers (#12156)

* [Arm64] Revise Volatile<T> barriers

* Remove VolateStore from CopyValueClassUnchecked

* Replace MemoryBarrier() in CopyValueClassUnchecked

7 years agoKeep previous cmake arguments when using buildstandalonegc (#12108)
Omair Majid [Wed, 14 Jun 2017 05:39:08 +0000 (01:39 -0400)]
Keep previous cmake arguments when using buildstandalonegc (#12108)

Currently, using buildstandalonegc makes ./build.sh discard any
previous values of __cmakearg set explicitly or implicitly. Preserve
those arguments.

Without this fix, the following invocations behave differently:

    $ ./build.sh ignorewarnings buildstandalonegc verbose

    $ ./build.sh buildstandalonegc ignorewarnings verbose

7 years agoUpdate CoreClr, CoreFx to preview1-25414-02, preview1-25414-01, respectively (#12258)
dotnet-maestro-bot [Wed, 14 Jun 2017 05:29:42 +0000 (22:29 -0700)]
Update CoreClr, CoreFx to preview1-25414-02, preview1-25414-01, respectively (#12258)

7 years agoRemove serializable attribute from OrdinalIgnoreCaseComparer (#12215)
Viktor Hofer [Wed, 14 Jun 2017 01:49:02 +0000 (03:49 +0200)]
Remove serializable attribute from OrdinalIgnoreCaseComparer (#12215)

* Remove serializable attribute from OrdinalIgnoreCaseComparer

* Introducing OrdinalCaseSensitiveComparer to serialize correctly with netfx

* Updated PR feedback

7 years agoMerge pull request #12255 from briansull/concat-fix
Brian Sullivan [Wed, 14 Jun 2017 00:55:05 +0000 (17:55 -0700)]
Merge pull request #12255 from briansull/concat-fix

Removed the unused vararg version of String Concat

7 years agoRemoved the unused vararg version of String Concat
Brian Sullivan [Tue, 13 Jun 2017 21:19:30 +0000 (14:19 -0700)]
Removed the unused vararg version of String Concat

The __arglist version of varargs is not supported on CoreCLR

Fixes issue #12146 - crossgen warning - Vararg calling convention not supported.

Added a new test case for String Concat
Added <DebugType>None
Fixed src\JIT\Directed\Misc\gettype csproj as well

7 years agoSkip PGO if clang is too old, and add warnings for skipped PGO (#12248)
Daniel Podder [Tue, 13 Jun 2017 21:51:55 +0000 (14:51 -0700)]
Skip PGO if clang is too old, and add warnings for skipped PGO (#12248)

Clang/LLVM cannot merge profile data generated by a newer version of
itself. Training currently requires 3.6, but we don't want to completely
break the build for 3.5. I'm adding a version check to allow non-PGO
release builds on 3.5, along with a warning message. I'm also updating
the LTO detection to print a warning message if it causes PGO to be
disabled.

7 years agoAdded the checked CORE_ROOT path to this
Brian Sullivan [Tue, 13 Jun 2017 20:57:33 +0000 (13:57 -0700)]
Added the checked CORE_ROOT path to this

7 years agoMerge pull request #12092 from wtgodbe/CoreDisTools
William Godbe [Tue, 13 Jun 2017 20:55:54 +0000 (13:55 -0700)]
Merge pull request #12092 from wtgodbe/CoreDisTools

Explicitly download correct version of CoreDisTools package

7 years agoSpecified where the failing tests are listed.
Brian Sullivan [Tue, 13 Jun 2017 20:08:43 +0000 (13:08 -0700)]
Specified where the failing tests are listed.

7 years agoUpdated the path for the test results html file
Brian Sullivan [Tue, 13 Jun 2017 20:04:12 +0000 (13:04 -0700)]
Updated the path for the test results html file

7 years agoFixed typo
Brian Sullivan [Tue, 13 Jun 2017 19:59:42 +0000 (12:59 -0700)]
Fixed typo

7 years agoUpdated for checked build testing and corrected some paths
Brian Sullivan [Tue, 13 Jun 2017 19:58:37 +0000 (12:58 -0700)]
Updated for checked build testing and corrected some paths

7 years agoMissing override keyword to DoPhase
Kyungwoo Lee [Tue, 13 Jun 2017 18:37:14 +0000 (11:37 -0700)]
Missing override keyword to DoPhase

7 years agoMerge pull request #12105 from alpencolt/ryu-arm-softfp-pass-ret
Bruce Forstall [Tue, 13 Jun 2017 17:35:43 +0000 (10:35 -0700)]
Merge pull request #12105 from alpencolt/ryu-arm-softfp-pass-ret

[RyuJIT/armel] Fix for correct passing and returning float values.

7 years ago[RyuJIT/ARM32] Fix assertion when using invalid imm for INS_add (#12162)
Sujin Kim [Tue, 13 Jun 2017 17:31:50 +0000 (02:31 +0900)]
[RyuJIT/ARM32] Fix assertion when using invalid imm for INS_add (#12162)

* [RyuJIT/ARM32] Fix assertion when using invalid imm for INS_add

`JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b54611/b54611/b54611.sh`

Assertion failed '!"Instruction cannot be encoded" has been occurred.

INS_add couldn't process with the invalid imm of -273 on this test.
So in this PR, If it got the value that cannot be processed, moving to register that after changing status would be ran so that it can be processed.

* Modify 'Lowering::IsContainableImmed' to work normally.

insFlags when the function is called was always INS_FLAGS_DONT_CARE.
In this case, if the imm is such as -273, the result would be false.

The correct flags have to be set.

* add ifdef for the flags variable

7 years agoMerge pull request #12243 from hqueue/arm/ryujit/issue_11842
Bruce Forstall [Tue, 13 Jun 2017 17:16:30 +0000 (10:16 -0700)]
Merge pull request #12243 from hqueue/arm/ryujit/issue_11842

[RyuJIT/ARM32] Enable HasMultiRegRetVal() for struct

7 years agoMake ActivityID guids process specific. (#11726)
Vance Morrison [Tue, 13 Jun 2017 16:56:20 +0000 (09:56 -0700)]
Make ActivityID guids process specific. (#11726)

This is a port a change from the Nuget version of this library.
Bascially it hashs in the process ID into the activity ID GUID.  This make collisions across processes unlikely.

7 years agoMerge pull request #12235 from BruceForstall/FixSuperPmiCollect
Bruce Forstall [Tue, 13 Jun 2017 16:50:40 +0000 (09:50 -0700)]
Merge pull request #12235 from BruceForstall/FixSuperPmiCollect

Fix SuperPMI collection script to allow passing arch/flavor args