platform/upstream/coreclr.git
6 years ago[Arm64/Arm] Favor emitActualTypeSize for non-memory (#14046)
Steve MacLean [Sat, 23 Sep 2017 01:03:40 +0000 (21:03 -0400)]
[Arm64/Arm] Favor emitActualTypeSize for non-memory (#14046)

* [Arm64/Arm] Favor emitActualTypeSize for non-memory

Register ops size is generally referred to
by emitActualTypeSize.  'Actual' size refers to the
size in register as opposed to size in memory

* [Arm64] Remove bogus CQ ToDo

* Fix formatting

6 years agoMerge pull request #14109 from hseok-oh/ryujit/fix_13738
Bruce Forstall [Sat, 23 Sep 2017 00:39:15 +0000 (17:39 -0700)]
Merge pull request #14109 from hseok-oh/ryujit/fix_13738

[RyuJIT/ARM32] JitStress=1 test: padding local variable

6 years agoMerge pull request #14118 from rartemev/devdiv_491206
Roman Artemev [Sat, 23 Sep 2017 00:11:38 +0000 (17:11 -0700)]
Merge pull request #14118 from rartemev/devdiv_491206

Fixed return constant value cache on 32 bit VMs

6 years agoMerge pull request #14117 from mikedn/earyprop-neg-length
Bruce Forstall [Sat, 23 Sep 2017 00:09:09 +0000 (17:09 -0700)]
Merge pull request #14117 from mikedn/earyprop-neg-length

Don't early-propagate negative array lengths

6 years ago[Arm64] Add Floor/Ceiling intrinsics (#14132)
Steve MacLean [Fri, 22 Sep 2017 23:59:22 +0000 (19:59 -0400)]
[Arm64] Add Floor/Ceiling intrinsics (#14132)

* [Arm64] Add Floor/Ceiling intrinsics

* Templatize emitActualTypeSize

6 years agoCreate dotnet deployment and acquisition size on disk test (#13956)
Victor "Nate" Graf [Fri, 22 Sep 2017 23:47:15 +0000 (16:47 -0700)]
Create dotnet deployment and acquisition size on disk test (#13956)

* [WIP] First version of SoDBench. Contains bugs

* [WIP] Move SoDBench files and increase error checking

* [WIP] Add NugetConfig to enable pulling packages from myget

* [WIP] Remove unhelpful templates and add back oses

* [WIP] Add ability to specify channel

* [WIP] Improve CSV writing

* [WIP] Improve options parsing

* Fix syntax error

* [WIP] Add test leg to perf.groovy

* [WIP] Adjust label to target an existing machine pool

* Change label to run on virtual machine

* Use setMachineAffinity

* Add ASP.NET-Core feed and deafult to master as the channel

* Change channel to master in perf.groovy

* Move NuGet.Config up a directory so it only needs to be written once

* Add CommandLine to external dependencies

* Remove CommandLine as it is now in external.depproj

* Adjust wget command to work more consistantly

* Change calculation of relative paths for clarity

* Set job to run daily instead of on push/PR

* Build sodbench on job run

* Remove MSBuild from job

* Fix quote placement

* Change metadata to be more accurate

* Add rollup totals for each measured category

* Refactor to use a tree rather than a dictionary

* Limit report size

* Publish in release configuration

6 years ago[Arm64] Implement JCC/SETCC nodes (#14101)
Steve MacLean [Fri, 22 Sep 2017 23:11:33 +0000 (19:11 -0400)]
[Arm64] Implement JCC/SETCC nodes (#14101)

* [Arm64] Implement JCC/SETCC nodes

* Fix formatting

6 years agoMerge pull request #13167 from alpencolt/ryu-arm-remove-lea-0-offset
Bruce Forstall [Fri, 22 Sep 2017 22:13:32 +0000 (15:13 -0700)]
Merge pull request #13167 from alpencolt/ryu-arm-remove-lea-0-offset

[RyuJIT/ARM32] Remove LEA[b+0]

6 years agoAdded IntegralValue() method
Roman Artemev [Fri, 22 Sep 2017 20:51:10 +0000 (13:51 -0700)]
Added IntegralValue() method

6 years agoMerge pull request #14139 from sdmaclea/PR-ARM64-EMIT-CBxZ-TBxZ
Brian Sullivan [Fri, 22 Sep 2017 21:34:47 +0000 (14:34 -0700)]
Merge pull request #14139 from sdmaclea/PR-ARM64-EMIT-CBxZ-TBxZ

[Arm64] Add emitters for cbz, cbnz, tbz, and tbnz

6 years agoMerge pull request #14140 from jashook/pri0_arm_jobs
Jarret Shook [Fri, 22 Sep 2017 21:16:33 +0000 (14:16 -0700)]
Merge pull request #14140 from jashook/pri0_arm_jobs

Set default arm jobs to pri0

6 years agoFix incorrect use of local var
jashook [Fri, 22 Sep 2017 21:02:55 +0000 (14:02 -0700)]
Fix incorrect use of local var

6 years agoFix build logic as well
jashook [Fri, 22 Sep 2017 20:40:53 +0000 (13:40 -0700)]
Fix build logic as well

6 years agoDisable tracing tests on Windows at runtime, not build (#14127)
Victor "Nate" Graf [Fri, 22 Sep 2017 20:30:02 +0000 (13:30 -0700)]
Disable tracing tests on Windows at runtime, not build (#14127)

6 years agoFileStream should not truncate files when opening fails. Fixes dotnet/corefx#24081...
Kasper Fabæch Brandt [Fri, 22 Sep 2017 19:51:00 +0000 (21:51 +0200)]
FileStream should not truncate files when opening fails. Fixes dotnet/corefx#24081 (#14043)

6 years agoMerge pull request #14142 from sdmaclea/PR-ARM64-FIX-TYPO
Brian Sullivan [Fri, 22 Sep 2017 18:27:12 +0000 (11:27 -0700)]
Merge pull request #14142 from sdmaclea/PR-ARM64-FIX-TYPO

[Arm64] Fix typo

6 years ago[Arm64] Fix typo
Steve MacLean [Fri, 22 Sep 2017 17:50:01 +0000 (13:50 -0400)]
[Arm64] Fix typo

6 years agoMerge pull request #14141 from jashook/fix_post_build_typo
Jarret Shook [Fri, 22 Sep 2017 17:40:42 +0000 (10:40 -0700)]
Merge pull request #14141 from jashook/fix_post_build_typo

fix arm64_post_build typo

6 years agofix arm64_post_build typo
jashook [Fri, 22 Sep 2017 17:38:59 +0000 (10:38 -0700)]
fix arm64_post_build typo

6 years agoMerge pull request #14050 from mikedn/earlyprop-range-check
Brian Sullivan [Fri, 22 Sep 2017 17:32:04 +0000 (10:32 -0700)]
Merge pull request #14050 from mikedn/earlyprop-range-check

Remove constant range checks in earlyprop

6 years agoSet default arm jobs to pri0
jashook [Fri, 22 Sep 2017 16:34:42 +0000 (09:34 -0700)]
Set default arm jobs to pri0

6 years agoRemove ResId class (#14135)
Dan Moseley [Fri, 22 Sep 2017 16:31:24 +0000 (09:31 -0700)]
Remove ResId class (#14135)

6 years agoMerge pull request #14129 from BruceForstall/FixArm64TriggerString
Bruce Forstall [Fri, 22 Sep 2017 16:24:35 +0000 (09:24 -0700)]
Merge pull request #14129 from BruceForstall/FixArm64TriggerString

Fix ARM64 trigger strings to match job names

6 years ago[Arm64] Add emitters for cbz, cbnz, tbz, or tbnz
Steve MacLean [Tue, 19 Sep 2017 16:39:20 +0000 (12:39 -0400)]
[Arm64] Add emitters for cbz, cbnz, tbz, or tbnz

6 years agoFixing `FloatingPointUtils.round` to include the fix for #12137 (#14133)
Tanner Gooding [Fri, 22 Sep 2017 10:47:24 +0000 (03:47 -0700)]
Fixing `FloatingPointUtils.round` to include the fix for #12137 (#14133)

6 years agoFix SIGSEGV in EventPipe on Shutdown (#14123)
Brian Robbins [Fri, 22 Sep 2017 08:17:48 +0000 (01:17 -0700)]
Fix SIGSEGV in EventPipe on Shutdown (#14123)

* Fix a crash that occurs when a provider is registered after the configuration object has been destroyed.

* Code review feedback.

6 years agoImprove thread pool worker thread's spinning for work (#13921)
Koundinya Veluri [Fri, 22 Sep 2017 07:17:16 +0000 (00:17 -0700)]
Improve thread pool worker thread's spinning for work (#13921)

Improve thread pool worker thread's spinning for work

Closes https://github.com/dotnet/coreclr/issues/5928

Replaced UnfairSemaphore with a new implementation in CLRLifoSemaphore
- UnfairSemaphore had a some benefits:
  - It tracked the number of spinners and avoids waking up waiters as long as the signal count can be satisfied by spinners
  - Since spinners get priority over waiters, that's the main "unfair" part of it that allows hot threads to remain hot and cold threads to remain cold. However, waiters are still released in FIFO order.
  - Spinning helps with throughput when incoming work is bursty
- All of the above benefits were retained in CLRLifoSemaphore and some were improved:
  - Similarly to UnfairSemaphore, the number of spinners are tracked and preferenced to avoid waking up waiters
  - For waiting, on Windows, a I/O completion port is used since it releases waiters in LIFO order. For Unix, added a prioritized wait function to the PAL to register waiters in reverse order for LIFO release behavior. This allows cold waiters to time out more easily since they will be used less frequently.
  - Similarly to SemaphoreSlim, the number of waiters that were signaled to wake but have not yet woken is tracked to help avoid waking up an excessive number of waiters
  - Added some YieldProcessorNormalized() calls to the spin loop. This avoids thrashing on Sleep(0) by adding a delay to the spin loop to allow it to be more effective when there are no threads to switch to, or the only other threads to switch to are other similar spinners.
  - Removed the processor count multiplier on the max spin count and retuned the default max spin count. The processor count multiplier was causing excessive CPU usage on machines with many processors.

6 years agofix checkLclVarSemantics (#14053)
Sergey Andreenko [Fri, 22 Sep 2017 04:30:15 +0000 (21:30 -0700)]
fix checkLclVarSemantics (#14053)

* extract CheckLclVarSemantics from CheckLIR.

* add a test that shows the silent bad execution.

* fix the checker.

* add the test to the exclude list.

* rename consumed to used

6 years agoMerge pull request #13105 from stephentoub/asyncmem
Stephen Toub [Fri, 22 Sep 2017 01:49:15 +0000 (18:49 -0700)]
Merge pull request #13105 from stephentoub/asyncmem

Reduce allocations when async methods yield

6 years agoFixed test return value
Roman Artemev [Fri, 22 Sep 2017 01:07:33 +0000 (18:07 -0700)]
Fixed test return value

6 years agoMerge pull request #14126 from jashook/use_new_x64_client
Jarret Shook [Fri, 22 Sep 2017 00:49:34 +0000 (17:49 -0700)]
Merge pull request #14126 from jashook/use_new_x64_client

Add support for priority and update x64 client

6 years agoFixed formating
Roman Artemev [Thu, 21 Sep 2017 23:37:38 +0000 (16:37 -0700)]
Fixed formating

6 years agoHandle long value in MergedReturns optimization
Roman Artemev [Thu, 21 Sep 2017 23:20:27 +0000 (16:20 -0700)]
Handle long value in MergedReturns optimization

6 years agoAdded microtest
Roman Artemev [Thu, 21 Sep 2017 21:45:01 +0000 (14:45 -0700)]
Added microtest

6 years agoFixed return constant value cache on 32 bit VMs
Roman Artemev [Thu, 21 Sep 2017 20:16:49 +0000 (13:16 -0700)]
Fixed return constant value cache on 32 bit VMs

6 years agoFix ARM64 trigger strings to match job names
Bruce Forstall [Thu, 21 Sep 2017 23:47:41 +0000 (16:47 -0700)]
Fix ARM64 trigger strings to match job names

In particular, add "Cross" to the trigger strings.

6 years agoMerge pull request #14108 from jashook/spmi_get_helper
Jarret Shook [Thu, 21 Sep 2017 22:59:06 +0000 (15:59 -0700)]
Merge pull request #14108 from jashook/spmi_get_helper

Fix superPMI getHelperFunction

6 years agoAdd support for priority and update x64 client
jashook [Thu, 21 Sep 2017 22:55:18 +0000 (15:55 -0700)]
Add support for priority and update x64 client

6 years agoUpdate stub dispatch hidden argument convention for CoreRT (#14120)
Jan Kotas [Thu, 21 Sep 2017 21:53:29 +0000 (14:53 -0700)]
Update stub dispatch hidden argument convention for CoreRT (#14120)

6 years ago[Jit] fgMorphCast does not reset GTF_ASG (#14102)
Sergey Andreenko [Thu, 21 Sep 2017 21:45:07 +0000 (14:45 -0700)]
[Jit] fgMorphCast does not reset GTF_ASG (#14102)

add repro for DevDiv_495792.
fix the issue.

6 years agoMerge pull request #14107 from sdmaclea/PR-ARM64-REMOVE-DEAD
Bruce Forstall [Thu, 21 Sep 2017 20:37:09 +0000 (13:37 -0700)]
Merge pull request #14107 from sdmaclea/PR-ARM64-REMOVE-DEAD

[Arm64] Remove LegacyBackend defines

6 years agoDon't early-propagate negative array lengths
Mike Danes [Thu, 21 Sep 2017 19:50:16 +0000 (22:50 +0300)]
Don't early-propagate negative array lengths

There's no need for that and if the negative array length is not representable in 32 bit we'll end up producing a GT_CNS_INT node that has TYP_INT and a 64 bit value.

That's because the original type (always TYP_INT) of the GT_ARR_LENGTH is preserved when changing the node to GT_CNS_INT.

6 years agoRemove constant range checks in earlyprop
Mike Danes [Fri, 18 Aug 2017 20:58:30 +0000 (23:58 +0300)]
Remove constant range checks in earlyprop

6 years ago[RyuJIT] Regression test #13057
Alexander Soldatov [Wed, 2 Aug 2017 13:17:32 +0000 (16:17 +0300)]
[RyuJIT] Regression test #13057

LEA[b+0] was not eliminated on ARM which cause assertion on code generation

6 years agoFix formatting
Steve MacLean [Thu, 21 Sep 2017 15:04:26 +0000 (11:04 -0400)]
Fix formatting

6 years ago[RyuJIT/ARM32] JitStress=1 test: padding local variable
Hyeongseok Oh [Thu, 21 Sep 2017 07:18:30 +0000 (16:18 +0900)]
[RyuJIT/ARM32] JitStress=1 test: padding local variable

JitStress=1 test make padding offset for local variable.
On ARM32, padding value must support stack alignment.

6 years agoMerge branch 'master' of https://github.com/dotnet/coreclr
Tomas Weinfurt [Thu, 21 Sep 2017 07:03:16 +0000 (00:03 -0700)]
Merge branch 'master' of https://github.com/dotnet/coreclr

6 years agoMerge pull request #14099 from JosephTremoulet/LiteralBase
Joseph Tremoulet [Thu, 21 Sep 2017 02:09:01 +0000 (22:09 -0400)]
Merge pull request #14099 from JosephTremoulet/LiteralBase

Change base of literals in k-nucleotide-9

6 years agoFix superPMI getHelperFunction
jashook [Wed, 20 Sep 2017 23:56:31 +0000 (16:56 -0700)]
Fix superPMI getHelperFunction

6 years ago[Arm64] Remove LegacyBackend defines
Steve MacLean [Wed, 20 Sep 2017 23:05:43 +0000 (19:05 -0400)]
[Arm64] Remove LegacyBackend defines

6 years agoMerge pull request #14039 from OpenVisionLabs/typos
Bruce Forstall [Wed, 20 Sep 2017 22:02:00 +0000 (15:02 -0700)]
Merge pull request #14039 from OpenVisionLabs/typos

Correction of typos in several infrastructure files

6 years agoChange base of literals in k-nucleotide-9
Joseph Tremoulet [Wed, 20 Sep 2017 21:25:02 +0000 (17:25 -0400)]
Change base of literals in k-nucleotide-9

This keeps it in sync with the copies in the release branches (the
release/1.1.0 branch required this since older C# compilers don't accept
the binary literals), and improves readability.

6 years agoMerge pull request #13541 from hqueue/arm/ryujit/issue_12614_enable_unrolling_for_cpblk
Bruce Forstall [Wed, 20 Sep 2017 21:23:00 +0000 (14:23 -0700)]
Merge pull request #13541 from hqueue/arm/ryujit/issue_12614_enable_unrolling_for_cpblk

[RyuJIT/ARM32] enable unrolling for cpblk

6 years agoMerge pull request #14089 from BredPet/switch_generation
Bruce Forstall [Wed, 20 Sep 2017 19:48:48 +0000 (12:48 -0700)]
Merge pull request #14089 from BredPet/switch_generation

ARM32: fix switch jump table generation bug for RyuJIT

6 years agoMerge pull request #14048 from wtgodbe/RIDs
William Godbe [Wed, 20 Sep 2017 19:34:09 +0000 (12:34 -0700)]
Merge pull request #14048 from wtgodbe/RIDs

Restore packages for every Windows architecture by default

6 years agoMerge pull request #14086 from sdmaclea/PR-ARM-REMOVE-OBS-ASSERT
Bruce Forstall [Wed, 20 Sep 2017 18:35:20 +0000 (11:35 -0700)]
Merge pull request #14086 from sdmaclea/PR-ARM-REMOVE-OBS-ASSERT

[Arm] Remove obsolete assert

6 years agoImprove instructions for installing VS2017 and building for ARM (#14073)
Bruce Forstall [Wed, 20 Sep 2017 18:12:14 +0000 (11:12 -0700)]
Improve instructions for installing VS2017 and building for ARM (#14073)

* Improve instructions for installing VS2017 and building for ARM

* Add section on cross-building ARM for Windows

6 years agomark argplace node as no_lir (#14044)
Sergey Andreenko [Wed, 20 Sep 2017 18:04:16 +0000 (11:04 -0700)]
mark argplace node as no_lir (#14044)

mark argplace node as no_lir

6 years agoARM32: fix switch jump table generation bug for RyuJIT
Petr Bred [Wed, 20 Sep 2017 17:05:52 +0000 (20:05 +0300)]
ARM32: fix switch jump table generation bug for RyuJIT

Signed-off-by: Petr Bred <bredpetr@gmail.com>
6 years agoWhen building as standalone GC the free object is initialized with 0 flags. This...
Jeff Schwartz [Wed, 20 Sep 2017 17:17:32 +0000 (10:17 -0700)]
When building as standalone GC the free object is initialized with 0 flags.  This leads to the free list plugs not having the right size on heap traversal (often leading to a crash).   The fix is for the free object to be an array with a compenent size of 1 byte.

6 years agoMerge pull request #14085 from qmfrederik/marshal-utf8-intptr-zero
Tijoy Tom [Wed, 20 Sep 2017 16:44:37 +0000 (09:44 -0700)]
Merge pull request #14085 from qmfrederik/marshal-utf8-intptr-zero

Fix marshaling IntPtr.Zero to UTF8 strings, add unit tests

6 years ago[Arm] Remove obsolete assert
Steve MacLean [Wed, 20 Sep 2017 15:29:31 +0000 (11:29 -0400)]
[Arm] Remove obsolete assert

Assert should have been removed with #14018

Fixes #14082

6 years agoReset static state per iteration for k-nucleotide-9 (#14081)
Andy Ayers [Wed, 20 Sep 2017 15:15:44 +0000 (08:15 -0700)]
Reset static state per iteration for k-nucleotide-9 (#14081)

Otherwise iterations keep getting slower and slower.

Also bump inner iteration count to 10 to restore the nominal one second
duration per iteration.

6 years ago16-byte Stack Aligned StubDispatchFixupStub (#14078)
Jonghyun Park [Wed, 20 Sep 2017 14:43:05 +0000 (23:43 +0900)]
16-byte Stack Aligned StubDispatchFixupStub (#14078)

6 years agoTest marshaling IntPtr.Zero to UTF8 strings, add unit tests
Frederik Carlier [Wed, 20 Sep 2017 14:21:59 +0000 (16:21 +0200)]
Test marshaling IntPtr.Zero to UTF8 strings, add unit tests

6 years agoMerge pull request #14075 from BruceForstall/AllowMoreStressModes
Bruce Forstall [Wed, 20 Sep 2017 06:03:08 +0000 (23:03 -0700)]
Merge pull request #14075 from BruceForstall/AllowMoreStressModes

Refine ARM64 CI stress modes allowed

6 years agoRefine ARM64 CI stress modes allowed
Bruce Forstall [Wed, 20 Sep 2017 00:28:32 +0000 (17:28 -0700)]
Refine ARM64 CI stress modes allowed

For JitStressRegs, allow 0x10, 0x80, 0x1000; don't use simple 10 or 80
in names (to match netci.groovy).

Remove "tieredcompilation" from allowed modes; it is not supported in the
CI smarty helper currently.

6 years agoMerge pull request #14068 from JosephTremoulet/HelixExclude
Joseph Tremoulet [Tue, 19 Sep 2017 23:25:53 +0000 (19:25 -0400)]
Merge pull request #14068 from JosephTremoulet/HelixExclude

Update exclusions for moved tests

6 years agoMerge pull request #14069 from BruceForstall/FixFormatting
Bruce Forstall [Tue, 19 Sep 2017 21:59:46 +0000 (14:59 -0700)]
Merge pull request #14069 from BruceForstall/FixFormatting

Fix jit-format error

6 years agoFix rlimit setting of RLIM_NOFILE on OSX (#14054)
Jan Vorlicek [Tue, 19 Sep 2017 21:48:35 +0000 (23:48 +0200)]
Fix rlimit setting of RLIM_NOFILE on OSX (#14054)

This change fixes an issue with rlimit setting of RLIM_NOFILE. The problem
is that the rlim_max that we get from getrlimit is too large and so setting
the rlimit_cur to that value fails. The OSX man page for rlimit has a compat
note about it, stating that the rlimit_cur needs to be limited to
min(OPEN_MAX, rlim_max) if one wants to set it to rlim_max.

6 years agoFix jit-format error
Bruce Forstall [Tue, 19 Sep 2017 21:45:25 +0000 (14:45 -0700)]
Fix jit-format error

6 years agoSupport PR trigger of ARM JIT stress jobs (#14055)
Bruce Forstall [Tue, 19 Sep 2017 21:42:29 +0000 (14:42 -0700)]
Support PR trigger of ARM JIT stress jobs (#14055)

Add a list of jobs known to the ARM64 CI, and allow those to be triggered.

Also, allow Release triggered jobs to run tests (before, the label said
"Build and Test", but no test was done).

For the newly added jobs, make them weekly triggered, not daily triggered,
for the periodic jobs, to reduce machine usage.

6 years agoUpdate exclusions for moved tests
Joseph Tremoulet [Tue, 19 Sep 2017 21:01:52 +0000 (17:01 -0400)]
Update exclusions for moved tests

Change #13994 moved some tests that were excluded from Helix runs, but
failed to update the exclusion list; fix that oversight and exclude the
tests in their new locations.

Fixes #14034.

6 years agoMerge pull request #14059 from hseok-oh/ryujit/fix_13760
Bruce Forstall [Tue, 19 Sep 2017 21:03:40 +0000 (14:03 -0700)]
Merge pull request #14059 from hseok-oh/ryujit/fix_13760

[RyuJIT/ARM32] Fix TreeNodeInfoInit for STOREIND with writebarrier

6 years agoMove initialization of YieldProcessorNormalized to the finalizer thread (#14058)
Koundinya Veluri [Tue, 19 Sep 2017 20:54:37 +0000 (13:54 -0700)]
Move initialization of YieldProcessorNormalized to the finalizer thread (#14058)

Move initialization of YieldProcessorNormalized to the finalizer thread

Fixes https://github.com/dotnet/coreclr/issues/13984
- Also moved relevant functions out of the Thread class as requested in the issue
- For some reason, after moving the functions out of the Thread class, YieldProcessorNormalized was not getting inlined anymore. It seems to be important to have it be inlined such that the memory loads are hoisted out of outer loops. To remove the dependency on the compiler to do it (even with forceinline it's not possible to hoist sometimes, for instance InterlockedCompareExchnage loops), changed the signatures to do what is intended.

6 years agoAdd span-based Guid.{Try}Parse{Exact} methods (#14062)
Stephen Toub [Tue, 19 Sep 2017 20:47:53 +0000 (13:47 -0700)]
Add span-based Guid.{Try}Parse{Exact} methods (#14062)

This commit does two things:
- Changes the existing Guid.{Try}Parse{Exact} methods to work in terms of spans rather than strings.
- Then adds new overloads that accept spans and that uses the same underlying span-based support.

Due to the first change, performance actually improves for several of the guid formats, in particular due to substring allocations that are no longer incurred.  For example, this program:
```C#
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        var sw = new Stopwatch();
        const int Iters = 1000000;

        Console.WriteLine("Pattern\tBytes\tTime");
        foreach (string pattern in new[] { "D", "B", "P", "N", "X" })
        {
            string input = Guid.NewGuid().ToString(pattern);
            Guid.Parse(input);

            long a = GC.GetAllocatedBytesForCurrentThread();
            sw.Restart();
            for (int i = 0; i < Iters; i++) Guid.Parse(input);
            sw.Stop();
            a = GC.GetAllocatedBytesForCurrentThread() - a;

            Console.WriteLine($"\"{pattern}\"\t{a / Iters}\t{(int)(sw.Elapsed.TotalMilliseconds / Iters * 1000000)}ns");
        }
    }
}
```
on my machine previously output:
```
Pattern Bytes   Time
"D"     0       218ns
"B"     0       217ns
"P"     0       210ns
"N"     168     388ns
"X"     744     765ns
```
and with this change outputs:
```
Pattern Bytes   Time
"D"     0       213ns
"B"     0       192ns
"P"     0       196ns
"N"     0       372ns
"X"     0       577ns
```

6 years agoMerge pull request #14018 from sdmaclea/PR-ARM-Remove-extra-cast
Brian Sullivan [Tue, 19 Sep 2017 20:44:47 +0000 (13:44 -0700)]
Merge pull request #14018 from sdmaclea/PR-ARM-Remove-extra-cast

[Arm/Arm64] LowerCast remove small int widen cast

6 years agoMerge pull request #13941 from sdmaclea/PR-ARM64-CMP-EXTENDED
Brian Sullivan [Tue, 19 Sep 2017 20:13:55 +0000 (13:13 -0700)]
Merge pull request #13941 from sdmaclea/PR-ARM64-CMP-EXTENDED

[Arm64] Do not extend within Compare/Test nodes

6 years agoMerge pull request #14063 from JosephTremoulet/Fannkuch-5
Joseph Tremoulet [Tue, 19 Sep 2017 20:01:01 +0000 (16:01 -0400)]
Merge pull request #14063 from JosephTremoulet/Fannkuch-5

Fix expected values in fannkuch-redux-5

6 years agoRestore packages for every Windows architecture by default
wtgodbe [Mon, 18 Sep 2017 21:17:07 +0000 (14:17 -0700)]
Restore packages for every Windows architecture by default

6 years agoFix expected values in fannkuch-redux-5
Joseph Tremoulet [Tue, 19 Sep 2017 18:09:54 +0000 (14:09 -0400)]
Fix expected values in fannkuch-redux-5

The validation logic was testing against `chksum`, which actually can
vary depending on the number of processors (as that is used to determine
the number of threads across which the work is partitioned, and the
checksum is sensitive to the bucketing).  Change it to test against
`maxflips` instead, which is stable.

Fixes #14040.

6 years agoMerge pull request #14061 from JosephTremoulet/BenchmarkReadme
Joseph Tremoulet [Tue, 19 Sep 2017 15:39:51 +0000 (11:39 -0400)]
Merge pull request #14061 from JosephTremoulet/BenchmarkReadme

Update BenchmarksGames README.txt

6 years agoMerge pull request #13753 from CarolEidt/FixSpillWeights
Carol Eidt [Tue, 19 Sep 2017 15:06:49 +0000 (08:06 -0700)]
Merge pull request #13753 from CarolEidt/FixSpillWeights

Sane spill weights

6 years agoMerge pull request #14057 from ahsonkhan/UpdateProperties
Stephen Toub [Tue, 19 Sep 2017 14:14:46 +0000 (07:14 -0700)]
Merge pull request #14057 from ahsonkhan/UpdateProperties

Change AsSpan() to property Span and rename AsMemory to Memory

6 years agoUpdate BenchmarksGames README.txt
Joseph Tremoulet [Tue, 19 Sep 2017 14:07:39 +0000 (10:07 -0400)]
Update BenchmarksGames README.txt

Reflecting recent updates to the snapshot of these tests.

6 years agoMerge pull request #14052 from stephentoub/parsenumbers_managed
Stephen Toub [Tue, 19 Sep 2017 14:02:08 +0000 (07:02 -0700)]
Merge pull request #14052 from stephentoub/parsenumbers_managed

Move ParseNumbers to shared partition

6 years ago[RyuJIT/ARM32] Fix TreeNodeInfoInit for STOREIND with writebarrier
Hyeongseok Oh [Tue, 19 Sep 2017 09:32:21 +0000 (18:32 +0900)]
[RyuJIT/ARM32] Fix TreeNodeInfoInit for STOREIND with writebarrier

Set source count for GT_STOREIND with writebarrier.
It's same value with ARM64

6 years agoDisable VSD Stub Kind Prediction on H/W Exception (#14051)
Jonghyun Park [Tue, 19 Sep 2017 08:17:10 +0000 (17:17 +0900)]
Disable VSD Stub Kind Prediction on H/W Exception (#14051)

* Disable VSD Stub Kind Prediction on H/W Exception

* Add a comment on a false argument

* Use BOOL (instead of bool) for consistency

* Replace remaining bool/true/false with BOOL/TRUE/FALSE

6 years agoChange AsSpan() to property Span and rename AsMemory to Memory
ahsonkhan [Tue, 19 Sep 2017 02:56:11 +0000 (19:56 -0700)]
Change AsSpan() to property Span and rename AsMemory to Memory

6 years agoAddress PR feedback
Stephen Toub [Tue, 19 Sep 2017 02:30:24 +0000 (22:30 -0400)]
Address PR feedback

6 years agoMerge pull request #14029 from mikedn/cmp-op-swap
Carol Eidt [Tue, 19 Sep 2017 00:21:03 +0000 (17:21 -0700)]
Merge pull request #14029 from mikedn/cmp-op-swap

Remove useless TODO from genCompareInt

6 years agoMerge pull request #14003 from noahfalk/fix_commitstack
Noah Falk [Mon, 18 Sep 2017 23:59:29 +0000 (16:59 -0700)]
Merge pull request #14003 from noahfalk/fix_commitstack

Fix test StackCommitCommon

6 years agoMove ParseNumbers to shared partition
Stephen Toub [Mon, 18 Sep 2017 23:55:00 +0000 (19:55 -0400)]
Move ParseNumbers to shared partition

6 years agoRemove now dead ParseNumbers code in runtime
Stephen Toub [Mon, 18 Sep 2017 18:22:19 +0000 (14:22 -0400)]
Remove now dead ParseNumbers code in runtime

6 years agoClean up ParseNumbers and fix perf regressions
Stephen Toub [Mon, 18 Sep 2017 18:22:02 +0000 (14:22 -0400)]
Clean up ParseNumbers and fix perf regressions

- Fix formatting
- Replace char[] allocations with stackalloc
- Replace StringBuilders with FastAllocateString
- Tweak a few comparisons to make them leaner
- Tweak some tight loops to make them a bit leaner
- Help JIT to eliminate bounds checks on target spans
- Walk ptr destinations rather than indexing

6 years agoUse the calculated size (offset) instead of estimated (size) (#14049)
Victor "Nate" Graf [Mon, 18 Sep 2017 23:36:50 +0000 (16:36 -0700)]
Use the calculated size (offset) instead of estimated (size) (#14049)

6 years agoChange jit notifications so that they pass the native code address. (#14021)
David Mason [Mon, 18 Sep 2017 21:41:48 +0000 (14:41 -0700)]
Change jit notifications so that they pass the native code address.  (#14021)

* Change jit notifications so that they pass the native code address. This fixes !bpmd so that it will set the correct breakpoint on tiered jitted methods.

* code review feedback

* don't handle OnCodeGenerated

6 years agoMerge pull request #13664 from BruceForstall/WinRyuArm32CI
Bruce Forstall [Mon, 18 Sep 2017 20:16:48 +0000 (13:16 -0700)]
Merge pull request #13664 from BruceForstall/WinRyuArm32CI

First step to enable Windows RyuJIT/arm32 testing

6 years agoSane spill weights
Carol Eidt [Fri, 1 Sep 2017 20:08:57 +0000 (13:08 -0700)]
Sane spill weights

The existing spill weight computation is comparing non-normalized bbWeight to normalized lvRefCntWtd, and is also using the weight of whatever the last block turns out to be (often EH zero-weight block) for the `RefTypeParamDef`s.

The straightforward fix resulted in regressions:
- It turns out that it is useful to give extra weight to tree temps, as all their references are very localized.
- Also, it is helpful to reduce the relative weight of a lclVar if it has already been spilled.

As is often the case, more tuning would be useful, but this is a more sane algorithm.

Fix #13721

6 years agoDisable tests that fail in RyuJIT/arm32 testing
Bruce Forstall [Fri, 1 Sep 2017 00:55:58 +0000 (17:55 -0700)]
Disable tests that fail in RyuJIT/arm32 testing