platform/upstream/coreclr.git
7 years agoFix FEATURE_INTERPRETER build error
Jonghyun Park [Tue, 1 Aug 2017 13:04:24 +0000 (22:04 +0900)]
Fix FEATURE_INTERPRETER build error

7 years agoEnable RHEL6 and CentOS 6 RID detection in build (#13101)
Jan Vorlicek [Mon, 31 Jul 2017 09:51:13 +0000 (11:51 +0200)]
Enable RHEL6 and CentOS 6 RID detection in build (#13101)

This change adds RHEL6 and CentOS 6 RID detection to build.sh.
These distros don't have the /etc/os-release file and so
we need to use another source - the /etc/redhat-release file

7 years ago Fill freed loader heap chunk with non-zero value (#12731)
Jonghyun Park [Mon, 31 Jul 2017 07:48:16 +0000 (16:48 +0900)]
 Fill freed loader heap chunk with non-zero value (#12731)

* Add FEATURE_LOADER_HEAP_GUARD feature

* Invoke memset only for reclaimed regions

* Enable FEATURE_LOADER_HEAP_GUARD by default

* Insert trap inside UMEntryThunk::Terminate

* Make all exectuable heaps not to zero-initialize itself

Use fZeroInit (instead of fMakeRelazed)

* Add comment

* Revert unnecessary changes

* Add and use 'Poison' method to insert a trap

* Do NOT invoke FlushInstructionCache

* Update comment

* Add comment on ARM Poisoning instruction

* Use X86_INSTR_INT3 instead of 0xCC

7 years agoMerge pull request dotnet/corert#4242 from dotnet/nmirror
Michal Strehovský [Fri, 28 Jul 2017 16:41:38 +0000 (09:41 -0700)]
Merge pull request dotnet/corert#4242 from dotnet/nmirror

Merge master to nmirror

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoRemove extra qualification in member function declaration (#13104)
Xiang Fan [Sun, 30 Jul 2017 16:18:23 +0000 (09:18 -0700)]
Remove extra qualification in member function declaration (#13104)

Fix issues mentioned in https://github.com/dotnet/coreclr/issues/12799

7 years agoFix bug converting BBJ_CALLFINALLY block to BBJ_THROW on ARM32 (#13094)
Bruce Forstall [Sat, 29 Jul 2017 18:46:42 +0000 (11:46 -0700)]
Fix bug converting BBJ_CALLFINALLY block to BBJ_THROW on ARM32 (#13094)

* Fix bug converting BBJ_CALLFINALLY block to BBJ_THROW on ARM32

On ARM32, the target block of a return from a finally (aka, the
"continuation") is marked by a bit, `BBF_FINALLY_TARGET`, that is
used to generate proper code to ensure correct unwinding behavior.
This bit is set in the importer, and maintained through to codegen.
We assert if we attempt to delete a block with this bit. Thus, various
code that deletes dead code needs to call fgClearFinallyTargetBit()
to keep the bit updated.

This bug is a case where very early in morph, a BBJ_CALLFINALLY
block is converted to a BBJ_THROW. We should be able to just call
fgClearFinallyTargetBit(), but that function depends on the predecessor
lists, which in this case, haven't yet been built. So, instead, clear
the bits everywhere, and then recompute them at the end of morph.
This is similar to what is done with the various try/finally
optimizations done at the beginning of morph.

(It's an open question about whether we could avoid setting the bits
at all until just before codegen.)

Fixes VSO468731

No diffs in desktop altjit asm diffs.

* Formatting

7 years agoMerge pull request #12890 from dotnet-maestro-bot/master-UpdateDependencies
Stephen Toub [Sat, 29 Jul 2017 16:49:02 +0000 (12:49 -0400)]
Merge pull request #12890 from dotnet-maestro-bot/master-UpdateDependencies

Update CoreClr, CoreFx to preview2-25529-02, preview2-25529-02, respectively (master)

7 years agoUpdate CoreClr, CoreFx to preview2-25529-02, preview2-25529-02, respectively
dotnet-maestro-bot [Sat, 29 Jul 2017 13:27:03 +0000 (06:27 -0700)]
Update CoreClr, CoreFx to preview2-25529-02, preview2-25529-02, respectively

7 years agoFix typo in comment (#13089)
James Singleton [Sat, 29 Jul 2017 05:47:24 +0000 (06:47 +0100)]
Fix typo in comment (#13089)

integeter -> integer

7 years agoOptimize for idle WorkStealingQueueList (#13007)
Steve MacLean [Sat, 29 Jul 2017 02:08:01 +0000 (22:08 -0400)]
Optimize for idle WorkStealingQueueList (#13007)

When WorkStealingQueue is empty there is an O(N^2)
penalty for searching the empty queues.  Avoid by
stashing global emptiness

7 years agoMerge pull request #13079 from CarolEidt/RyuJITTutorial
Carol Eidt [Fri, 28 Jul 2017 23:32:54 +0000 (16:32 -0700)]
Merge pull request #13079 from CarolEidt/RyuJITTutorial

RyuJIT Tutorial

7 years agoRyuJIT Tutorial
Carol Eidt [Thu, 27 Jul 2017 06:48:10 +0000 (23:48 -0700)]
RyuJIT Tutorial

This is an initial translation of the slides presented at the PLDI 2016
RyuJIT Tutorial into markdown.
The IR dumps need to be updated to reflect IR changes since the tutorial was given.

7 years agoMerge pull request #13075 from stephentoub/string_span_ctor
Stephen Toub [Fri, 28 Jul 2017 22:10:13 +0000 (18:10 -0400)]
Merge pull request #13075 from stephentoub/string_span_ctor

Add new String(ReadOnlySpan<char>) ctor

7 years agoMerge pull request #13095 from pgavlin/VSO469217
Pat Gavlin [Fri, 28 Jul 2017 18:32:17 +0000 (11:32 -0700)]
Merge pull request #13095 from pgavlin/VSO469217

Rerun reg predict on ARM if codegen temps increase the frame size.

7 years agoPR feedback.
Pat Gavlin [Fri, 28 Jul 2017 16:06:41 +0000 (09:06 -0700)]
PR feedback.

7 years agoAdd String(ReadOnlySpan<char>) ctor
Stephen Toub [Fri, 28 Jul 2017 16:00:09 +0000 (12:00 -0400)]
Add String(ReadOnlySpan<char>) ctor

7 years agoAdd generic encoding support to metasig
Jan Kotas [Fri, 28 Jul 2017 15:53:01 +0000 (11:53 -0400)]
Add generic encoding support to metasig

7 years agoFix tier0 flag on default code versions (#13098)
Noah Falk [Fri, 28 Jul 2017 09:26:42 +0000 (02:26 -0700)]
Fix tier0 flag on default code versions (#13098)

Fixes github issue 13019.

7 years agoMerge pull request #13087 from pgavlin/FixGetTargetOfCallARM
Pat Gavlin [Fri, 28 Jul 2017 00:41:56 +0000 (17:41 -0700)]
Merge pull request #13087 from pgavlin/FixGetTargetOfCallARM

Fix `getTargetOfCall` for ARM.

7 years agoRerun reg predict on ARM if codegen temps increase the frame size.
Pat Gavlin [Thu, 27 Jul 2017 22:48:48 +0000 (15:48 -0700)]
Rerun reg predict on ARM if codegen temps increase the frame size.

When compiling for ARM, we need to reserve an additional register if the
frame size exceeds a particular watermark. We currently evaluate whether
or not we need to reserve this register in two places: first before
register prediction and then again during register prediction but after
allocating registers for lclVars. The latter evalutation is used to
check whether or not we can remove the register reservation if the frame
size shrinks due to lclVar register allocation. Unfortunately, its
frame size estimate does not include codegen temps, so we can end up
undoing the register reservation in a frame that requires the reserved
register once the number of temps is estimated.

This change adds an additional check to the register predictor after
temp estimation has occurred and reruns prediction if the frame size has
increased and now requires a register reservation that it did not
beforehand.

Fixes VSO 469217.

7 years agoFix Alpine build (#13052)
Jan Vorlicek [Thu, 27 Jul 2017 22:18:31 +0000 (00:18 +0200)]
Fix Alpine build (#13052)

This change fixes CoreCLR build on Alpine Linux

7 years agoMerge pull request #13032 from jashook/add_arm_stress_scenarios
Jarret Shook [Thu, 27 Jul 2017 19:48:40 +0000 (12:48 -0700)]
Merge pull request #13032 from jashook/add_arm_stress_scenarios

Add arm legacy backend stress jobs

7 years agoMerge pull request #13043 from davmason/profiler_r2r
David Mason [Thu, 27 Jul 2017 19:46:56 +0000 (12:46 -0700)]
Merge pull request #13043 from davmason/profiler_r2r

don't use r2r images when the profiler requests that ngen images are disabled

7 years agoFix `getTargetOfCall` for ARM.
Pat Gavlin [Thu, 27 Jul 2017 19:32:07 +0000 (12:32 -0700)]
Fix `getTargetOfCall` for ARM.

If the instruction we're decoding is not a call, don't attempt to decode
it as if it were an x86 instruction. Instead, just return 0 as on ARM64.

7 years agogcconcurrent config should be obtained from g_pConfig which takes env vars/reg values...
Maoni Stephens [Thu, 27 Jul 2017 19:26:15 +0000 (12:26 -0700)]
gcconcurrent config should be obtained from g_pConfig which takes env vars/reg values into consideration as well (#13078)

7 years agoAdd new Span-based virtual sync Read/Write Stream methods (#13058)
Stephen Toub [Thu, 27 Jul 2017 17:20:48 +0000 (13:20 -0400)]
Add new Span-based virtual sync Read/Write Stream methods (#13058)

* Add virtual Stream.Read/Write Span-based APIs

* Override Span-based Read/Write on MemoryStream

* Override Span-based Read/Write on UnmanagedMemoryStream

* Address PR feedback

7 years agoAdd arm legacy backend stress jobs
jashook [Tue, 25 Jul 2017 21:40:46 +0000 (14:40 -0700)]
Add arm legacy backend stress jobs

7 years agoMerge pull request #13077 from wateret/fix-runtest
Bruce Forstall [Thu, 27 Jul 2017 15:56:37 +0000 (08:56 -0700)]
Merge pull request #13077 from wateret/fix-runtest

Fix print message in runtest.sh

7 years agoFix print message in runtest.sh
Hanjoung Lee [Thu, 27 Jul 2017 05:04:43 +0000 (14:04 +0900)]
Fix print message in runtest.sh

7 years agoMerge pull request #13072 from pgavlin/VSO468730
Pat Gavlin [Thu, 27 Jul 2017 01:35:26 +0000 (18:35 -0700)]
Merge pull request #13072 from pgavlin/VSO468730

Disable folding in genCreateAddrMode under LB-specific circumstances.

7 years agoPR feedback.
Pat Gavlin [Thu, 27 Jul 2017 00:39:54 +0000 (17:39 -0700)]
PR feedback.

7 years agoDisable folding in genCreateAddrMode under LB-specific circumstances.
Pat Gavlin [Wed, 26 Jul 2017 22:54:16 +0000 (15:54 -0700)]
Disable folding in genCreateAddrMode under LB-specific circumstances.

If we are calling this function during emit with `fold = true`, then disable
folding iff the value to be used as the index is already in a register.
Not doing so can cause entire address modes to be folded away, which
leads to asserts and potential SBCG.

Fixes VSO 468730.

7 years agoThese 2 places should be size_t, not int 'cause on 64-bit they can be > int's in...
Maoni Stephens [Wed, 26 Jul 2017 20:23:20 +0000 (13:23 -0700)]
These 2 places should be size_t, not int 'cause on 64-bit they can be > int's in which we have a problem casting them to int's. (#13047)

7 years agocode review feedback
David Mason [Wed, 26 Jul 2017 19:44:15 +0000 (12:44 -0700)]
code review feedback

7 years agoRemove catch filter on Assembly.GetForwardedTypes() (#13054)
Atsushi Kanamori [Wed, 26 Jul 2017 17:39:10 +0000 (10:39 -0700)]
Remove catch filter on Assembly.GetForwardedTypes() (#13054)

To be more consistent with Assembly.GetTypes()

Also removed left over "unsafe" keyword that's
no longer needed.

7 years agoMerge pull request #13045 from pgavlin/GitHub12907
Pat Gavlin [Wed, 26 Jul 2017 16:57:17 +0000 (09:57 -0700)]
Merge pull request #13045 from pgavlin/GitHub12907

Only set flags on a cpBlk source if it is an indir.

7 years ago[Arm64] Enable CPUGroupInfo (#12766)
Steve MacLean [Wed, 26 Jul 2017 16:18:25 +0000 (12:18 -0400)]
[Arm64] Enable CPUGroupInfo (#12766)

7 years agoMerge pull request #13050 from sjsinju/OperIsBinary
Bruce Forstall [Wed, 26 Jul 2017 15:49:02 +0000 (08:49 -0700)]
Merge pull request #13050 from sjsinju/OperIsBinary

[RyuJIT/ARM32] Add GT_PUTARG_SPLIT case on TryGetUse()

7 years agoMerge pull request #13039 from pgavlin/VSO469602
Pat Gavlin [Wed, 26 Jul 2017 13:56:03 +0000 (06:56 -0700)]
Merge pull request #13039 from pgavlin/VSO469602

Admit additional `ADD` patterns in `GenTree:IsFieldAddr`.

7 years agoImplement Assembly.GetForwardedTypes() on CoreCLR (#13001)
Atsushi Kanamori [Wed, 26 Jul 2017 13:28:15 +0000 (06:28 -0700)]
Implement Assembly.GetForwardedTypes() on CoreCLR (#13001)

Fixes https://github.com/dotnet/coreclr/issues/12391

Original approval and specs at
https://github.com/dotnet/corefx/issues/19789

7 years agoAdd GT_PUTARG_SPLIT case on TryGetUse()
sjsujinkim [Wed, 26 Jul 2017 07:36:16 +0000 (16:36 +0900)]
Add GT_PUTARG_SPLIT case on TryGetUse()

7 years agoMerge pull request #13044 from pgavlin/VSO469600
Pat Gavlin [Wed, 26 Jul 2017 04:04:23 +0000 (21:04 -0700)]
Merge pull request #13044 from pgavlin/VSO469600

Do not get the GC layout for small structs in legacy backend.

7 years agoMerge pull request #13040 from pgavlin/VSO469624
Pat Gavlin [Wed, 26 Jul 2017 03:10:23 +0000 (20:10 -0700)]
Merge pull request #13040 from pgavlin/VSO469624

Set `BBF_RUN_RARELY` for a scratch first BB if called count is 0.

7 years agoMerge pull request #13036 from rartemev/tests_build_fix_rest
Roman Artemev [Wed, 26 Jul 2017 02:11:47 +0000 (19:11 -0700)]
Merge pull request #13036 from rartemev/tests_build_fix_rest

Made possible to build all tests on Linux as well.

7 years agoOnly set flags on a cpBlk source if it is an indir.
Pat Gavlin [Wed, 26 Jul 2017 02:02:50 +0000 (19:02 -0700)]
Only set flags on a cpBlk source if it is an indir.

Just what it says on the tin.

Fixes #12907.

7 years agoFormat code.
Pat Gavlin [Wed, 26 Jul 2017 01:45:30 +0000 (18:45 -0700)]
Format code.

7 years agoDo not get the GC layout for small structs in legacy backend.
Pat Gavlin [Wed, 26 Jul 2017 01:15:40 +0000 (18:15 -0700)]
Do not get the GC layout for small structs in legacy backend.

Such structs are too small to contain any GC pointers. Synthesize a GC
layout with a single slot of `TYPE_GC_NONE`.

Fixes VSO 469600.

7 years agoMerge pull request #13035 from pgavlin/VSO468732
Pat Gavlin [Wed, 26 Jul 2017 01:05:20 +0000 (18:05 -0700)]
Merge pull request #13035 from pgavlin/VSO468732

Treat byref-typed uses of int-typed lclVars as type int in LB.

7 years agodon't use r2r images when the profiler requests that ngen images are disabled
David Mason [Tue, 25 Jul 2017 22:56:42 +0000 (15:56 -0700)]
don't use r2r images when the profiler requests that ngen images are disabled

7 years agoSet `BBF_RUN_RARELY` for a scratch first BB if called count is 0.
Pat Gavlin [Wed, 26 Jul 2017 00:39:21 +0000 (17:39 -0700)]
Set `BBF_RUN_RARELY` for a scratch first BB if called count is 0.

Just what it says on the tin.

Fixes VSO 469624.

7 years agoAdmit additional `ADD` patterns in `GenTree:IsFieldAddr`.
Pat Gavlin [Tue, 25 Jul 2017 23:56:50 +0000 (16:56 -0700)]
Admit additional `ADD` patterns in `GenTree:IsFieldAddr`.

We already recognize `ADD(t, CNS_INT)` in this function. This change
extends the relevant logic to `ADD(CNS_INT, t)` iff the first operand is
a handle.

7 years agoCompletelly fix build of tests on Linux
Roman Artemev [Tue, 25 Jul 2017 01:48:03 +0000 (18:48 -0700)]
Completelly fix build of tests on Linux

7 years agoEnable Ubuntu's 1710 BuilsTests
JC Aguilera [Tue, 25 Jul 2017 23:33:22 +0000 (16:33 -0700)]
Enable Ubuntu's 1710 BuilsTests

Enable Ubuntu's 1710 BuilsTests

7 years agoTreat byref-typed uses of int-typed lclVars as type int in LB.
Pat Gavlin [Tue, 25 Jul 2017 22:43:05 +0000 (15:43 -0700)]
Treat byref-typed uses of int-typed lclVars as type int in LB.

This is consistent with the behvaior of both JIT32 and RyuJIT. This
resolves an assertion originating from the following scenario:

1. The input IL contains a lclVar of type `Foo*`, which the JIT imports as
   `TYP_I_IMPL` (which is `TYP_INT` in this case).
2. This lclVar is used as the `this` argument to a number of method calls.
   This is legal as per ECMA-335 section III.3.19 ("Correct CIL also allows
   a native int to be passed as a byref (&); in which case following the
   store the value will be tracked by garbage collection.")
3. All of the method calls to which this lclVar is passed as a byref are
   inlined. This produces many uses of the lclVar as a byref (i.e. we see
   nodes like `lclVar V06 byref` even though V06's varDsc has type int).
4. The lclVar is assigned a register `r`. At its first appearance--which is
   the first occasion in which it is loaded into this register--it is used
   as `TYP_BYREF`. When the code generator processes this appearance, it
   first sets the appropriate bit for `r` in `gcInfo.gcRegByrefSetCur`
   (`gcInfo.gcMarkRegPtrVal`, called by `genCodeForTree_REG_VAR1`) and then
   sets the appropriate bit for `r` in `regSet.rsMaskVars`
   (`genUpdateLife`).
5. The lclVar is used as `TYP_INT` as the operand to a `GT_RETURN` node.
   When the code generator processes this appearance, it attempts to update
   the GC-ness of `r` by calling `gcInfo.gcMarkRegPtrVal` (again via
   `genCodeForTree_REG_VAR1`). This function, though, explicitly excludes
   registers that contain live variables from its update, so `r` remains in
   `gcInfo.gcRegByrefSetCur` after this call. After calling
   `gcMarkRegPtrVal`, `genCodeForTree_REG_VAR1` calls `genUpdateLife`,
   which removes the the lclVar from `regSet.rsMaskVars`.
6. An assertion intended to verify that the only registers that are live
   after processing a statement are registers that contain lclVars fires,
   as `gcRegByrefSetCur` still contains `r`.

Fixes VSO 468732.

7 years agoCleanup GC *_STAT bitrot (#12772)
Steve MacLean [Tue, 25 Jul 2017 22:25:31 +0000 (18:25 -0400)]
Cleanup GC *_STAT bitrot (#12772)

* Cleanup GC *_STAT bitrot

* Fixup per review

7 years agoRevert "Fixes for issue 12982 Android cross-build fails when compiling cee_wks (...
Jan Kotas [Tue, 25 Jul 2017 22:17:31 +0000 (00:17 +0200)]
Revert "Fixes for issue 12982 Android cross-build fails when compiling cee_wks (#12986)" (#13031)

This reverts commit 2e7326df470bea696699cc7c812ee56dd0b470b9.

7 years agoChange after correct version of the file
JC Aguilera [Tue, 25 Jul 2017 22:12:34 +0000 (15:12 -0700)]
Change after correct version of the file

7 years agoMerge branch 'master' into enableUbuntu1710-1
JC Aguilera [Tue, 25 Jul 2017 22:01:31 +0000 (15:01 -0700)]
Merge branch 'master' into enableUbuntu1710-1

7 years agoMerge pull request #13030 from wtgodbe/AddWindowsJobs
William Godbe [Tue, 25 Jul 2017 21:58:56 +0000 (14:58 -0700)]
Merge pull request #13030 from wtgodbe/AddWindowsJobs

Add Helix jobs for Nano, Win7, Win8

7 years agoEnable Ubuntu's 1710 BuilsTests
JC Aguilera [Tue, 25 Jul 2017 21:57:26 +0000 (14:57 -0700)]
Enable Ubuntu's 1710 BuilsTests

After adding Helix Queue for Ubuntu1710 we are enabling BuildTest for this SKU.

This completes: https://github.com/dotnet/core-eng/issues/1307

7 years agoAdd Helix jobs for Nano, Win7, Win8
wtgodbe [Tue, 25 Jul 2017 20:28:49 +0000 (13:28 -0700)]
Add Helix jobs for Nano, Win7, Win8

7 years agoEnable BuildTest in Windows Server Core
JC Aguilera [Tue, 25 Jul 2017 19:55:37 +0000 (12:55 -0700)]
Enable BuildTest in Windows Server Core

Enable BuildTest in Windows Server Core

7 years agoMerge pull request #13011 from BruceForstall/Fix12886
Bruce Forstall [Tue, 25 Jul 2017 17:56:52 +0000 (10:56 -0700)]
Merge pull request #13011 from BruceForstall/Fix12886

Handle error case when looking for reg pair

7 years agotypo (#13026)
github-john-doe [Tue, 25 Jul 2017 17:51:30 +0000 (10:51 -0700)]
typo (#13026)

7 years agoPerfMap instrument stubs (#12437)
Steve MacLean [Tue, 25 Jul 2017 15:57:24 +0000 (11:57 -0400)]
PerfMap instrument stubs (#12437)

* PerfMap instrument stubs

* Perfmap fix segfault

7 years agoIgnore specified signal when using perf (#12436)
Steve MacLean [Tue, 25 Jul 2017 15:54:57 +0000 (11:54 -0400)]
Ignore specified signal when using perf (#12436)

* Ignore SIGRTMAX when using perf

Add a do nothing signal handler to SIGRTMAX
for profiling purposes.  Allows synchronization
point in injection into the profile

* Add COMPlus_PerfMapIgnoreSignal

* Fix nits per review

7 years agoMerge pull request #13017 from benaadams/valuetask
Stephen Toub [Tue, 25 Jul 2017 15:54:19 +0000 (11:54 -0400)]
Merge pull request #13017 from benaadams/valuetask

ValueTask .ctor throw to Helper

7 years agoMerge pull request #13005 from AndyAyersMS/FixPDepSimd12Issue
Andy Ayers [Tue, 25 Jul 2017 15:41:01 +0000 (08:41 -0700)]
Merge pull request #13005 from AndyAyersMS/FixPDepSimd12Issue

Don't map P-DEP SIMD12 local vars to SIMD16 on x64

7 years agoFixes for issue 12982 Android cross-build fails when compiling cee_wks (#12986)
Cyd Haselton [Tue, 25 Jul 2017 13:01:07 +0000 (08:01 -0500)]
Fixes for issue 12982 Android cross-build fails when compiling cee_wks (#12986)

* Fixes for issue 12982 Android cross-build fails when compiling cee_wks

Added conditional (__ANDROID__) to volatile.h
Added compile option to android/arm64/toolchain.cmake

* Changed ANDROID conditional to compiler and __atomic_load

Changed conditional to exclude volatile to __CLANG__ and __has_builtin(__atomic_load)

* Fixed Clang conditional

* Recommended changes to volatile.h and toolchain.cmake

* Added separate conditional for detecting builtin __atomic_load

7 years agoDeleting the non-shared implementation of `System.Single` and `System.Double`.
Tanner Gooding [Fri, 21 Jul 2017 05:45:40 +0000 (22:45 -0700)]
Deleting the non-shared implementation of `System.Single` and `System.Double`.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoMerge pull request #12193 from noahfalk/tiered_jitting_m2
Noah Falk [Tue, 25 Jul 2017 05:59:47 +0000 (22:59 -0700)]
Merge pull request #12193 from noahfalk/tiered_jitting_m2

7 years agoValueTask .ctor throw to Helper
Ben Adams [Tue, 25 Jul 2017 02:23:50 +0000 (03:23 +0100)]
ValueTask .ctor throw to Helper

7 years agoMerge pull request #13012 from pgavlin/VSO468726
Pat Gavlin [Tue, 25 Jul 2017 02:15:48 +0000 (19:15 -0700)]
Merge pull request #13012 from pgavlin/VSO468726

Fix `fgOrderBlockOps`.

7 years agoAdd the runtime code versioning feature
noahfalk [Tue, 25 Jul 2017 00:38:30 +0000 (17:38 -0700)]
Add the runtime code versioning feature

This makes tiered compilation work properly with profiler ReJIT, and positions the runtime to integrate other versioning related features together in the future. See the newly added code-versioning design-doc in this commit for more information.

Breaking changes for profilers: See code-versioning-profiler-breaking-changes.md for more details.

7 years agoAddressing Will's comments
JC Aguilera [Mon, 24 Jul 2017 23:41:23 +0000 (16:41 -0700)]
Addressing Will's comments

7 years agoMerge pull request #12991 from hseok-oh/ryujit/fix_11783_2
Bruce Forstall [Mon, 24 Jul 2017 23:31:48 +0000 (16:31 -0700)]
Merge pull request #12991 from hseok-oh/ryujit/fix_11783_2

[RyuJIT/ARM32] Morphing 1-field HFA struct argument and fix assertion

7 years agoEnable BuildTest in Windows Server Core
JC Aguilera [Mon, 24 Jul 2017 23:16:08 +0000 (16:16 -0700)]
Enable BuildTest in Windows Server Core

Windows Server Core was just created so now enabling work to be processed in this image

7 years agoMerge pull request #12996 from hseok-oh/ryujit/fix_12626
Bruce Forstall [Mon, 24 Jul 2017 22:53:41 +0000 (15:53 -0700)]
Merge pull request #12996 from hseok-oh/ryujit/fix_12626

[RyuJIT/ARM32] Fix stack overflow on codegen phase

7 years agoFix `fgOrderBlockOps`.
Pat Gavlin [Mon, 24 Jul 2017 22:49:34 +0000 (15:49 -0700)]
Fix `fgOrderBlockOps`.

This function was incorrect when the target was a `DYN_BLK` with
`gtEvalSizeFirst` set to `true`.

Fixes VSO 468726.

7 years agoSimplify SHM-allocator (#12815)
gbalykov [Mon, 24 Jul 2017 22:37:38 +0000 (01:37 +0300)]
Simplify SHM-allocator (#12815)

* Simplify SHM-allocator

* Remove SHMNULL and NULLSharedID

7 years agoHandle error case when looking for reg pair
Bruce Forstall [Mon, 24 Jul 2017 22:31:33 +0000 (15:31 -0700)]
Handle error case when looking for reg pair

When performing unsigned up-cast to long, if needReg was computed
with exactly 2 bits, then rsFindRegPairNo() is called to find the
corresponding reg pair. This can fail if one of the needReg bits
is in the reserved set (rsMaskResvd), as was the case in this test
on ARM for R10.

Add logic to handle this error return. The same logic already existed
in the signed cast case.

Fixes #12886

7 years agoCreate Windows PDBs from Portable PDBs during symbol archive (#12796)
Davis Goodin [Mon, 24 Jul 2017 22:06:44 +0000 (17:06 -0500)]
Create Windows PDBs from Portable PDBs during symbol archive (#12796)

* Update BuildTools to 2.0.0-prerelease-01812-02

* Use "GetAllSymbolFilesToPublish" target

"UnzipSymbolPackagesForPublish" only unzips. "GetAllSymbolFilesToPublish" is a new target that unzips then generates Windows PDBs. This allows us to index Windows PDBs on symweb even when not archiving.

7 years agoDon't call AssemblyResolve event for CoreLib resources (#12999)
Koundinya Veluri [Mon, 24 Jul 2017 20:17:16 +0000 (13:17 -0700)]
Don't call AssemblyResolve event for CoreLib resources (#12999)

* Don't call AssemblyResolve event for CoreLib resources

Part of fix for #12668:
- CoreLib resource lookup should not raise the AssemblyResolve event because a misbehaving handler could cause an infinite recursion check and fail-fast to be triggered when the resource is not found, as the issue would repeat when reporting that error
- A handler could misbehave by returning an assembly that does not match the requested identity or by throwing

* Address feedback

7 years agoMerge pull request #12943 from jashook/fix_8093
Jarret Shook [Mon, 24 Jul 2017 17:17:57 +0000 (10:17 -0700)]
Merge pull request #12943 from jashook/fix_8093

For LEGACY_BACKEND ARM32 do not overwrite 1 element HFA type

7 years agoMerge pull request #13004 from stephentoub/move_valuetask
Stephen Toub [Mon, 24 Jul 2017 16:44:05 +0000 (12:44 -0400)]
Merge pull request #13004 from stephentoub/move_valuetask

Move ValueTask and friends to corelib

7 years agoMerge pull request #12995 from 303248153/170724_fix_comment
Bruce Forstall [Mon, 24 Jul 2017 16:17:10 +0000 (09:17 -0700)]
Merge pull request #12995 from 303248153/170724_fix_comment

[JIT] Fix comment in optimizer.cpp:optOptimizeBools

7 years agoMerge pull request #12975 from alpencolt/ryu-arm-casts-nyi
Bruce Forstall [Mon, 24 Jul 2017 16:15:20 +0000 (09:15 -0700)]
Merge pull request #12975 from alpencolt/ryu-arm-casts-nyi

[RyuJIT/ARM32] Removed int <-> float casts related NYIs.

7 years agoMerge pull request #12963 from BruceForstall/Fix12904
Bruce Forstall [Mon, 24 Jul 2017 16:14:07 +0000 (09:14 -0700)]
Merge pull request #12963 from BruceForstall/Fix12904

Fix a case where a reg is spilled before being freed, leading to assert

7 years agoMerge pull request #12998 from github-john-doe/master
Bruce Forstall [Mon, 24 Jul 2017 16:11:22 +0000 (09:11 -0700)]
Merge pull request #12998 from github-john-doe/master

typo

7 years agoDon't map P-DEP SIMD12 local vars to SIMD16 on x64
Andy Ayers [Mon, 24 Jul 2017 14:54:44 +0000 (07:54 -0700)]
Don't map P-DEP SIMD12 local vars to SIMD16 on x64

P-DEP local vars are logically independent locals, but physically embeded
in some structure with fixed layout. So they cannot be made larger.

We already had safeguards for ths in place for x86 so extend these to kick
in for x64 too.

Also update Lowering's checker to account for the fact that some SIMD12s
can persist in x64.

Fixes #12950.

7 years agoA few minor perf tweaks
Stephen Toub [Mon, 24 Jul 2017 14:16:26 +0000 (10:16 -0400)]
A few minor perf tweaks

- Update ValueTask to use IsCompletedSynchronously: IsCompletedSynchronously is faster/slimmer than Status == RanToCompletion.
- Remove a few readonly's causing unnecessary struct copies

7 years agotypo
John Doe [Mon, 24 Jul 2017 14:15:39 +0000 (07:15 -0700)]
typo

7 years agoAdd ValueTask and friends to corelib
Stephen Toub [Mon, 24 Jul 2017 14:08:38 +0000 (10:08 -0400)]
Add ValueTask and friends to corelib

Files are copied without modification from corefx.

We will subsequently add these to the System.Runtime contract and specialize the System.Threading.Tasks.Extensions package to forward to System.Runtime on netcoreapp.

7 years ago[RyuJIT/ARM32] Fix stack overflow on codegen phase
Hyeongseok Oh [Mon, 24 Jul 2017 09:31:45 +0000 (18:31 +0900)]
[RyuJIT/ARM32] Fix stack overflow on codegen phase

Fix stack overflow on codegen phase
Array size problem for reference map in genPutArgStk()

7 years agofix comment in optimizer.cpp:optOptimizeBools
dudes-come [Mon, 24 Jul 2017 08:04:16 +0000 (16:04 +0800)]
fix comment in optimizer.cpp:optOptimizeBools

7 years ago[RyuJIT/ARM32] Morphing 1-field HFA struct argument and fix assertion
Hyeongseok Oh [Mon, 24 Jul 2017 04:51:13 +0000 (13:51 +0900)]
[RyuJIT/ARM32] Morphing 1-field HFA struct argument and fix assertion

- Morphing 1-field HFA struct argument as local field
- Fix assertion on legacy JIT

7 years agoUpdate android build script with correct package versions (#12985)
Cyd Haselton [Sun, 23 Jul 2017 13:06:45 +0000 (08:06 -0500)]
Update android build script with correct package versions (#12985)

7 years agoMerge pull request #12979 from pgavlin/GitHub12935
Pat Gavlin [Sun, 23 Jul 2017 00:27:05 +0000 (17:27 -0700)]
Merge pull request #12979 from pgavlin/GitHub12935

Lock the the dest reg in `inst_RV_TT` if necessary.

7 years agoMerge pull request #12984 from dotnet/revert-12951-ryujit/fix_11783
Pat Gavlin [Sat, 22 Jul 2017 20:47:26 +0000 (13:47 -0700)]
Merge pull request #12984 from dotnet/revert-12951-ryujit/fix_11783

Revert "[RyuJIT/ARM32] Morphing 1-field HFA struct argument"

7 years agoRevert "[RyuJIT/ARM32] Morphing 1-field HFA struct argument"
Pat Gavlin [Sat, 22 Jul 2017 18:05:32 +0000 (11:05 -0700)]
Revert "[RyuJIT/ARM32] Morphing 1-field HFA struct argument"