platform/upstream/dotnet/runtime.git
8 years agoArm64 StoreBlk Lowering Fix
Carol Eidt [Fri, 30 Sep 2016 06:33:27 +0000 (23:33 -0700)]
Arm64 StoreBlk Lowering Fix

With the block assignment changes, the Arm64 version of
Lowering::TreeNodeInfoInitBlockStore was not using the correct node
for the source address.

Fix dotnet/coreclr#7197

Commit migrated from https://github.com/dotnet/coreclr/commit/62f3b58c51b918d4345c32ba0d7c5947f41210f4

8 years agoMerge pull request dotnet/coreclr#7399 from CarolEidt/LinearCodegenRefactor
Carol Eidt [Thu, 29 Sep 2016 23:36:57 +0000 (16:36 -0700)]
Merge pull request dotnet/coreclr#7399 from CarolEidt/LinearCodegenRefactor

Refactor common codegen code

Commit migrated from https://github.com/dotnet/coreclr/commit/89544de70145d43889b8b1de49cdda7ebadf0e9e

8 years agoCorrect preprocessor conditional termination in case BACKGROUND_GC is not defined...
Adam Tornhill [Thu, 29 Sep 2016 16:50:44 +0000 (18:50 +0200)]
Correct preprocessor conditional termination in case BACKGROUND_GC is not defined. (dotnet/coreclr#7411)

This patch ensures that the code remains valid even when BACKGROUND_GC is not defined.
Before this patch, the endif that terminates the conditional compilation block
misses the terminating curly brace. That means there will be an extra, erroneous
closing brace the moment BACKGROUND_GC isn't defined.

Commit migrated from https://github.com/dotnet/coreclr/commit/f93e169d61aec19ad2c0bd7630d4df4a1b9e4d24

8 years agoSet THUMB bit for RUNTIME_FIXUP_HELPER functions (dotnet/coreclr#7373)
Jonghyun Park [Thu, 29 Sep 2016 07:53:15 +0000 (16:53 +0900)]
Set THUMB bit for RUNTIME_FIXUP_HELPER functions (dotnet/coreclr#7373)

* Appends THUMB bit for RUNTIME_FIXUP_HELPER address
* Revise GetEEFuncEntryPoint (for ARM) and use it to set thumb bit
* Uses GetEEFuncEntryPoint instead of GFN_TADDR

Commit migrated from https://github.com/dotnet/coreclr/commit/74967f89e0f43e156cf23cd88840e1f0fc94f997

8 years agoFix ifdefs used to select the symbol reader dll name (dotnet/coreclr#7406)
Mike McLaughlin [Thu, 29 Sep 2016 06:50:20 +0000 (23:50 -0700)]
Fix ifdefs used to select the symbol reader dll name (dotnet/coreclr#7406)

Commit migrated from https://github.com/dotnet/coreclr/commit/8493c03a5f9e4d2aaf4e56e5c228642e221993bd

8 years agoRefactor common codegen code
Carol Eidt [Wed, 28 Sep 2016 13:51:27 +0000 (06:51 -0700)]
Refactor common codegen code

Extract the main code generator loop, the register management methods, and some debug info code.

Commit migrated from https://github.com/dotnet/coreclr/commit/1ca7e90a6ce49ead99db6871189fedfb302facaa

8 years agoMerge pull request dotnet/coreclr#7404 from tarekgh/AddNormalizationToLinux
Rama krishnan Raghupathy [Thu, 29 Sep 2016 04:07:29 +0000 (21:07 -0700)]
Merge pull request dotnet/coreclr#7404 from tarekgh/AddNormalizationToLinux

Add Normalization functionality to Linux

Commit migrated from https://github.com/dotnet/coreclr/commit/0e2a160b704424b865229a95355ca54753fadf03

8 years agoAdd option to measure time spent inside calls to the CLR. (dotnet/coreclr#7357)
Peter Kukol [Thu, 29 Sep 2016 01:29:33 +0000 (18:29 -0700)]
Add option to measure time spent inside calls to the CLR. (dotnet/coreclr#7357)

* Add option to measure time spent inside calls to the CLR (off by default).

Commit migrated from https://github.com/dotnet/coreclr/commit/f20f51697d2c61ce998ed7514a327e3c1e1936bc

8 years agoAdd Normalization functionality to Linux
Tarekm Mahmoud Sayed [Wed, 28 Sep 2016 22:44:28 +0000 (15:44 -0700)]
Add Normalization functionality to Linux

This functionality will be used in different places (e.g. string class)

Commit migrated from https://github.com/dotnet/coreclr/commit/c65a1f972adee6ec6f848085ae00146e60a66cbb

8 years agoExpose required S.Resources members on corelib (dotnet/coreclr#7402)
Alex Perovich [Thu, 29 Sep 2016 00:04:55 +0000 (17:04 -0700)]
Expose required S.Resources members on corelib (dotnet/coreclr#7402)

Fixes dotnet/corefxdotnet/coreclr#12012

Commit migrated from https://github.com/dotnet/coreclr/commit/0d46a91f2f48282fd004a35c8a28ddb24432237e

8 years agoMerge pull request dotnet/coreclr#7368 from pgavlin/SideEffects
Pat Gavlin [Wed, 28 Sep 2016 23:58:03 +0000 (16:58 -0700)]
Merge pull request dotnet/coreclr#7368 from pgavlin/SideEffects

Fix lowering's containment analysis.

Commit migrated from https://github.com/dotnet/coreclr/commit/e89d9f92815ec2a23f935633c80457d202c24ff1

8 years agoFix lowering's containment analysis.
Pat Gavlin [Fri, 23 Sep 2016 22:48:16 +0000 (15:48 -0700)]
Fix lowering's containment analysis.

This fixes a silent bad code generation issue that arose during internal
testing. The original repro is a test failure under COMPlus_JitStress=2.
Due to explicit null check insertion, we (eventually) end up with the
following LIR:

    t6096 =    lclVar    ref    V86 cse10         <l:$4ad, c:$1b5>

            /--*  t6096  ref
            *  st.lclVar ref    V41 tmp29        d:26

    t2733 =    lclVar    ref    V41 tmp29        u:26 <l:$4ad, c:$1b5>

            /--*  t2733  ref
            *  nullcheck byte   <l:$4b8, c:$58a>

    t2736 =    lclVar    ref    V41 tmp29        u:26 (last use) <l:$4ad, c:$1b5>

    t2737 =    const     long   20 field offset Fseq[y] $107

            /--*  t2736  ref
            +--*  t2737  long
    t2735 = *  +         byref  <l:$2ad, c:$2ac>

    t6081 =    lclVar    ref    V83 cse7          <l:$4bd, c:$1b7>

            /--*  t6081  ref
            *  st.lclVar ref    V41 tmp29        d:27

    t2762 =    lclVar    ref    V41 tmp29        u:27 <l:$4bd, c:$1b7>

            /--*  t2762  ref
            *  nullcheck byte   <l:$583, c:$58f>

    t2765 =    lclVar    ref    V41 tmp29        u:27 (last use) <l:$4bd, c:$1b7>

    t2766 =    const     long   20 field offset Fseq[y] $107

            /--*  t2765  ref
            +--*  t2766  long
    t2764 = *  +         byref  <l:$2af, c:$2ae>

            /--*  t2764  byref
    t2763 = *  indir     int    <l:$54e, c:$1ed>

    t2767 =    lclVar    int   (AX) V07 loc4          $1ee

            /--*  t2763  int
            +--*  t2767  int
    t2738 = *  +         int    <l:$554, c:$553>

            /--*  t2735  byref
            +--*  t2738  int
            *  storeIndir int

During lowering, we attempt to form an RMW add rooted at the final
storeIndir. The pattern matching that attempts to form RMW operations,
however, does not consider whether or not it is safe to perform the
code motion involved in making the destination and source addresses
for the operator contained. In this case, lowering moves the evaluation
of the address (i.e. the dataflow tree rooted at the add that produces
t2735) into the storeIndir. This moves a use of tmp29 across a def of
the same and causes the program to store a value to an incorrect
address.

There are many variations on this pattern. For example, given the
following C#:

static int T(C[] a, C c)
{
    return a.Length != c.M() ? 100 : 0;
}

The evaluation of a.Length (including the necessary null check) should
occur before the call to c.M(). The lack of correct checks for safe
code motion that caused the original repro, however, cause the JIT to
generate bad code in this case as well: the null check for a is folded
into the load of a.Length, which is then made contained by the compare.
This results in the call to c.M() executing before the null check, which
causes the program to behave incorrectly in the case that a is null.

In order to fix the code motion analysis, this change introduces a new
type, `SideEffectSet`, that can be used to summarize the side effects
of a set of nodes and check whether or not they interfere with another
set of side effects. This change then uses the new type to ensure that
it is safe to perform the code motion necessary to make an operand
contained before doing so.

Commit migrated from https://github.com/dotnet/coreclr/commit/d857d37425eca004a5231fba5809c79d8566a008

8 years agoMerge pull request dotnet/coreclr#7403 from ramarag/addisvolatile
Rama krishnan Raghupathy [Wed, 28 Sep 2016 22:56:39 +0000 (15:56 -0700)]
Merge pull request dotnet/coreclr#7403 from ramarag/addisvolatile

Adding back isVolatile to mscorlib facade as C# compiler uses it

Commit migrated from https://github.com/dotnet/coreclr/commit/9124badef653096548fbb340d495316f95af8806

8 years agoAdding back isVolatile to mscorlib facade as C# compiler uses it
Rama Krishnan Raghupathy [Wed, 28 Sep 2016 22:06:03 +0000 (15:06 -0700)]
Adding back isVolatile to mscorlib facade as C# compiler uses it

Commit migrated from https://github.com/dotnet/coreclr/commit/1a6b8b60d784bf1845d86eacfc04d8fc8da4954c

8 years agoMerge pull request dotnet/coreclr#7356 from bartonjs/new_macos_gettingstarted
Jeremy Barton [Wed, 28 Sep 2016 20:55:51 +0000 (13:55 -0700)]
Merge pull request dotnet/coreclr#7356 from bartonjs/new_macos_gettingstarted

Fix stale OSX getting started to stop using `brew link`

Commit migrated from https://github.com/dotnet/coreclr/commit/47cb433a8ff57d061e5a00d00ff15788531f41e5

8 years agoMerge pull request dotnet/coreclr#7392 from kouvel/TestFix
Koundinya Veluri [Wed, 28 Sep 2016 19:19:08 +0000 (12:19 -0700)]
Merge pull request dotnet/coreclr#7392 from kouvel/TestFix

Work around issue in dotnet/coreclr#7365 by referencing System.Reflection.Extension…

Commit migrated from https://github.com/dotnet/coreclr/commit/1e175ad198cd8032a7bdc76c6107627f7806bfc7

8 years agoFix System.Diagnostics.StackTrace version in stack trace helper code (dotnet/coreclr...
Mike McLaughlin [Wed, 28 Sep 2016 18:35:28 +0000 (11:35 -0700)]
Fix System.Diagnostics.StackTrace version in stack trace helper code (dotnet/coreclr#7395)

Issue dotnet/coreclr#7381

Commit migrated from https://github.com/dotnet/coreclr/commit/d23c9d92598a17c190ac5ba7b0549f5f84c38883

8 years agoMerge pull request dotnet/coreclr#7306 from hseok-oh/fix_6667_2
Russ Keldorph [Wed, 28 Sep 2016 18:03:37 +0000 (11:03 -0700)]
Merge pull request dotnet/coreclr#7306 from hseok-oh/fix_6667_2

Fix 6667: Constant folding for unsigned long divide operation

Commit migrated from https://github.com/dotnet/coreclr/commit/12227d468fb882982fd3e4df8d025bf1b337c2c0

8 years agoWork around issue in dotnet/coreclr#7365 by referencing System.Reflection.Extensions...
Koundinya Veluri [Wed, 28 Sep 2016 05:52:01 +0000 (22:52 -0700)]
Work around issue in dotnet/coreclr#7365 by referencing System.Reflection.Extensions directly in some test projects

Commit migrated from https://github.com/dotnet/coreclr/commit/b2f78a146c4d85328fe48d300bc9216b67d58bbe

8 years agoMerge pull request dotnet/coreclr#7379 from gkhanna79/SimplePkgVer
Gaurav Khanna [Wed, 28 Sep 2016 04:29:34 +0000 (21:29 -0700)]
Merge pull request dotnet/coreclr#7379 from gkhanna79/SimplePkgVer

Centralize versioning and stabilization of nuget packages.

Commit migrated from https://github.com/dotnet/coreclr/commit/b21821c910395c35ff90f45850bb0085cad09a19

8 years agoInvoke 'copy_test_native_bin_to_test_root' inside 'create_core_overlay' (dotnet/corec...
Jonghyun Park [Wed, 28 Sep 2016 03:46:16 +0000 (12:46 +0900)]
Invoke 'copy_test_native_bin_to_test_root' inside 'create_core_overlay' (dotnet/coreclr#5676)

This commit tries to fix dotnet/coreclr#5675.

Commit migrated from https://github.com/dotnet/coreclr/commit/b652f7a28324e54b6ca33fa7fb1fcaaa540b88bb

8 years agoSpecialize IndexOf, LastIndexOf for the enum equality comparers (dotnet/coreclr#5804)
James Ko [Wed, 28 Sep 2016 03:45:33 +0000 (23:45 -0400)]
Specialize IndexOf, LastIndexOf for the enum equality comparers (dotnet/coreclr#5804)

Commit migrated from https://github.com/dotnet/coreclr/commit/1eb2c3819c7e4942639f7eef31c604530f0b2e68

8 years agoMerge pull request dotnet/coreclr#7367 from sivarv/simdeq
Sivarv [Tue, 27 Sep 2016 21:05:33 +0000 (14:05 -0700)]
Merge pull request dotnet/coreclr#7367 from sivarv/simdeq

Optimize SIMD codegen for (in)equality check against zero that produces bool result.

Commit migrated from https://github.com/dotnet/coreclr/commit/f7b15f73ab734d43937a591dc58205d49913c346

8 years agoCentralize APISet and WinArm32 package versions as well.
Gaurav Khanna [Tue, 27 Sep 2016 20:29:35 +0000 (13:29 -0700)]
Centralize APISet and WinArm32 package versions as well.

Commit migrated from https://github.com/dotnet/coreclr/commit/1b3eead4d93412f90c4fc8568517f9ead67a73ab

8 years agoCentralize versioning and stabilization of nuget packages.
Gaurav Khanna [Tue, 27 Sep 2016 18:32:36 +0000 (11:32 -0700)]
Centralize versioning and stabilization of nuget packages.

Commit migrated from https://github.com/dotnet/coreclr/commit/21ff2ecb4ef0b5b3f3e17699a574b5170466920a

8 years agoMove dlstack test exclusion to all configurations instead of (dotnet/coreclr#7364)
Sean Gillespie [Tue, 27 Sep 2016 18:07:13 +0000 (11:07 -0700)]
Move dlstack test exclusion to all configurations instead of (dotnet/coreclr#7364)

just ryujit/x86, since it fails in other configurations as well.

Commit migrated from https://github.com/dotnet/coreclr/commit/ffeef85a626d7344fd3e2031f749c356db0628d3

8 years agoOptimize SIMD codegen for (in)equality check against zero that produces bool result.
sivarv [Tue, 27 Sep 2016 00:38:12 +0000 (17:38 -0700)]
Optimize SIMD codegen for (in)equality check against zero that produces bool result.

Commit migrated from https://github.com/dotnet/coreclr/commit/6df96b9459955cd5096c219b89a789b6fd4182f5

8 years agoremove comments
Hyeongseok Oh [Tue, 27 Sep 2016 00:48:48 +0000 (09:48 +0900)]
remove comments

Commit migrated from https://github.com/dotnet/coreclr/commit/d292971695636e9f55b0972a1ab900cd55d2ea7d

8 years agoFix arm64 build issue dotnet/coreclr#7355. (dotnet/coreclr#7362)
Mike McLaughlin [Mon, 26 Sep 2016 22:58:32 +0000 (15:58 -0700)]
Fix arm64 build issue dotnet/coreclr#7355. (dotnet/coreclr#7362)

Commit migrated from https://github.com/dotnet/coreclr/commit/99063b3faf9653ab2433386b04caed5c13bca52c

8 years agoIntroduce "IGCToCLR" and use it within the GC to interface with the EE (dotnet/corecl...
Sean Gillespie [Mon, 26 Sep 2016 21:23:52 +0000 (14:23 -0700)]
Introduce "IGCToCLR" and use it within the GC to interface with the EE (dotnet/coreclr#7295)

* Introduce a feature define FEATURE_STANDALONE_GC that allows
the GC to communicate with the EE through a virtual interface.

* Split GCToEEInterface definition out of gc.h into its own header

* Address code review feedback

* Address code review feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/907f9ff11cdfdd2fa6f080708f59d874c1a9e03f

8 years agoFix stale OSX getting started to stop using `brew link`
bartonjs [Mon, 26 Sep 2016 16:39:58 +0000 (09:39 -0700)]
Fix stale OSX getting started to stop using `brew link`

Even with --force the `brew link` command will not link openssl any longer.
This updates the instructions to provide a less invasive version of what we
needed `brew link` to do: make the runtime versioned ABI resolvable, and make
the header files discoverable (via pkg-config).

Commit migrated from https://github.com/dotnet/coreclr/commit/3acc1bf985e7bf4c038df1c68ac5c941954eafca

8 years agoCheck PAL first, and then Windows Phone (dotnet/coreclr#7354)
Jonghyun Park [Mon, 26 Sep 2016 10:58:35 +0000 (19:58 +0900)]
Check PAL first, and then Windows Phone (dotnet/coreclr#7354)

Commit migrated from https://github.com/dotnet/coreclr/commit/712cdd405e9aac7fc6806814a2fddd976e84d9df

8 years agoAdd missing System.Security ns types. (dotnet/coreclr#7352)
Dan Moseley [Mon, 26 Sep 2016 03:32:11 +0000 (20:32 -0700)]
Add missing System.Security ns types. (dotnet/coreclr#7352)

Commit migrated from https://github.com/dotnet/coreclr/commit/ee36d7fbc74d516a30c1969934af5afb7ba5c76d

8 years agoAdd the IsSecurityXX properties omitted from Type base class (dotnet/coreclr#7349)
Dan Moseley [Sun, 25 Sep 2016 14:04:40 +0000 (07:04 -0700)]
Add the IsSecurityXX properties omitted from Type base class (dotnet/coreclr#7349)

Commit migrated from https://github.com/dotnet/coreclr/commit/85391f2a227d99084656a7016a29bfb2664923b5

8 years agoAdd Math.Clamp methods (dotnet/coreclr#7242)
Hugh Bellamy [Sun, 25 Sep 2016 14:03:40 +0000 (15:03 +0100)]
Add Math.Clamp methods (dotnet/coreclr#7242)

Commit migrated from https://github.com/dotnet/coreclr/commit/fe98399f713edd0fbbe0ac431b2b8816c37b566c

8 years agoMicro-optimization for IList.Contains array implementation (dotnet/coreclr#7347)
James Ko [Sun, 25 Sep 2016 03:11:10 +0000 (23:11 -0400)]
Micro-optimization for IList.Contains array implementation (dotnet/coreclr#7347)

Commit migrated from https://github.com/dotnet/coreclr/commit/4c29020751a11dacc15e8bfd95b6bc0f7103e272

8 years agoMerge pull request dotnet/coreclr#7328 from ramarag/removemarkers
Rama krishnan Raghupathy [Sat, 24 Sep 2016 00:51:45 +0000 (17:51 -0700)]
Merge pull request dotnet/coreclr#7328 from ramarag/removemarkers

Adding MemoryFailPoint and  Removing some markers

Commit migrated from https://github.com/dotnet/coreclr/commit/a116cd877b35df9228d860afa7c7d27d5ba2c897

8 years agoMerge pull request dotnet/coreclr#7337 from tarekgh/FixCollationNames
Tarek Mahmoud Sayed [Sat, 24 Sep 2016 00:48:50 +0000 (17:48 -0700)]
Merge pull request dotnet/coreclr#7337 from tarekgh/FixCollationNames

Fix the Collation name returned from CompareInfo.Name and TextInfo.Name

Commit migrated from https://github.com/dotnet/coreclr/commit/e784a761c9b4a95322f38ee47aab51105bfe27c9

8 years agoRemove CoreCLR's dependency on the diasymreader.dll installed as part of the full...
Mike McLaughlin [Sat, 24 Sep 2016 00:39:43 +0000 (17:39 -0700)]
Remove CoreCLR's dependency on the diasymreader.dll installed as part of the full .NET Framework on Desktop (dotnet/coreclr#7336)

* Remove CoreCLR's dependency on the diasymreader.dll installed as part of the full .NET Framework on Desktop

Issue dotnet/coreclr#5922

* Code review feedback.

Commit migrated from https://github.com/dotnet/coreclr/commit/10b964f1beab13479c223f594cdd55a6e583eb3e

8 years agoMerge pull request dotnet/coreclr#7332 from JosephTremoulet/InlineVolatile
Joseph Tremoulet [Fri, 23 Sep 2016 23:55:48 +0000 (19:55 -0400)]
Merge pull request dotnet/coreclr#7332 from JosephTremoulet/InlineVolatile

Allow inlining with volatile actual argument exprs

Commit migrated from https://github.com/dotnet/coreclr/commit/ecb241f8d30b3251ca8f8e267d17f7fe36224b8f

8 years agoFix the Collation name returned from CompareInfo.Name and TextInfo.Name
Tarekm Mahmoud Sayed [Fri, 23 Sep 2016 22:05:27 +0000 (15:05 -0700)]
Fix the Collation name returned from CompareInfo.Name and TextInfo.Name

this was a regression dotnet/coreclr#7004 and caused the issue dotnet/coreclr#1139

Commit migrated from https://github.com/dotnet/coreclr/commit/bf338dbe6cc7aafae4492668985a44d1a8693dac

8 years agoAdding MemoryFailPoint Removing some markers
Rama Krishnan Raghupathy [Thu, 22 Sep 2016 21:50:03 +0000 (14:50 -0700)]
Adding MemoryFailPoint Removing some markers

Commit migrated from https://github.com/dotnet/coreclr/commit/d973d04a9295b06723ab1e5d4fcd81525417800e

8 years agoupdate JIT_MemSet/MemCpy, Buffer::BlockCopy and Buffer::InternalBlock… (dotnet/corecl...
Xiangyang (Mark) Guo [Fri, 23 Sep 2016 19:33:36 +0000 (12:33 -0700)]
update JIT_MemSet/MemCpy, Buffer::BlockCopy and Buffer::InternalBlock… (dotnet/coreclr#7198)

* update JIT_MemSet/MemCpy, Buffer::BlockCopy and Buffer::InternalBlockCopy

* add header comments

Commit migrated from https://github.com/dotnet/coreclr/commit/3bfe9a089128e11494a09b959000f99e0010adad

8 years agoMerge pull request dotnet/coreclr#7327 from JeremyKuhne/fixshortpath
Jeremy Kuhne [Fri, 23 Sep 2016 19:10:57 +0000 (12:10 -0700)]
Merge pull request dotnet/coreclr#7327 from JeremyKuhne/fixshortpath

Fix 8.3 UNC expansion

Commit migrated from https://github.com/dotnet/coreclr/commit/14c7d9ba8056a3673a7a5b09f3e11d87f2dbb4fc

8 years agoMerge pull request dotnet/coreclr#7329 from sivarv/SimdGetItemFix
Sivarv [Fri, 23 Sep 2016 19:07:48 +0000 (12:07 -0700)]
Merge pull request dotnet/coreclr#7329 from sivarv/SimdGetItemFix

Optimize codegen for SIMDIntrinsicGetItem when SIMD vector is a memory-op.

Commit migrated from https://github.com/dotnet/coreclr/commit/1e155e38051b66c0c4f76728aa849a473311cd03

8 years agoOptimize codegen for SIMDIntrinsicGetItem when SIMD vector is a memory-op.
sivarv [Thu, 22 Sep 2016 23:19:08 +0000 (16:19 -0700)]
Optimize codegen for SIMDIntrinsicGetItem when SIMD vector is a memory-op.

Commit migrated from https://github.com/dotnet/coreclr/commit/13fefb339898648c5dc3cf668f7757f563cb2ce4

8 years agoRemove vestigial assertions
Joseph Tremoulet [Thu, 15 Sep 2016 17:59:09 +0000 (13:59 -0400)]
Remove vestigial assertions

The inliner used to have its own import path, which required calling
special inline versions of the spill helpers; these asserts were intended
to ensure that these regular spill helpers are not invoked during inlining,
which they do by asserting against `fgGlobalMorph`, since that flag was set
during inlining in the old code.  The inliner has since been updated to
re-use the main import code, and also to run when `fgGlobalMorph` is not
set anyway.  So these helpers currently run successfully during inlining,
despite the stale comment; remove the bogus assertions.

Commit migrated from https://github.com/dotnet/coreclr/commit/922551b8bffd655dd3661872f300253c51a6f28c

8 years agoAllow inlining with volatile actual argument exprs
Joseph Tremoulet [Thu, 15 Sep 2016 17:55:29 +0000 (13:55 -0400)]
Allow inlining with volatile actual argument exprs

When presented with an argument marked `GFT_ORDER_SIDEEFF`, mark the
argument `argHasSideEff` and allow inlining.  Remove the vestigial code to
disallow inlining in these cases; it corresponded to a prior inliner
implementation with a different import path that has since been removed;
the inliner now re-uses the main import path, which can handle the
necessary stack spilling in the presence of `GTF_ORDER_SIDEEFF`.

Fixes dotnet/coreclr#7054.

Commit migrated from https://github.com/dotnet/coreclr/commit/8d42d9f12e12a107360463d6d5b22630f079c948

8 years agoRemove the dependency of using config.json in cwd (dotnet/coreclr#7330)
Jarret Shook [Fri, 23 Sep 2016 14:16:09 +0000 (07:16 -0700)]
Remove the dependency of using config.json in cwd (dotnet/coreclr#7330)

Currently the config.json file is looked for in the current working
directory. This change forces run.exe to use the relative path of
the file relative to the build script.

Commit migrated from https://github.com/dotnet/coreclr/commit/5e78b50f3de5c99f469f679ad11d794526d6cd8f

8 years agoExpose some types/members (dotnet/coreclr#7320)
Koundinya Veluri [Fri, 23 Sep 2016 02:10:23 +0000 (19:10 -0700)]
Expose some types/members (dotnet/coreclr#7320)

* Expose some types/members

Expose some types/members needed for dotnet/corefxdotnet/coreclr#11631, dotnet/corefxdotnet/coreclr#11729, and dotnet/corefxdotnet/coreclr#11231

Commit migrated from https://github.com/dotnet/coreclr/commit/43efdc69a104d8dbfbe48177dd4a03ea30b0bdfd

8 years agoSplit MORPH into multiple phases. (dotnet/coreclr#7314)
Peter Kukol [Fri, 23 Sep 2016 00:26:08 +0000 (17:26 -0700)]
Split MORPH into multiple phases. (dotnet/coreclr#7314)

* Split MORPH into multiple phases.

Commit migrated from https://github.com/dotnet/coreclr/commit/9811c769c00542f5e919deaab153d45e951c96d3

8 years agoMerge pull request dotnet/coreclr#7325 from tarekgh/AddStringInfoMethods
Tarek Mahmoud Sayed [Fri, 23 Sep 2016 00:09:14 +0000 (17:09 -0700)]
Merge pull request dotnet/coreclr#7325 from tarekgh/AddStringInfoMethods

Add the needed StringInfo methods to Linux implementation

Commit migrated from https://github.com/dotnet/coreclr/commit/18739447f026225f99399f9eabeda6ccb4551462

8 years agoFix 8.3 UNC expansion
Jeremy Kuhne [Thu, 22 Sep 2016 23:08:34 +0000 (16:08 -0700)]
Fix 8.3 UNC expansion

This ports the fix from
https://github.com/dotnet/corefx/pull/11984

Commit migrated from https://github.com/dotnet/coreclr/commit/7ddca2fb1950202fa23ff6b7fd5fb05a93a9a911

8 years agoAdd the needed StringInfo methods to Linux implementation
Tarekm Mahmoud Sayed [Thu, 22 Sep 2016 21:06:44 +0000 (14:06 -0700)]
Add the needed StringInfo methods to Linux implementation

Commit migrated from https://github.com/dotnet/coreclr/commit/c1ea5eaf0c9bae9a119816bcc32fc5decb5b35b8

8 years agoMerge pull request dotnet/coreclr#7303 from CarolEidt/Fix7195
Carol Eidt [Thu, 22 Sep 2016 20:58:55 +0000 (13:58 -0700)]
Merge pull request dotnet/coreclr#7303 from CarolEidt/Fix7195

DynBlk assert fixes for Arm64

Commit migrated from https://github.com/dotnet/coreclr/commit/4d35bb6bc8644f54055ef41f4a65fef8c633e576

8 years agoAdd System.Reflection.Pointer deserialization ctor to model.xml (dotnet/coreclr#7322)
Stephen Toub [Thu, 22 Sep 2016 20:56:41 +0000 (13:56 -0700)]
Add System.Reflection.Pointer deserialization ctor to model.xml (dotnet/coreclr#7322)

Commit migrated from https://github.com/dotnet/coreclr/commit/698c8ba3dda4ad0d112601c650ce5bca26151aab

8 years agoMerge pull request dotnet/coreclr#7318 from dotnet-bot/from-tfs
Jan Kotas [Thu, 22 Sep 2016 20:56:16 +0000 (13:56 -0700)]
Merge pull request dotnet/coreclr#7318 from dotnet-bot/from-tfs

Merge changes from TFS

Commit migrated from https://github.com/dotnet/coreclr/commit/032ef20765a2a2aefe74049663f1387cb6ed1089

8 years agoFix Unable to step through Visual Studio remote debugger with coreclr executables...
Mike McLaughlin [Thu, 22 Sep 2016 20:51:13 +0000 (13:51 -0700)]
Fix Unable to step through Visual Studio remote debugger with coreclr executables on Nano Server (dotnet/coreclr#7317)

Needed to add back a dummy version of ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly interface so
VS doesn't get the QI failure and stop working by not calling the "Continue" method.

Issue dotnet/coreclr#7316

Commit migrated from https://github.com/dotnet/coreclr/commit/5df288ed77b004708babe296d96412e3bdb13bed

8 years agoMerge pull request dotnet/coreclr#7319 from pgavlin/GTLongFieldList
Pat Gavlin [Thu, 22 Sep 2016 20:10:32 +0000 (13:10 -0700)]
Merge pull request dotnet/coreclr#7319 from pgavlin/GTLongFieldList

Decompose GT_FIELD_LIST nodes that use a GT_LONG.

Commit migrated from https://github.com/dotnet/coreclr/commit/4dd3965514c9b4316230cbd329fc0b0f84be2a92

8 years agoMerge pull request dotnet/coreclr#7315 from tarekgh/DigitsValueUnicodecategory
Tarek Mahmoud Sayed [Thu, 22 Sep 2016 19:46:40 +0000 (12:46 -0700)]
Merge pull request dotnet/coreclr#7315 from tarekgh/DigitsValueUnicodecategory

Support Digit and Decimal values in CharUnicodeInfo

Commit migrated from https://github.com/dotnet/coreclr/commit/3deaee80d100d7ebe2f20d738e793ccfb20ac98b

8 years agoFix formatting issues.
Pat Gavlin [Thu, 22 Sep 2016 17:33:01 +0000 (10:33 -0700)]
Fix formatting issues.

Commit migrated from https://github.com/dotnet/coreclr/commit/91abd10e5949a1f4d3d49dc36d889ee69009b58f

8 years agoMerge pull request dotnet/coreclr#7309 from CarolEidt/x86MkRefAny
Carol Eidt [Thu, 22 Sep 2016 17:31:46 +0000 (10:31 -0700)]
Merge pull request dotnet/coreclr#7309 from CarolEidt/x86MkRefAny

Support mkrefany for x86

Commit migrated from https://github.com/dotnet/coreclr/commit/c91221eed275fb39bef531e05712b933aeadf358

8 years agoSupport Digit and Decimal values in CharUnicodeInfo
Tarekm Mahmoud Sayed [Thu, 22 Sep 2016 16:50:32 +0000 (09:50 -0700)]
Support Digit and Decimal values in CharUnicodeInfo

This change adding the needed data for the digit and decimal values and the needed code to use the data and return the required values

Commit migrated from https://github.com/dotnet/coreclr/commit/a57fb42e11b47271e98d3f3b00a893f21717b076

8 years agoMerge pull request dotnet/coreclr#7294 from pgavlin/longLclFld
Pat Gavlin [Thu, 22 Sep 2016 17:17:15 +0000 (10:17 -0700)]
Merge pull request dotnet/coreclr#7294 from pgavlin/longLclFld

Implement `st.lclFld` decomposition and fix dotnet/coreclr#6778.

Commit migrated from https://github.com/dotnet/coreclr/commit/b9da91395cd7caa07b5fa29de1c85fc4f118c1dd

8 years agoAddress PR feedback.
Pat Gavlin [Thu, 22 Sep 2016 17:16:27 +0000 (10:16 -0700)]
Address PR feedback.

Commit migrated from https://github.com/dotnet/coreclr/commit/48dbb7fc19cc342bc940685b3abef044cdea5c48

8 years ago[GDB/JIT] Add support for lldb step-over command on managed code (dotnet/coreclr...
Dmitri-Botcharnikov [Thu, 22 Sep 2016 17:13:52 +0000 (21:13 +0400)]
[GDB/JIT] Add support for lldb step-over command on managed code (dotnet/coreclr#7273)

Commit migrated from https://github.com/dotnet/coreclr/commit/23ee0200b6066615486696469fb27b514a87727d

8 years agoDecompose GT_FIELD_LIST nodes that use a GT_LONG.
Pat Gavlin [Thu, 22 Sep 2016 17:12:59 +0000 (10:12 -0700)]
Decompose GT_FIELD_LIST nodes that use a GT_LONG.

These nodes are decomposed by splitting the appropriate field list
element into two elements: one each for the low and high halves of
the GT_LONG.

Commit migrated from https://github.com/dotnet/coreclr/commit/ea7fd8631c858638b346204e3a4b6f8a8ac9110c

8 years agoGcInfo V2 for Jit32 Desktop
dotnet-bot [Thu, 22 Sep 2016 16:58:40 +0000 (09:58 -0700)]
GcInfo V2 for Jit32 Desktop

This change switches Jit32 on Desktop CLR to use GcInfo V2 encodings.
The updates to the encoder are in this change, and the necessary changes
to the decoder in the VM are already in place.

Testing:
Standard DDR testing
X86 GCStress testing

[tfs-changeset: 1628772]

Commit migrated from https://github.com/dotnet/coreclr/commit/aa665d0a2d3556a8e824f7ea00ffb4e5955f52c1

8 years agoMerge pull request dotnet/coreclr#7312 from adiaaida/improveFormattingVerbosity
Michelle McDaniel [Thu, 22 Sep 2016 16:41:29 +0000 (09:41 -0700)]
Merge pull request dotnet/coreclr#7312 from adiaaida/improveFormattingVerbosity

Improve formatting job output

Commit migrated from https://github.com/dotnet/coreclr/commit/9816ad1dc99e77c2ce710a3fcb415e237f18f399

8 years agoImprove formatting job output
Michelle McDaniel [Thu, 22 Sep 2016 15:58:47 +0000 (08:58 -0700)]
Improve formatting job output

To make it more clear where there are formatting errors, have format.py
print what commands the user needs to run to fix the formatting errors in
their PR.

Commit migrated from https://github.com/dotnet/coreclr/commit/b4f55f2c03cda410607872fd62247c52b1a8eeb6

8 years agoMerge pull request dotnet/coreclr#7311 from adiaaida/fixutilsformatting
Michelle McDaniel [Thu, 22 Sep 2016 15:24:57 +0000 (08:24 -0700)]
Merge pull request dotnet/coreclr#7311 from adiaaida/fixutilsformatting

Fix formatting in utils.cpp

Commit migrated from https://github.com/dotnet/coreclr/commit/f5d7e048cf7d66c6dc8473d428bf2d82dddd07d5

8 years agoFix formatting in utils.cpp
Michelle McDaniel [Thu, 22 Sep 2016 15:23:35 +0000 (08:23 -0700)]
Fix formatting in utils.cpp

Commit migrated from https://github.com/dotnet/coreclr/commit/60bfe2b8517fc38f22b2dad0ec21f46d9426d933

8 years agoSupport mkrefany for x86
Carol Eidt [Thu, 22 Sep 2016 05:49:59 +0000 (22:49 -0700)]
Support mkrefany for x86

Use a GT_FIELD_LIST to pass the RefAny struct.

Fix dotnet/coreclr#4183

Commit migrated from https://github.com/dotnet/coreclr/commit/0ff0cec84a0b3037b63753ea5573a29e6695e44b

8 years agoSupports cross build configuration override (dotnet/coreclr#7307)
Jonghyun Park [Thu, 22 Sep 2016 13:53:18 +0000 (22:53 +0900)]
Supports cross build configuration override (dotnet/coreclr#7307)

Commit migrated from https://github.com/dotnet/coreclr/commit/cbb38ce37524a101d31277810a7c358678f9bc3a

8 years agoMerge pull request dotnet/coreclr#7304 from dotnet-bot/from-tfs
Jan Kotas [Thu, 22 Sep 2016 13:47:29 +0000 (06:47 -0700)]
Merge pull request dotnet/coreclr#7304 from dotnet-bot/from-tfs

Merge changes from TFS

Commit migrated from https://github.com/dotnet/coreclr/commit/621c0aba11a96772686089433fb20c8438e59100

8 years agoGenerate CrossGen Pdbs as part of bulid (dotnet/coreclr#7298)
Vance Morrison [Thu, 22 Sep 2016 13:46:49 +0000 (06:46 -0700)]
Generate CrossGen Pdbs as part of bulid (dotnet/coreclr#7298)

This change has two parts.  The first part changes build.cmd and the pkgproj
so that as part of generating a .NET Core package we also generate the PDBS
for the Native System.Private.Corelib.ni.dll.

The second part changes crossgen so that it marks the Native Images as having
a list of 0 exports.   This is important because we want the generated PDBs
to be naturally published on the symbol server, and currently the symbol server
skips DLLs what are 'resource only' (no imports or exports).   Because native
images don't use 'normal' PE imports and exports, they get optimized away
by the symbol server.  Making a empy list of exports fixes this.

Commit migrated from https://github.com/dotnet/coreclr/commit/787f727c64c1b3034434be265d103fb7d4e0950f

8 years agoDisplay histogram of total memory per method when MEASURE_MEM_ALLOC is on. (dotnet...
Peter Kukol [Thu, 22 Sep 2016 05:39:06 +0000 (22:39 -0700)]
Display histogram of total memory per method when MEASURE_MEM_ALLOC is on. (dotnet/coreclr#7286)

* Display histogram of total memory per method when MEASURE_MEM_ALLOC is on.

Commit migrated from https://github.com/dotnet/coreclr/commit/0c3727eaaad0f255e18959f835de0dca3ce714eb

8 years agoFix 6667: Constant folding for unslgined long divide operation
Hyeongseok Oh [Thu, 22 Sep 2016 03:03:53 +0000 (12:03 +0900)]
Fix 6667: Constant folding for unslgined long divide operation

Commit migrated from https://github.com/dotnet/coreclr/commit/b56ac157cf084aee07b75820c92c6133169febce

8 years agoMerge pull request dotnet/coreclr#7285 from sivarv/internalReg
Sivarv [Thu, 22 Sep 2016 01:28:49 +0000 (18:28 -0700)]
Merge pull request dotnet/coreclr#7285 from sivarv/internalReg

 Support Lower to reserve internal register(s) different from targetReg.

Commit migrated from https://github.com/dotnet/coreclr/commit/d599d610d493d42a4e0ca0d248b9e2ae5fbf3694

8 years agoImplement `st.lclFld` decomposition and fix dotnet/coreclr#6778.
Pat Gavlin [Tue, 20 Sep 2016 23:44:53 +0000 (16:44 -0700)]
Implement `st.lclFld` decomposition and fix dotnet/coreclr#6778.

The problem that was blocking both of these issues was an issue in
liveness when analyzing `st.lclFld` nodes that store to an unpromoted
long-typed local variable or any long-typed field. The latter case--a
`st.lclFld` node that targets a long-typed field--is easy to handle.
Such stores are decomposed from:

```
         /--*  t0 int
         +--*  t1 int
    t2 = *  gt_long long

         /--*  t2
         *  st.lclFld long V00
```

To:

```
         /--* t0
         *  st.lclFld int V00 [+0]

         /--* t1
         *  st.lclFld int V00 [+4]
```

The two `st.lclFld` nodes that this transformation generates are marked
with `GTF_VAR_USEASG` to indicate that they are partial (rather than
complete) defs. This is necessary in order to correctly calculate
liveness.

Before this change, stores to unpromoted long-typed local variables
were also decomposed in the above fashion. These local vars can arise in
a number of situations:
- vars that are used to store multi-reg args or return values
- vars that represent long-typed fields of promoted struct-typed vars
- long-typed vars that are marked as unenregisterable before decomp

Unfortunately, the decomposition given above differs in its liveness
semantics when compared to the original IR: in the original IR, the
`st.lclVar` is considered a plain def of its destination, while in
the decomposed IR, each `st.lclFld` is considered both a partial def
and a use of its destination. This difference--namely, that in the
first case the destination is not used at the def and in the second
case it is--causes problems for any analysis that needs to take into
account whether or not a variable is used at a def (e.g. dead store
removal, live-in sets, etc.). In order to retain the original
semantics without complicating the IR, stores to unpromoted, long-typed
local variables are not decomposed. These stores are instead handled
during code generation.

Commit migrated from https://github.com/dotnet/coreclr/commit/bfadb4bf808f23af05a39e38208985ab009d117b

8 years agoAdd missing contracts on GCHeapUtilities
dotnet-bot [Thu, 22 Sep 2016 01:05:43 +0000 (18:05 -0700)]
Add missing contracts on GCHeapUtilities

[tfs-changeset: 1628632]

Commit migrated from https://github.com/dotnet/coreclr/commit/630e92c8dd830b04d174bb5000a520f97648b254

8 years agoDynBlk assert fixes for Arm64
Carol Eidt [Thu, 22 Sep 2016 00:47:00 +0000 (17:47 -0700)]
DynBlk assert fixes for Arm64

In the case where the block size is not a constant, there were some incorrect asserts. The size register is on the size node itself, the node is a store, and the check for whether the size is a handle used to be guarded by a check that it is GT_CNS_INT, but since it was really intended to assert that there are no gc pointers, according to the comment on the old code, it doesn't really seem to be a useful assert (we could never get a size node in that case, in the new IR form).

Commit migrated from https://github.com/dotnet/coreclr/commit/f0a50665caeac5bc43207ea22301a5274a1bcca9

8 years agoMerge pull request dotnet/coreclr#7302 from adiaaida/moreFormatting
Michelle McDaniel [Thu, 22 Sep 2016 00:27:26 +0000 (17:27 -0700)]
Merge pull request dotnet/coreclr#7302 from adiaaida/moreFormatting

Fix formatting in ssabuilder

Commit migrated from https://github.com/dotnet/coreclr/commit/ea3f94c11af19abc5dd4631acf5c083d318a56f2

8 years agoSupport Lower to reserve internal register(s) different from targetReg.
sivarv [Wed, 21 Sep 2016 22:17:04 +0000 (15:17 -0700)]
Support Lower to reserve internal register(s) different from targetReg.

Commit migrated from https://github.com/dotnet/coreclr/commit/1d56a0dfd1f717d91494e976cada0ec36ede3e56

8 years agoMerge pull request dotnet/coreclr#7299 from tarekgh/MarkCultureInfoMethodsAsPublic
Tarek Mahmoud Sayed [Wed, 21 Sep 2016 23:01:59 +0000 (16:01 -0700)]
Merge pull request dotnet/coreclr#7299 from tarekgh/MarkCultureInfoMethodsAsPublic

Mark some CultureInfo methods as public

Commit migrated from https://github.com/dotnet/coreclr/commit/4e7fdb4b30d54422a6103eb81f6d525350b9aca1

8 years agoFix formatting in ssabuilder
Michelle McDaniel [Wed, 21 Sep 2016 22:10:31 +0000 (15:10 -0700)]
Fix formatting in ssabuilder

The formatting changes missed the new changes to ssabuilder. Format that
file.

Commit migrated from https://github.com/dotnet/coreclr/commit/e2bdd1c663c8d036fef26e4a1af427aec47d8e7e

8 years agoMerge pull request dotnet/coreclr#7291 from adiaaida/format
Michelle McDaniel [Wed, 21 Sep 2016 21:57:18 +0000 (14:57 -0700)]
Merge pull request dotnet/coreclr#7291 from adiaaida/format

Reformat jit source base and turn on formatting jobs for PR

Commit migrated from https://github.com/dotnet/coreclr/commit/fd9742be1d02890a93705fba456ca0d91fa7989f

8 years agoMerge pull request dotnet/coreclr#7284 from gkhanna79/Ver120
Gaurav Khanna [Wed, 21 Sep 2016 21:56:33 +0000 (14:56 -0700)]
Merge pull request dotnet/coreclr#7284 from gkhanna79/Ver120

Update Nuget package versions to 1.2.0

Commit migrated from https://github.com/dotnet/coreclr/commit/d891a2c0f3e07c50837155b61b114a1e6e585793

8 years agoMark some CultureInfo methods as public
Tarek Mahmoud Sayed [Wed, 21 Sep 2016 21:10:44 +0000 (14:10 -0700)]
Mark some CultureInfo methods as public

We are exposing such APIs now so we need them to be public

Commit migrated from https://github.com/dotnet/coreclr/commit/b757a1b065196898b2c3737e206d1eceac7119f4

8 years agoFix formatting job for Ubuntu
Michelle McDaniel [Wed, 21 Sep 2016 18:18:21 +0000 (11:18 -0700)]
Fix formatting job for Ubuntu

The change to move to the newer version of the CLI for coreclr causes
something to look for a config.json file in the current directory (rather
than the directory where the build.sh script resides), forcing build.sh to
be run from the base coreclr dir (you can't run it from any other
location), so changing directories to the jitutils bin directory would
cause the build to fail, failing the jit-format run. This change fixes the
format.py script to build the full path to the jit-format executable and
then run it from the coreclr directory, rather than changing to the utils
bin dir and running jit-format from there.

Commit migrated from https://github.com/dotnet/coreclr/commit/eb8dae1c33dc8f7fcc8c6e574a164720a9a15f62

8 years agoMake formatting jobs required for PR
Michelle McDaniel [Wed, 21 Sep 2016 16:56:46 +0000 (09:56 -0700)]
Make formatting jobs required for PR

Commit migrated from https://github.com/dotnet/coreclr/commit/a7d22cc184e99435389b528e2089270c76a9d0d7

8 years agoFix conflicts between nix and Windows formatting
Michelle McDaniel [Wed, 21 Sep 2016 17:30:30 +0000 (10:30 -0700)]
Fix conflicts between nix and Windows formatting

Commit migrated from https://github.com/dotnet/coreclr/commit/70cc6cd0201fa67582a8934fe8b12684ba7dd726

8 years agoReformat jit code on OSX
Michelle McDaniel [Wed, 21 Sep 2016 16:39:53 +0000 (09:39 -0700)]
Reformat jit code on OSX

Commit migrated from https://github.com/dotnet/coreclr/commit/f5ca87984ca08db0c5ee7133f7fb4aa7840fb2db

8 years agoReformat jit code for Windows x64
Michelle McDaniel [Wed, 21 Sep 2016 16:25:28 +0000 (09:25 -0700)]
Reformat jit code for Windows x64

Commit migrated from https://github.com/dotnet/coreclr/commit/49a13624affce9b5f7757c9208f902307385827c

8 years agoMerge pull request dotnet/coreclr#7191 from erozenfeld/SSAStackOverflow
Eugene Rozenfeld [Wed, 21 Sep 2016 20:41:18 +0000 (13:41 -0700)]
Merge pull request dotnet/coreclr#7191 from erozenfeld/SSAStackOverflow

Fix for StackOverflow in SsaBuilder::TopologicalSort.

Commit migrated from https://github.com/dotnet/coreclr/commit/f490d4dd10fb0d891f8b080078f5c5156885789c

8 years agoFix OS X build break with AppleClang 8.0.0 (dotnet/coreclr#7292)
John Chen [Wed, 21 Sep 2016 20:29:21 +0000 (13:29 -0700)]
Fix OS X build break with AppleClang 8.0.0 (dotnet/coreclr#7292)

Fixes issue dotnet/coreclr#7275

Commit migrated from https://github.com/dotnet/coreclr/commit/af5172c88b1a6753135ca4d4c01b4a4a479f8002

8 years agoMerge pull request dotnet/coreclr#7293 from CarolEidt/FixArmObj
Carol Eidt [Wed, 21 Sep 2016 19:54:19 +0000 (12:54 -0700)]
Merge pull request dotnet/coreclr#7293 from CarolEidt/FixArmObj

Fix Arm64 codegen to use GT_FIELD_LIST

Commit migrated from https://github.com/dotnet/coreclr/commit/a793c0cd7cd70c9c42acd29b7ab9cf75750d02bc

8 years agoMerge pull request dotnet/coreclr#7289 from CarolEidt/Fix7196
Carol Eidt [Wed, 21 Sep 2016 18:52:45 +0000 (11:52 -0700)]
Merge pull request dotnet/coreclr#7289 from CarolEidt/Fix7196

Fix Issue 7196: No extra internal regs for block nodes

Commit migrated from https://github.com/dotnet/coreclr/commit/7dd07204cbfabed2b1cdbc2d0296b42559c3839f

8 years agoFix Arm64 codegen to use GT_FIELD_LIST
Carol Eidt [Wed, 21 Sep 2016 18:12:45 +0000 (11:12 -0700)]
Fix Arm64 codegen to use GT_FIELD_LIST

In dotnet/coreclr#7252 changing GT_LIST to GT_FIELD_LIST when passing struct fields,
I omitted some required changes to codegenarm64.cpp. This caused the
crossgen of System.Private.CoreLib.dll to fail.

Commit migrated from https://github.com/dotnet/coreclr/commit/c26da4558d0ce18e265a460f7a857e13fa019364

8 years agoFix for StackOverflow in SsaBuilder::TopologicalSort.
Eugene Rozenfeld [Wed, 14 Sep 2016 19:41:47 +0000 (12:41 -0700)]
Fix for StackOverflow in SsaBuilder::TopologicalSort.

SsaBuilder::TopologicalSort allocated an array of bools on the stack.
In one of internal cases the array had 126,758 elements, which caused a
StackOverflow. This change switches SsaBuilder::TopologicalSort from
stack-allocated array of bools to BitVec.

TopologicalSortHelper used to be recursive. It was changed to use an iterative
algorithm in a previous change. I'm inlining TopologicalSortHelper into
TopologicalSort now.

I verified no measurable negative throughput impact from this change
and no asm diffs in SuperPMI.

Commit migrated from https://github.com/dotnet/coreclr/commit/79f0faf49be6b03061287bcc566b9f5726eae360