platform/upstream/coreclr.git
6 years agoUpdate filetimes to nsec (#15872)
Dan Moseley [Wed, 17 Jan 2018 00:35:25 +0000 (16:35 -0800)]
Update filetimes to nsec (#15872)

6 years agoMerge pull request #14736 from tannergooding/roundsx
Tanner Gooding [Wed, 17 Jan 2018 00:02:38 +0000 (16:02 -0800)]
Merge pull request #14736 from tannergooding/roundsx

Enable CORINFO_INTRINSIC Round, Ceiling, and Floor to generate ROUNDSS and ROUNDSD

6 years ago[Arm64] Add arm64-intrinsics.md (#15343)
Steve MacLean [Wed, 17 Jan 2018 00:00:52 +0000 (19:00 -0500)]
[Arm64] Add arm64-intrinsics.md (#15343)

* [Arm64] Add arm64-intrinsics.md

* Revise arm64-intrinsics

Respond to feedback
Revise namespace recommendations
Add goals
Fix namespace vs. class issues
Add API review details

* Revise arm64-intrinsics doc

Respond to feedback
Add specific class table
Clean up typos and whitespace

* Revise review process proposal

* [Arm64] Add 8.2 extensions and cleanup

* Add Jscvt, Lrcpc ...

* Revise doc based on feedback

* Further doc revisions

* More review fixes

6 years agoMerge pull request #15880 from tannergooding/hwintrin-containment
Tanner Gooding [Tue, 16 Jan 2018 23:06:28 +0000 (15:06 -0800)]
Merge pull request #15880 from tannergooding/hwintrin-containment

Mark emitIns_R_A and emitIns_R_R_A to be not defined for legacy backend

6 years agoFix one missing check for NULL after malloc (#15877)
Jan Vorlicek [Tue, 16 Jan 2018 23:05:52 +0000 (00:05 +0100)]
Fix one missing check for NULL after malloc (#15877)

When making the last change to the numa.cpp, I have made a
mistake and forgotten to check return value of one of the mallocs.
This change fixes that and also changes the code pattern to use
goto for the cleanup purposes instead of the nested ifs.

6 years agoSmall fix to underlying CoreCLR support for new string slicing overloads (#15876)
Atsushi Kanamori [Tue, 16 Jan 2018 21:39:15 +0000 (13:39 -0800)]
Small fix to underlying CoreCLR support for new string slicing overloads (#15876)

https://github.com/dotnet/corefx/issues/24072

Add the parameter name to the exceptions like other "Slice"-like apis do.

6 years agoMark emitIns_R_A and emitIns_R_R_A to be not defined for legacy backend
Tanner Gooding [Tue, 16 Jan 2018 21:12:39 +0000 (13:12 -0800)]
Mark emitIns_R_A and emitIns_R_R_A to be not defined for legacy backend

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26116-03, preview1-26116-03, master-20180...
dotnet-maestro-bot [Tue, 16 Jan 2018 18:19:53 +0000 (12:19 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-26116-03, preview1-26116-03, master-20180116-0045, respectively (#15859)

6 years agoFix mismatch between new and free in numa.cpp (#15870)
Jan Vorlicek [Tue, 16 Jan 2018 04:24:45 +0000 (05:24 +0100)]
Fix mismatch between new and free in numa.cpp (#15870)

* Fix mismatch between new and free in numa.cpp

One of the allocations in the numa.cpp uses new to allocate an array,
but it incorrectly uses free to free the memory. This change fixes it.

6 years agoFix Android build (#15868)
Jan Vorlicek [Tue, 16 Jan 2018 04:20:41 +0000 (05:20 +0100)]
Fix Android build (#15868)

There were the following issues:
* The current versions of packages available at the termux site were obsolete.
* The libintl.h was removed from the Android SDK, so the dgettext and bindtextdomain
  are not available. But they were dummy implementations before anyways, so we can remove
  their usage on Android.
* The detection of the ucol_setMaxVariable needs to be done using the
  check_cxx_symbol_exists instead of check_symbol_exists, since on Android, the
  ICU libraries now depend on C++ runtime.
* The SIZE_T_MAX is already defined in Android headers, so the definition in cgroup.cpp was
  colliding with it.
* The pthread_condattr_setclock detection was using pthread library, but on Android, it is
  located in the "c" library instead. So it was not being detected.

6 years agoDelete BasicSpanTest.cs (#15860)
Jan Kotas [Tue, 16 Jan 2018 03:43:07 +0000 (19:43 -0800)]
Delete BasicSpanTest.cs (#15860)

It is redundant with CoreFX Span tests now

6 years agoAdd tests for Math.Ceiling, Floor, and Round.
Tanner Gooding [Wed, 6 Dec 2017 03:49:20 +0000 (19:49 -0800)]
Add tests for Math.Ceiling, Floor, and Round.

6 years agoAdding SSE4.1 intrinsic support for Round, Ceiling, and Floor.
Tanner Gooding [Sat, 28 Oct 2017 16:35:28 +0000 (09:35 -0700)]
Adding SSE4.1 intrinsic support for Round, Ceiling, and Floor.

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26114-02, preview1-26114-03, master-20180...
dotnet-maestro-bot [Mon, 15 Jan 2018 01:07:19 +0000 (19:07 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-26114-02, preview1-26114-03, master-20180114-0044, respectively (#15856)

6 years agoMerge pull request #15855 from jkotas/revert
Jan Kotas [Sat, 13 Jan 2018 22:13:38 +0000 (14:13 -0800)]
Merge pull request #15855 from jkotas/revert

Revert "Remove relocations for MethodTable::m_pParentMethodTable for Linux ARM"

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26113-02, preview1-26113-03, master-20180...
dotnet-maestro-bot [Sat, 13 Jan 2018 18:13:02 +0000 (12:13 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-26113-02, preview1-26113-03, master-20180113-0045, respectively (#15853)

6 years agoRevert "Remove relocations for MethodTable::m_pParentMethodTable for Linux ARM"
Jan Kotas [Sat, 13 Jan 2018 08:40:45 +0000 (00:40 -0800)]
Revert "Remove relocations for MethodTable::m_pParentMethodTable for Linux ARM"

This reverts commit cf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2.

6 years agoMark legacy ByRef-like types as ref in sources (#15846)
Jan Kotas [Sat, 13 Jan 2018 02:30:38 +0000 (18:30 -0800)]
Mark legacy ByRef-like types as ref in sources (#15846)

Delete special casing in the type loader

6 years agoMerge pull request #15850 from BruceForstall/FastGCStress
Bruce Forstall [Sat, 13 Jan 2018 01:56:10 +0000 (17:56 -0800)]
Merge pull request #15850 from BruceForstall/FastGCStress

Do fast GC stress on some extreme tests

6 years agoMerge pull request #15822 from BruceForstall/FixWriteBarrierHelperKills
Bruce Forstall [Sat, 13 Jan 2018 01:53:52 +0000 (17:53 -0800)]
Merge pull request #15822 from BruceForstall/FixWriteBarrierHelperKills

Fix ARM GCStress hole with byref write barrier helper

6 years agoAdded Append(Stringbuilder,int,int) and Append(StringBuilder) overlaod apis (#15786)
Anirudh Agnihotry [Sat, 13 Jan 2018 01:40:05 +0000 (17:40 -0800)]
Added Append(Stringbuilder,int,int) and Append(StringBuilder) overlaod apis (#15786)

Added Append(Stringbuilder,int,int) and Append(StringBuilder) overlaod apis

6 years agoDo fast GC stress on some extreme tests
Bruce Forstall [Fri, 12 Jan 2018 23:12:48 +0000 (15:12 -0800)]
Do fast GC stress on some extreme tests

Set COMPlus_FastGCStress=1 to avoid GC in the
`CoreCLR!JIT_Stelem_Ref => CoreCLR!ArrayStoreCheck` path.

6 years agoMerge pull request #15804 from tannergooding/hwintrin-containment
Tanner Gooding [Fri, 12 Jan 2018 22:56:20 +0000 (14:56 -0800)]
Merge pull request #15804 from tannergooding/hwintrin-containment

Adding basic containment support to the x86 HWIntrinsics

6 years agoupdated docs: how to run against local core clr build (#15841)
Adam Sitnik [Fri, 12 Jan 2018 21:54:38 +0000 (22:54 +0100)]
updated docs: how to run against local core clr build (#15841)

* updated docs: how to run against local core clr build

* split the running docs into 3 files to make it simpler to understand

6 years agoLoaderHeap: remove LHF_ZEROINIT option.
Konstantin Baladurin [Fri, 12 Jan 2018 16:11:05 +0000 (19:11 +0300)]
LoaderHeap: remove LHF_ZEROINIT option.

This option was used for UMEntryThunkCode::Poison. Now we use own free list
to store freed thunks and don't return allocated memory to the LoaderHeap.
So reused thunks are always uninitialized.

6 years agodllimportcallback: remove code for CallbackOnCollectedDelegate MDA
Konstantin Baladurin [Fri, 12 Jan 2018 08:46:48 +0000 (11:46 +0300)]
dllimportcallback: remove code for CallbackOnCollectedDelegate MDA

6 years agoUMEntryThunk: store freed thunks into FIFO free list
Konstantin Baladurin [Fri, 12 Jan 2018 15:55:10 +0000 (18:55 +0300)]
UMEntryThunk: store freed thunks into FIFO free list

Use free list to delay reusing deleted thunks. It improves
collected delegate calls diagnostic.

6 years agoImprove UMEntryThunkCode::Poison method.
Konstantin Baladurin [Wed, 10 Jan 2018 15:26:01 +0000 (18:26 +0300)]
Improve UMEntryThunkCode::Poison method.

Improve UMEntryThunkCode::Poison to produce diagnostic message
when collected delegate was called.

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26112-01, preview1-26112-01, master-20180...
dotnet-maestro-bot [Fri, 12 Jan 2018 20:38:25 +0000 (14:38 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-26112-01, preview1-26112-01, master-20180112-0034, respectively (#15837)

6 years agoFixing the hwintrin codgen containment checks
Tanner Gooding [Fri, 12 Jan 2018 01:53:32 +0000 (17:53 -0800)]
Fixing the hwintrin codgen containment checks

6 years agoAdding asserts that values are as expected for certain containment checks
Tanner Gooding [Thu, 11 Jan 2018 22:03:39 +0000 (14:03 -0800)]
Adding asserts that values are as expected for certain containment checks

6 years agoAdding basic containment support to the x86 HWIntrinsics
Tanner Gooding [Tue, 9 Jan 2018 17:51:40 +0000 (09:51 -0800)]
Adding basic containment support to the x86 HWIntrinsics

6 years agoMerge pull request #15815 from jashook/fix_helix_publish
Jarret Shook [Fri, 12 Jan 2018 15:36:03 +0000 (07:36 -0800)]
Merge pull request #15815 from jashook/fix_helix_publish

Fix overwriting os/arch when publishing to helix

6 years agoFix overwriting os/arch when publishing to helix
jashook [Wed, 10 Jan 2018 18:52:27 +0000 (10:52 -0800)]
Fix overwriting os/arch when publishing to helix

6 years agoConvert run-xunit-perf to py script (#15568)
Michelle McDaniel [Fri, 12 Jan 2018 15:31:56 +0000 (07:31 -0800)]
Convert run-xunit-perf to py script (#15568)

* Convert run-xunit-perf to python script

This change merges the two run-xunit-perf scripts (.sh and .cmd) into
one unified python script and updates the pipeline job to use the
pythong script. This change also updates the linux jobs to use the new
build-tests.sh generatelayoutonly command so that we don't need to pull
down corefx from the cloud anymore. The unified python script enables us
to more easily update both linux scripting and windows scripting at the
same time so that one does not lag behind the other (such as when we add
new configurations or options like slicing). This change also turns
linux testing back on by default for PRs.

6 years agoMerge pull request #15835 from BruceForstall/FixGCKeepAlive
Bruce Forstall [Fri, 12 Jan 2018 07:27:20 +0000 (23:27 -0800)]
Merge pull request #15835 from BruceForstall/FixGCKeepAlive

Fix GC.KeepAlive test case

6 years agoMerge pull request #15832 from BruceForstall/DisableNoGCInStress
Bruce Forstall [Fri, 12 Jan 2018 07:26:02 +0000 (23:26 -0800)]
Merge pull request #15832 from BruceForstall/DisableNoGCInStress

Disable NoGC test in GCStress test runs

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to prerelease-02411-04, preview1-26111...
dotnet-maestro-bot [Fri, 12 Jan 2018 02:01:15 +0000 (20:01 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02411-04, preview1-26111-02, preview1-26111-02, master-20180111-0041, respectively (#15807)

6 years ago[Local GC] Introduce standalone eventing design document (#15570)
Sean Gillespie [Fri, 12 Jan 2018 00:43:03 +0000 (16:43 -0800)]
[Local GC] Introduce standalone eventing design document (#15570)

* Typing

* First draft

* Update the doc based on feedback

* Next iteration based on feedback

* Iteration feedback

6 years agoFix GC.KeepAlive test case
Bruce Forstall [Fri, 12 Jan 2018 00:22:55 +0000 (16:22 -0800)]
Fix GC.KeepAlive test case

In the test, as written, a GC could sneak in between the GC.KeepAlive()
call and the subsequent line that checks whether the finalizer
has run, especially in GC stress modes. Simply move the GC.KeepAlive()
call down.

6 years agoDisable NoGC test in GCStress test runs
Bruce Forstall [Thu, 11 Jan 2018 23:28:52 +0000 (15:28 -0800)]
Disable NoGC test in GCStress test runs

6 years agoMerge pull request #15791 from dotnetrt/dstdstsrc
Carol Eidt [Thu, 11 Jan 2018 18:19:40 +0000 (10:19 -0800)]
Merge pull request #15791 from dotnetrt/dstdstsrc

Refactor emitter::IsDstDstSrcAVXInstruction and emitter::IsDstSrcSrcAVXInstruction

6 years ago[Infrastructure/Win] Add C++ header files to Visual Studio clrjit project (#15775)
Jacek Blaszczynski [Thu, 11 Jan 2018 17:33:32 +0000 (18:33 +0100)]
[Infrastructure/Win] Add C++ header files to Visual Studio clrjit project (#15775)

* Add C++ header files to Visual Studio clrjit project

* Add comment about script change impact and usage

6 years agomovhlps categorized as dstdstsrc
Jacek Blaszczynski [Thu, 11 Jan 2018 12:29:26 +0000 (13:29 +0100)]
movhlps categorized as dstdstsrc

6 years agoAllow CALLEE_IS_FORCE_INLINE precedent over CALLEE_DOES_NOT_RETURN (#14586)
Ben Adams [Thu, 11 Jan 2018 09:10:35 +0000 (09:10 +0000)]
Allow CALLEE_IS_FORCE_INLINE precedent over CALLEE_DOES_NOT_RETURN (#14586)

Allow CALLEE_IS_FORCE_INLINE precedent over CALLEE_DOES_NOT_RETURN

6 years agoKeep LowLevelDictionary for CoreRT for now (#15824)
dotnet bot [Thu, 11 Jan 2018 08:56:01 +0000 (00:56 -0800)]
Keep LowLevelDictionary for CoreRT for now (#15824)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoImprove performance for Math.Abs (#15823)
Ben Adams [Thu, 11 Jan 2018 07:58:00 +0000 (07:58 +0000)]
Improve performance for Math.Abs (#15823)

* Improve perf for Math.Abs

* Inline Math.Abs

6 years agoFix non-Windows compile error
Bruce Forstall [Thu, 11 Jan 2018 07:12:02 +0000 (23:12 -0800)]
Fix non-Windows compile error

6 years agoFix Obsolete on ReadOnlySpan Equals and GetHashCode methods (#15820)
Jan Kotas [Thu, 11 Jan 2018 06:06:28 +0000 (22:06 -0800)]
Fix Obsolete on ReadOnlySpan Equals and GetHashCode methods (#15820)

* Fix Obsolete on ReadOnlySpan Equals and GetHashCode methods

* Delete unnecessary CLSCompliant attribute

6 years agoMerge pull request #15814 from CarolEidt/FixObj
Carol Eidt [Thu, 11 Jan 2018 03:57:16 +0000 (19:57 -0800)]
Merge pull request #15814 from CarolEidt/FixObj

Fix change to fgMorphBlockOperand

6 years agoFix ARM GCStress hole with byref write barrier helper
Bruce Forstall [Thu, 11 Jan 2018 00:24:31 +0000 (16:24 -0800)]
Fix ARM GCStress hole with byref write barrier helper

When unrolling a STOREOBJ, we can generate multiple consecutive
byref helper calls. This helper has a unique calling convention
where the dst and src addresses are modified by adding pointer
size to their original value (thus allowing consecutive helper
calls without reloading the dst/src addresses). So, for liveness
purposes, the helper call kills the dst/src values. However, for
GC purposes, it does not, as the registers still contain byref
pointers. We were, in the ARM case, reporting the r0/r1 registers
dead after the first call, so a GC didn't update them, and a
second call updated garbage.

In fixing this, I cleaned up the helper call kill handling a bit.
I also fixed and improved RyuJIT/x86 write barrier kill modeling.

6 years agoFix change to fgMorphBlockOperand
Carol Eidt [Tue, 9 Jan 2018 23:56:25 +0000 (15:56 -0800)]
Fix change to fgMorphBlockOperand

My recent fix broke the `DYN_BLK` case. In addition to checking that types match, we *still* need to check that the sizes match.

This was caught by desktop testing. The test cases are somewhat complex, so I created a smaller repro.

6 years agoFix incremental build by preventing nonchanging writes (#15817)
Victor "Nate" Graf [Wed, 10 Jan 2018 23:25:34 +0000 (15:25 -0800)]
Fix incremental build by preventing nonchanging writes (#15817)

Fix incremental build by preventing non-changing writes in generated ETW source code

6 years agoMerge pull request #15784 from fiigii/hwci
Jarret Shook [Wed, 10 Jan 2018 21:06:39 +0000 (13:06 -0800)]
Merge pull request #15784 from fiigii/hwci

Add new CI mode for Intel HW intrinsics

6 years agoUnderlying CoreCLR support for new string slicing overloads (#15811)
Atsushi Kanamori [Wed, 10 Jan 2018 20:32:07 +0000 (12:32 -0800)]
Underlying CoreCLR support for new string slicing overloads (#15811)

* Underlying CoreCLR support for new string slicing overloads

https://github.com/dotnet/corefx/issues/25254

These add the underlying support for the fast versions of
these extension methods.

* Underlying CoreCLR support for new string slicing overloads

https://github.com/dotnet/corefx/issues/24072

These add the underlying support for the fast versions of
these extension methods.

6 years agoAdd privaterun properties (#15816)
chcosta [Wed, 10 Jan 2018 19:48:17 +0000 (11:48 -0800)]
Add privaterun properties (#15816)

6 years agoMove System.Globalization.CultureData to shared CoreLib partition (#15805)
Jan Kotas [Wed, 10 Jan 2018 13:35:39 +0000 (05:35 -0800)]
Move System.Globalization.CultureData to shared CoreLib partition (#15805)

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26109-03, preview1-26110-01, master-20180...
dotnet-maestro-bot [Wed, 10 Jan 2018 05:45:09 +0000 (23:45 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-26109-03, preview1-26110-01, master-20180109-0023, respectively (#15788)

6 years agoPort servicing fix (#15802)
Tarek Mahmoud Sayed [Wed, 10 Jan 2018 05:08:34 +0000 (21:08 -0800)]
Port servicing fix (#15802)

* Port the servicing fix

This is porting the servcing fix https://github.com/dotnet/coreclr/commit/8ce622d569fae9feb160399db03dc2b86577be1b  with a small change to get rid of unsafe code in CultureData per Jan recommendation

* remove un-needed lines

* rename the variable name as it is not a pointer anymore

6 years agoAdd new CI mode for Intel HW intrinsics
Fei Peng [Wed, 10 Jan 2018 00:57:07 +0000 (16:57 -0800)]
Add new CI mode for Intel HW intrinsics

6 years agoUpdate the document for netcoreapp2.1
Jan Kotas [Wed, 10 Jan 2018 00:37:42 +0000 (16:37 -0800)]
Update the document for netcoreapp2.1

6 years agoUpdate links to nightly .NET Core SDK builds (#15799)
Jan Kotas [Wed, 10 Jan 2018 00:22:19 +0000 (16:22 -0800)]
Update links to nightly .NET Core SDK builds (#15799)

6 years agoMerge pull request #15724 from sdmaclea/PR-ARM64-VECTOR64
Carol Eidt [Wed, 10 Jan 2018 00:00:14 +0000 (16:00 -0800)]
Merge pull request #15724 from sdmaclea/PR-ARM64-VECTOR64

[Arm64] Add Vector64 HW Intrinsic support

6 years agoAdds StringBuilder.Equals(ReadOnlySpan<char>) Api (#15759)
Anirudh Agnihotry [Tue, 9 Jan 2018 23:30:29 +0000 (15:30 -0800)]
Adds StringBuilder.Equals(ReadOnlySpan<char>) Api (#15759)

Adds StringBuilder.Equals(ReadOnlySpan<char>)  Api

6 years agoAddress review feedback
Jacek Blaszczynski [Tue, 9 Jan 2018 21:58:00 +0000 (22:58 +0100)]
Address review feedback

6 years agofix corefx/#26230 (#15792)
Fei Peng [Tue, 9 Jan 2018 19:58:53 +0000 (11:58 -0800)]
fix corefx/#26230 (#15792)

6 years agoFixing https://github.com/aspnet/JitBench/issues/80 (#15764)
José Rivero [Tue, 9 Jan 2018 15:46:39 +0000 (07:46 -0800)]
Fixing https://github.com/aspnet/JitBench/issues/80 (#15764)

- Issue was fixed with this: https://github.com/aspnet/JitBench/pull/82
- Set the UseSharedCompilation=false to avoid that the `VBCSCompiler.exe` stays running.

6 years agoRefactor emitter::IsDstDstSrcAVXInstruction function implementation
Jacek Blaszczynski [Tue, 9 Jan 2018 14:31:46 +0000 (15:31 +0100)]
Refactor emitter::IsDstDstSrcAVXInstruction function implementation

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26108-06, preview1-26109-01, master-20180...
dotnet-maestro-bot [Tue, 9 Jan 2018 05:53:35 +0000 (23:53 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-26108-06, preview1-26109-01, master-20180108-1624, respectively (#15785)

6 years agoUpdate BuildTools, CoreClr, CoreFx to prerelease-02408-01, preview1-26108-02, preview...
dotnet-maestro-bot [Tue, 9 Jan 2018 00:33:25 +0000 (18:33 -0600)]
Update BuildTools, CoreClr, CoreFx to prerelease-02408-01, preview1-26108-02, preview1-26108-02, respectively (#15763)

6 years agoFixed superpmi JIT debugging on desktop build. (#15773)
Mike McLaughlin [Tue, 9 Jan 2018 00:13:27 +0000 (16:13 -0800)]
Fixed superpmi JIT debugging on desktop build. (#15773)

6 years agoUpdate Intel hardware intrinsic APIs (#15601)
Fei Peng [Mon, 8 Jan 2018 20:40:24 +0000 (12:40 -0800)]
Update Intel hardware intrinsic APIs (#15601)

- add missing APIs
- fix generic names
- fix comments
- disambiguate with `using static`

6 years agoJIT: improve return types in cases with spill temps (#15766)
Andy Ayers [Mon, 8 Jan 2018 16:44:14 +0000 (08:44 -0800)]
JIT: improve return types in cases with spill temps (#15766)

If the jit sees that an inlinee has multiple return sites or has gc ref locals
it will choose to return the inline result via a temp. The jit was not assigning
a type to that temp and so losing track of some type information.

So, for inlinees returning ref types, initially type the return spill temp with
the declared return type of the method.

When importing we may discover that particular return sites will return more
specific types. If all discovered return sites agree, we can update the return
type for the spill temp to match the consensus improved type.

This can lead to removal of some type checks and also to devirtualization.

Addresses issues discussed in #9908 and #15743.

6 years agoMerge pull request #15772 from tannergooding/hwintrin-expand
Tanner Gooding [Sun, 7 Jan 2018 20:28:14 +0000 (12:28 -0800)]
Merge pull request #15772 from tannergooding/hwintrin-expand

Updating the x86 HWIntrinsic importer to not inline when returning gtNewMustThrowException

6 years agoUpdating the x86 HWIntrinsic importer to not inline when returning gtNewMustThrowExce...
Tanner Gooding [Sat, 6 Jan 2018 17:07:08 +0000 (09:07 -0800)]
Updating the x86 HWIntrinsic importer to not inline when returning gtNewMustThrowException

6 years agoMove types to shared corelib partition (#15768)
Jan Kotas [Sat, 6 Jan 2018 17:14:22 +0000 (09:14 -0800)]
Move types to shared corelib partition (#15768)

- YieldAwaitable: Fixed readonly mismatch
- Comparer: Made public to fix https://github.com/dotnet/corefx/issues/25973

6 years agoCleanup Activator (#15767)
Justin Van Patten [Sat, 6 Jan 2018 17:12:16 +0000 (09:12 -0800)]
Cleanup Activator (#15767)

6 years agoMerge pull request #15756 from briansull/fix-15671
Brian Sullivan [Sat, 6 Jan 2018 04:17:25 +0000 (20:17 -0800)]
Merge pull request #15756 from briansull/fix-15671

Fix for 15671

6 years agoChange just-in-time debugging registry keys. (#15722)
Mike McLaughlin [Sat, 6 Jan 2018 02:14:21 +0000 (18:14 -0800)]
Change just-in-time debugging registry keys. (#15722)

From "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" to "SOFTWARE\Microsoft\.NETCore\JITDebugging".

6 years agoARM r2r fix. (#15758)
Sergey Andreenko [Sat, 6 Jan 2018 02:11:39 +0000 (18:11 -0800)]
ARM r2r fix. (#15758)

Do not trash CALLEE_SAVED register r4.
Use r12 that is CALLEE_TRASH.

6 years agoJIT: fix decompose long left shift for overshift cases (#15704)
Andy Ayers [Sat, 6 Jan 2018 01:47:09 +0000 (17:47 -0800)]
JIT: fix decompose long left shift for overshift cases (#15704)

Need to reduce the shift amount modulo 64 to match the helper and
`gtFoldExpr` behavior. Since reduced amount must be less than 64
we can remove handling for that case.

Also updating the arm LLSH helper.

Re-enable the test case disabled by #15567 and also enable for arm/arm64.

Closes #15566.

6 years agoProposed fix for 15671
Brian Sullivan [Sat, 6 Jan 2018 01:34:21 +0000 (17:34 -0800)]
Proposed fix for 15671

If we are fetching an Array Length for an array ref that came from global memory
then for CSE safety we must use the conservative value number for both

6 years agoSimplify and unify EnumCalendars interop (#15762)
Jan Kotas [Sat, 6 Jan 2018 01:14:09 +0000 (17:14 -0800)]
Simplify and unify EnumCalendars interop (#15762)

Windows was not allocating GCHandles, switch Unix to do the same.

6 years agoMerge pull request #15639 from tannergooding/expand-hwintrin
Tanner Gooding [Sat, 6 Jan 2018 00:51:01 +0000 (16:51 -0800)]
Merge pull request #15639 from tannergooding/expand-hwintrin

Updating Compiler::impIntrinsic to always expand hardware intrinsics.

6 years agoJIT: fix issue with inline observations (#15713)
Andy Ayers [Sat, 6 Jan 2018 00:41:02 +0000 (16:41 -0800)]
JIT: fix issue with inline observations (#15713)

In DEBUG/CHECK builds the jit tries to keep track of failed inlines.

Because inlines can be rejected "early" (when the parent method
is being imported) as well as "late" (when their call site is encountered
by the inliner) there is a tracking mechanism to convey the early observations
that cause failures to be resurrected later on.

These observations sometimes didn't end up in the inline context, leading
to assertions when dumping methods.

Fix is to add a new way to propagate the earlier observation to the context
that bypasses some of the policy sanity checks and simply record the reason
that the inline failed.

6 years agoMerge pull request #15760 from briansull/fix-budget
Brian Sullivan [Sat, 6 Jan 2018 00:38:04 +0000 (16:38 -0800)]
Merge pull request #15760 from briansull/fix-budget

Fix issue where the unsigned value used for the the VN map select budget could underflow

6 years agoMerge pull request #15716 from CarolEidt/RefactorMinRegCount
Carol Eidt [Sat, 6 Jan 2018 00:22:13 +0000 (16:22 -0800)]
Merge pull request #15716 from CarolEidt/RefactorMinRegCount

Refactor minRegCount and eliminate auto

6 years agoRefactor minRegCount and eliminate auto
Carol Eidt [Thu, 4 Jan 2018 02:55:17 +0000 (18:55 -0800)]
Refactor minRegCount and eliminate auto

When building RefPositions in the TreeNodeInfoInit methods, it is very complex and messy to have the setting of the (debug-only) `minRegCandidateCount` spread all over. Instead, set them for all the RefPositions for a given node after they have been created.

This required the ability to create an iterator marking the end of the list, prior to creating the new ones.

In the process, eliminated the use of auto from lsra.cpp in the interest of strong typing, as well as avoiding the confusion of having things with `RefPosition` in their name that are actually iterators.

These changes originally caused failures with JitStressRegs because `getKillSetForNode()` had side effects - generating Kill `RefPosition`s for `MOD` & `DIV`. This is not actually necessary, and causes problems when the debug-only stress code was calling it *after* all the `RefPosition`s had been created. Also, this had the weird (existing) effect that duplicate kill `RefPosition`s were being generated in the stress case!

6 years agoFix issue where the unsigned value used for the the map select budget could underflow
Brian Sullivan [Fri, 5 Jan 2018 19:43:42 +0000 (11:43 -0800)]
Fix issue where the unsigned value used for the the map select budget could underflow
resulting in an unlimited budget

Changed m_mapSelectBudget and budget to be a signed integer
Added an assert that ensures that the remaining budget is between [0..m_mapSelectBudget]
Change the test for running out of budge to be a <= zero test instead of an equal zero test.

Fixed the bug in the handling of phiArgs in VNForMapSelectWork
by adding a check if we exceeded our budget when processing the first phiArg.

Added a define for DEFAULT_MAP_SELECT_BUDGET

6 years agoCleanup AppDomain (#15748)
Justin Van Patten [Fri, 5 Jan 2018 22:53:21 +0000 (14:53 -0800)]
Cleanup AppDomain (#15748)

Remove dead code and various cleanup.

6 years agoDetect ByRefLike types using attribute (#15745)
Jan Kotas [Fri, 5 Jan 2018 22:44:18 +0000 (14:44 -0800)]
Detect ByRefLike types using attribute (#15745)

* Detect ByRefLike types using attribute and improve error messages for their invalid use

Fixes #11371 and #15458

6 years agofix COMPlus_JitHalt for arm32. (#15761)
Sergey Andreenko [Fri, 5 Jan 2018 22:41:40 +0000 (14:41 -0800)]
fix COMPlus_JitHalt for arm32. (#15761)

6 years agoUpdate BuildTools, CoreClr, CoreFx to prerelease-02404-02, preview1-26105-01, preview...
dotnet-maestro-bot [Fri, 5 Jan 2018 19:53:37 +0000 (13:53 -0600)]
Update BuildTools, CoreClr, CoreFx to prerelease-02404-02, preview1-26105-01, preview1-26105-01, respectively (#15736)

6 years agoAggregateException: Use StringBuilder.AppendFormat (#15747)
Justin Van Patten [Fri, 5 Jan 2018 06:10:46 +0000 (22:10 -0800)]
AggregateException: Use StringBuilder.AppendFormat (#15747)

Use `AppendFormat(...)` instead of `Append(string.Format(...))` and
`AppendLine()` instead of `Append(Environment.NewLine)`.

6 years agoUnix: Specify Ordinal comparison in TimeZoneInfo (#15739)
Justin Van Patten [Fri, 5 Jan 2018 04:43:20 +0000 (20:43 -0800)]
Unix: Specify Ordinal comparison in TimeZoneInfo (#15739)

The default behavior for StartsWith uses the current culture for
comparisons. These should be ordinal.

6 years agoAddress ReflectionTypeLoadException feedback (#15738)
Justin Van Patten [Fri, 5 Jan 2018 04:42:58 +0000 (20:42 -0800)]
Address ReflectionTypeLoadException feedback (#15738)

* Address ReflectionTypeLoadException feedback

Address additional minor feedback from #15711:

 - Share the code for `Message` and `ToString`
 - Remove trailing `NewLine` from resulting string
 - Pass initial base string to `StringBuilder..ctor`
 - Cache the exceptions array in a local (passed-in as a parameter)
 - Move methods below properties
 - Remove trailing whitespace

6 years agoUse string.Contains(char) instead of Contains(string) (#15740)
Justin Van Patten [Fri, 5 Jan 2018 04:42:28 +0000 (20:42 -0800)]
Use string.Contains(char) instead of Contains(string) (#15740)

Now that string.Contains(char) exists, use it in corelib.

6 years agoAdding EnsureCapacity implementation for Dictionary (#15729)
Maryam Ariyan [Fri, 5 Jan 2018 04:23:39 +0000 (23:23 -0500)]
Adding EnsureCapacity implementation for Dictionary (#15729)

Adding EnsureCapacity implementation for Dictionary

6 years agoUpdating the existing HWIntrinsic tests to also test indirect calling via reflection.
Tanner Gooding [Fri, 5 Jan 2018 04:14:03 +0000 (20:14 -0800)]
Updating the existing HWIntrinsic tests to also test indirect calling via reflection.

6 years agoUpdate profiling API status (#15659)
Sung Yoon Whang [Fri, 5 Jan 2018 02:04:07 +0000 (18:04 -0800)]
Update profiling API status (#15659)

* Update profiling API status

* Fix wording for ARM ReJIT issue