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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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