John Chen [Sat, 5 Mar 2016 00:09:22 +0000 (16:09 -0800)]
Merge pull request dotnet/coreclr#3519 from JohnChen0/longpath
Restore linking debug corerun.exe with retail CRT
Commit migrated from https://github.com/dotnet/coreclr/commit/
327d6fd4e6e07925438510fa658d97382f477a9d
Jan Kotas [Sat, 5 Mar 2016 00:05:34 +0000 (16:05 -0800)]
Merge pull request dotnet/coreclr#3511 from vcsjones/fix-3506
Improve GetHashCode for IntPtr/UIntPtr on 64-bit.
Commit migrated from https://github.com/dotnet/coreclr/commit/
031b5a02815d5df8e83b8d6d0775c3d91d426c2a
Gaurav Khanna [Fri, 4 Mar 2016 22:47:50 +0000 (14:47 -0800)]
Merge pull request dotnet/coreclr#3507 from gkhanna79/OneCore2
Fix CRT linkages for uCRT
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac9f1d18dd0a1316945f728ba4c74943dfb23a1a
Aditya Mandaleeka [Fri, 4 Mar 2016 22:33:15 +0000 (14:33 -0800)]
Merge pull request dotnet/coreclr#3452 from fujiy/patch-1
Anchor Tag fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
6d71e929ccefcedd331d8fda8ca41c05c190aea2
Kevin Jones [Fri, 4 Mar 2016 17:22:36 +0000 (12:22 -0500)]
Improve GetHashCode for IntPtr/UIntPtr on 64-bit.
The GetHashCode behavior on IntPtr and UIntPtr truncated the upper 32 bits.
This change uses the behavior of long and ulong, respectively, to generate
the hash code.
UIntPtr no longer strips off the top-most bit for GetHashCode purposes.
Fix dotnet/coreclr#3506
Commit migrated from https://github.com/dotnet/coreclr/commit/
7688c54a9a9938e45625937270e9d29deab62824
John Chen (CLR) [Fri, 4 Mar 2016 21:39:47 +0000 (13:39 -0800)]
Restore linking debug corerun.exe with retail CRT
The long path support feature modified debug corerun.exe with debug
CRT (msvcrtd.dll). This made it more difficult to use corerun.exe,
since the debug CRT is not always available. It turns out this change
is no longer necessary, so reverting part of the change to link debug
corerun.exe with retail CRT (msvcrt.dll) again.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c044e74c13c26229c0c001f810798bc7c7cf1bb
Pat Gavlin [Fri, 4 Mar 2016 21:25:04 +0000 (13:25 -0800)]
Merge pull request dotnet/coreclr#3495 from pgavlin/HistogramCleanup
Clean up the JIT's histogram type.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a43659055974983c910d421144f749498f9f66a4
Jan Kotas [Fri, 4 Mar 2016 21:10:49 +0000 (13:10 -0800)]
Merge pull request dotnet/coreclr#3512 from benpye/arm-monotonic-coarse-tryrun
Add value to arm/arm64 tryrun files for HAVE_CLOCK_MONOTONIC_COARSE.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d3131ac9b36a6004bd042703e17cec4941d3f5aa
Kyungwoo Lee [Fri, 4 Mar 2016 20:29:11 +0000 (12:29 -0800)]
Merge pull request dotnet/coreclr#3509 from kyulee1/arm64build
Fix for disabling incremental build for ARM64
Commit migrated from https://github.com/dotnet/coreclr/commit/
15b1e52e2d61ee7b624e048c2dca39af4195087c
Aditya Mandaleeka [Fri, 4 Mar 2016 20:27:06 +0000 (12:27 -0800)]
Merge pull request dotnet/coreclr#3497 from adityamandaleeka/threading_test_port
[WIP] Open source some more threading tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1edbd345b2f76dc9bee2917c08e5992ddf506fd
Ben Pye [Fri, 4 Mar 2016 18:24:37 +0000 (18:24 +0000)]
Fix C++11 issue when converting string to char *
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a6beaaf949f0eac36eabf2a2ea4cff3dccf3561
Andy Ayers [Fri, 4 Mar 2016 19:27:22 +0000 (11:27 -0800)]
Merge pull request dotnet/coreclr#3500 from AndyAyersMS/InlineRefactorInlineHints
Inline refactoring: convert hints into observations
Commit migrated from https://github.com/dotnet/coreclr/commit/
943014f2b621925a3722648f96ec2ee125747e43
Pat Gavlin [Thu, 3 Mar 2016 20:54:34 +0000 (12:54 -0800)]
Clean up the JIT's histogram type.
Commit migrated from https://github.com/dotnet/coreclr/commit/
225a9f0752ae64919b50935953748dbadfb2ffa7
Ben Pye [Fri, 4 Mar 2016 18:01:56 +0000 (18:01 +0000)]
Add value to arm/arm64 tryrun files for HAVE_CLOCK_MONOTONIC_COARSE.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c68625aa7ec91a28ae4e5bc8f3cf534faaacb42e
Rahul Kumar [Fri, 4 Mar 2016 17:56:52 +0000 (09:56 -0800)]
Merge pull request dotnet/coreclr#3491 from rahku/Helix
add TargetsWindows property required by cloudtest.targets in buildtools package
Commit migrated from https://github.com/dotnet/coreclr/commit/
abd29485cbaa727c36e844e7bae6a0f76a6b5747
Rahul Kumar [Tue, 1 Mar 2016 23:31:11 +0000 (15:31 -0800)]
add TargetsWindows property required by cloudtest.targets in buildtools package
Commit migrated from https://github.com/dotnet/coreclr/commit/
a6947022eeab93b83f13fbeb092c664a6ae24f15
Aditya Mandaleeka [Fri, 4 Mar 2016 17:44:12 +0000 (09:44 -0800)]
Change priority of tests in baseservices/threading to 1.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1a733823af3a15b8572511953a5b039148dbc48e
Jan Kotas [Fri, 4 Mar 2016 17:36:05 +0000 (09:36 -0800)]
Merge pull request dotnet/coreclr#3502 from myungjoo/fix/3462_arm_linux_stack
ARM-Linux Fixes (Issue dotnet/coreclr#3462)
Commit migrated from https://github.com/dotnet/coreclr/commit/
41d393fc361359b0143dc5ae62ae3a255e052d78
Jan Kotas [Fri, 4 Mar 2016 17:33:26 +0000 (09:33 -0800)]
Merge pull request dotnet/coreclr#3503 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
f80c2fbb673dce9b049e4d02d0b8eadf998e9ea2
Mike McLaughlin [Fri, 4 Mar 2016 17:31:15 +0000 (09:31 -0800)]
Merge pull request dotnet/coreclr#3404 from gregg-miskelly/DbgShimFix
DbgShim!RegisterForRuntimeStartup: Avoid extra call to callback
Commit migrated from https://github.com/dotnet/coreclr/commit/
e43986007ec23e55c02d50d0aa20ec88eb50af83
Gaurav Khanna [Fri, 4 Mar 2016 02:10:26 +0000 (18:10 -0800)]
Fixup CRT linkages for uCRT
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8dfa40dc21c01e4dc297aeb4a23db22d1830506
Sejong Oh [Fri, 4 Mar 2016 17:08:22 +0000 (09:08 -0800)]
Merge pull request dotnet/coreclr#3156 from sejongoh/add_gc_stress_modes
Add GC stress modes
Commit migrated from https://github.com/dotnet/coreclr/commit/
d31008b8ee2ad0303d90905188e50d3f6cd8e166
Sejong Oh [Fri, 4 Mar 2016 17:06:27 +0000 (09:06 -0800)]
Merge pull request dotnet/coreclr#3337 from sejongoh/reuse_existing_function_to_set_stress_modes
reuse getStressModeScriptStep
Commit migrated from https://github.com/dotnet/coreclr/commit/
31fabd33c981aba3ffbd457553f04ad0da66c3df
Andy Ayers [Wed, 2 Mar 2016 23:21:50 +0000 (15:21 -0800)]
Inline refactoring: convert hints into observations
This change updates the inlining code to use observations in place of
the InlineHints and hint-like things (eg "HasSimd"). A number of new
observations were added in support of this.
The `compInlineeHints` member of the compiler object was removed as
the same information is now tracked by the inline policy. The policy
also now contains most of the weights and combining logic used to
compute the profitabiliy boost for the candidate.
There is one subtle and tricky aspect to the change. For the most part
the hints were ignored during the prejit-root analysis, but the mostly
load-store hint was propagated and influenced the inlines done when
crossgenning mscorlib. See dotnet/coreclr#3482 for more on this particular quirk.
I've preserved this behavior by "passing" the prejit inline result
into `fgFindJumpTargets`. In actuality the result is passed by
temporarily setting the `compInlineResult` compiler member variable.
Then, in `fgFindJumpTargets`, the load-store observation is the only
one not guarded by `compIsForInlining`. In a subsequent change I'll redo
the guards at other observation sites and put the policy aspects of these
observations into the policy object.
This addresses another piece of the work outlined in dotnet/coreclr#3371.
Commit migrated from https://github.com/dotnet/coreclr/commit/
07278237ec9470d8885fca486bed899bb2ce0c81
Kyungwoo Lee [Fri, 4 Mar 2016 16:38:05 +0000 (08:38 -0800)]
Fix for disabling incremental build for ARM64
The fix (dotnet/coreclr@
d58885c9a37d857f10d90f6db7246630d4ce8980) broke ARM64 debug
build.
The right fix is to disable such flag for all archs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b00684d1ee8afabb0a746feb25b70c595f3b7d32
Maoni Stephens [Fri, 4 Mar 2016 07:33:35 +0000 (23:33 -0800)]
197654 [x86] [scanRuntime] Fix contracts in gcenv.os.cpp
[tfs-changeset: 1581565]
Commit migrated from https://github.com/dotnet/coreclr/commit/
b59c6f3017bccac19eededde69e9ad1eff612e2a
MyungJoo Ham [Fri, 4 Mar 2016 04:38:15 +0000 (13:38 +0900)]
Fix Stack Unwind Behavior of Libunwind-ARM
Disable UNW_ARM_METHOD_DWARF, which gets problematic with
assembly-created stacks in ARM systems.
Although previous commits have fixed the compatibility issues
between cpp stacks and libunwind-arm, the assembly part
(asmhelpers.S) had similar problems.
Fix dotnet/coreclr#3462
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
35b5df6888f1574e6ef9313c6bc8522d1817573d
MyungJoo Ham [Wed, 2 Mar 2016 12:27:00 +0000 (21:27 +0900)]
Fix PAL_VirtualUnwind Behavior with Clutters in PC
Libunwind-ARM recommends to read LR to get value of PC
while unwinding stack, which often causes the caller
(PAL_VirtualUnwind) to have LSB of PC set.
Such behavior incurs errornous behavior of PAL_VirtualUnwind
if the output is fed back to PAL_VirtualUnwind as the input,
which is observed with VirtualUnwindToFirstManagedCallFrame().
This commit clears LSB of PC in WinContext to prevent it.
Note that this is a partial fix for the issue dotnet/coreclr#3462.
(this does not fix assembly stacks)
Fix dotnet/coreclr#3462
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
b15c9d4f8a2bdad6dc7ecc03df037783e31d7d0c
Sejong Oh [Fri, 12 Feb 2016 09:23:35 +0000 (01:23 -0800)]
Add GC stress modes
Commit migrated from https://github.com/dotnet/coreclr/commit/
316b3397c30cc63be4feb70b79e1d79fc26cd062
Kyungwoo Lee [Fri, 4 Mar 2016 02:04:56 +0000 (18:04 -0800)]
Merge pull request dotnet/coreclr#3498 from kyulee1/disinc
Fix for disabling incremental link in Windows
Commit migrated from https://github.com/dotnet/coreclr/commit/
4707152ea16ca35af2c87f43db3536001f1d0e6b
Sejong Oh [Wed, 24 Feb 2016 05:44:38 +0000 (21:44 -0800)]
reuse getStressModeScriptStep
Commit migrated from https://github.com/dotnet/coreclr/commit/
3048ee20e3edc7b115b7e1509de7697c81e6610d
William Godbe [Fri, 4 Mar 2016 00:35:04 +0000 (16:35 -0800)]
Merge pull request dotnet/coreclr#3499 from wtgodbe/nameTooLong
Fix file-name-too-long error for all builds, not just pri1
Commit migrated from https://github.com/dotnet/coreclr/commit/
32b9fd79ce17b4dc4d9afc3ec9d832f32cae85fa
William Godbe [Fri, 4 Mar 2016 00:27:39 +0000 (16:27 -0800)]
Fix file-name-too-long error for all builds, not just pri1
Commit migrated from https://github.com/dotnet/coreclr/commit/
9545e72ec7f2fb7e8c0555ae1666af9276b86e1a
Aditya Mandaleeka [Fri, 4 Mar 2016 00:05:49 +0000 (16:05 -0800)]
Remove needless references to test library.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0e3a9467107e98fbb6bd1bc19bf2c553e4673518
Andy Ayers [Thu, 3 Mar 2016 23:49:29 +0000 (15:49 -0800)]
Merge pull request dotnet/coreclr#3472 from AndyAyersMS/InlineRefactorFixPlumbing
Inline refactoring: rework logic in compCompileHelper
Commit migrated from https://github.com/dotnet/coreclr/commit/
29a1d3eb38d30f8cdc2da9355ff6c9d2f9be9524
Kyungwoo Lee [Thu, 3 Mar 2016 23:38:08 +0000 (15:38 -0800)]
Fix for disabling incremental link in Windows
I'm still getting linker error (mostly debug build) which often caused a
trouble to reboot the machine.
Looking at vcxproj files, we didn't correctly disable incremental link.
There is some ordering issues in linker flag definitions.
The disabling flag should be at the end for each build type
to override the default behavior.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d58885c9a37d857f10d90f6db7246630d4ce8980
Pat Gavlin [Thu, 3 Mar 2016 23:09:31 +0000 (15:09 -0800)]
Merge pull request dotnet/coreclr#3494 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
4f1fd0e1068e0ff7bf1dd527330a30c309bb2846
Aditya Mandaleeka [Thu, 3 Mar 2016 23:09:00 +0000 (15:09 -0800)]
Add license headers to ported threading tests.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1a3ede46d43d6b6b3bef5de6f57011c66e1dd710
Aditya Mandaleeka [Thu, 3 Mar 2016 22:15:53 +0000 (14:15 -0800)]
Remove Monitor/EnterExit15.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6cde55e0931af3d4e6a778f674d1ff1871827a97
Pat Gavlin [Thu, 3 Mar 2016 22:12:09 +0000 (14:12 -0800)]
Merge pull request dotnet/coreclr#3488 from benpye/arm-redefinition
Fix ARM build regression
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce56d1d0893c92443c7a1719bee5d7ec4b0fac27
Pat Gavlin [Thu, 3 Mar 2016 21:00:03 +0000 (13:00 -0800)]
Add two files that should have been part of changeset dotnet/coreclr#1581242.
[tfs-changeset: 1581263]
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9c23bcdf4b7432021faf7b8a688e8142d22bef5
Aditya Mandaleeka [Thu, 3 Mar 2016 20:28:27 +0000 (12:28 -0800)]
Exclude DefaultStackCommit test from non-Windows platforms.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f0162260d8d62f0c992266fb8118d45ac6506e99
Aditya Mandaleeka [Thu, 3 Mar 2016 20:24:52 +0000 (12:24 -0800)]
Open source tests from baseservices/threading.
Commit migrated from https://github.com/dotnet/coreclr/commit/
316e43433443447d345c7a48b9deb5cdd7946144
Pat Gavlin [Thu, 3 Mar 2016 19:51:59 +0000 (11:51 -0800)]
Refactor Utilcode's IAllocators.
- `DefaultAllocator` has been replaced with `HostAllocator` in RyuJIT, which
uses the JIT hosting interface to allocate and free memory.
- The definition of `DefaultAllocator` has been moved into its own file, as it
remains in use by the interpreter and the binder.
- `ProcessHeapAllocator` has been moved into JIT32, as that was its only
remaining user.
- `AllowZeroAllocator`'s static field has been changed to an instance field
to avoid the need to define storage for the static field in Utilcode.
[tfs-changeset: 1581242]
Commit migrated from https://github.com/dotnet/coreclr/commit/
e2df0fdbfaa688de075f020a1bf59e30fffe9fb9
Lubomir Litchev [Thu, 3 Mar 2016 17:48:53 +0000 (09:48 -0800)]
Merge pull request dotnet/coreclr#3459 from LLITCHEV/Issue3382-1
Fix GC holes for all AMD64 platforms (Windows and System V) and a bug…
Commit migrated from https://github.com/dotnet/coreclr/commit/
a70b732323b8be45a80fcd1488d60c7baa9ab0a3
MyungJoo Ham [Mon, 29 Feb 2016 08:11:10 +0000 (17:11 +0900)]
Fix CMake Script for libunwind Feature Check
Check the availability correctly for Linux.
The cmake configuration script has been trying to find out
the availability of functions directly with check_function_exists,
which depends on the symbol names in .so files.
However, the libunwind implementation uses macros to
redefine functions names for each architecture making it
impossible to directly look up symbol tables of .so files.
In order to allow the script to use the information in
header files, check_function_exists should be replaced
with check_cxx_source_compiles.
Besides config.h.in had missing declarations for the
CMAKE variables
Fix dotnet/coreclr#3372
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c0d5e85c59107a4710317f445bec0528cbe232b
MyungJoo Ham [Mon, 29 Feb 2016 08:07:31 +0000 (17:07 +0900)]
Fix Stack Unwind for ARM/Linux
Make context information compatible with libunwind-arm.
In Linux/ARM, seh-unwind.cpp has been updating unw_cursor_t
to point another stack by updating the cursor's register
entries. However, that does not work in libunwind-arm in
Linux, which breaks PAL_VirtualUnwind() functions.
Getting the stack information from the cursor had
a compatibility issue as well.
This patch make both "context->cursor" and "cursor->context"
methods compatible with ARM/Linux.
Fix dotnet/coreclr#3312
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c0095268e19e5a5fcf035c4c591ed03e552f072
Ben Pye [Thu, 3 Mar 2016 15:16:33 +0000 (15:16 +0000)]
Fix ARM build regression
Commit migrated from https://github.com/dotnet/coreclr/commit/
55a784c786e698dc394568fcdf6d42c9d0c827e0
Lubomir Litchev [Mon, 29 Feb 2016 06:43:16 +0000 (22:43 -0800)]
Fix GC holes for all AMD64 platforms (Windows and System V) and a bug for System V OSs in the codegen
for GS cookie comparison on amd64.
Fixes issue dotnet/coreclr#3382.
There is a bug in the genEmitGSCookieCheck method for amd64 having to do
with potentially trashing a second rgister (RDX) for a 2 register returned
struct.
It also sets the byref state for RAX, if needed. And GCRef and BrRef for
RDX, if needed.
Conflicts:
tests/src/JIT/Methodical/structs/systemvbringup/structrettest.cs
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e4c15840f8b3a7fcd482dfaff758e475a2a3475
Russ Keldorph [Thu, 3 Mar 2016 01:50:22 +0000 (17:50 -0800)]
Merge pull request dotnet/coreclr#3457 from RussKeldorph/Reenable
Reenable tests after dotnet/coreclr#2728 workaround in place
Commit migrated from https://github.com/dotnet/coreclr/commit/
fdc40a40581f6a601ba508e33ad641640a956f91
Sejong Oh [Thu, 3 Mar 2016 00:58:38 +0000 (16:58 -0800)]
Merge pull request dotnet/coreclr#3284 from sejongoh/pull_down_coredistool
Pulling down coredistool package for gcstress test
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5efe1183c41d631c1c9596b4a570a167ef21126
Matt Mitchell [Thu, 3 Mar 2016 00:48:17 +0000 (16:48 -0800)]
Merge pull request dotnet/coreclr#3476 from mmitche/fix-triggers
Fix triggers
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8a85cb44883ea265030c43a005a1cb78781a166
Davis Goodin [Thu, 3 Mar 2016 00:46:47 +0000 (18:46 -0600)]
Merge pull request dotnet/coreclr#3405 from dagood/new-cli
Upgrade dotnet CLI version, accumulated project.json changes
Commit migrated from https://github.com/dotnet/coreclr/commit/
475d8ddfb0408265313aa43bdc8f4acdb9efa79a
Matt Mitchell [Thu, 3 Mar 2016 00:25:29 +0000 (16:25 -0800)]
Fix triggers
The github triggers were broken with two types of windows builds using the same context next. One was the build only job that is just used to feed into the *Nix testing. We don't need to launch these builds at all, since they are just used for internal testing.
See also dotnet/coreclr#3475
Commit migrated from https://github.com/dotnet/coreclr/commit/
2a9a7f1574e140199ac461882f4b4b0fe4be9672
Pat Gavlin [Thu, 3 Mar 2016 00:09:10 +0000 (16:09 -0800)]
Merge pull request dotnet/coreclr#1668 from Dmitry-Me/assignmentOpReturningUnsuitableType
Impossible implicit downcast in assignment operator
Commit migrated from https://github.com/dotnet/coreclr/commit/
143466225c322418605ed58dd2aa60695613e547
Sivarv [Wed, 2 Mar 2016 23:45:05 +0000 (15:45 -0800)]
Merge pull request dotnet/coreclr#3467 from sivarv/emitInsMovFix
Fix to intermittent failure of jit test 200w1d-09_cpp_r.exe
Commit migrated from https://github.com/dotnet/coreclr/commit/
f397c047d361280666c7d771f98c97413ed35dcf
Jan Kotas [Wed, 2 Mar 2016 22:09:51 +0000 (14:09 -0800)]
Merge pull request dotnet/coreclr#3471 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
dc64c3254c7c60d8b7965defa97db61f5fddfe87
Mike McLaughlin [Wed, 2 Mar 2016 21:01:08 +0000 (13:01 -0800)]
Merge pull request dotnet/coreclr#3466 from mikem8361/armfix
Fixes issue dotnet/coreclr#3453 ARM build break.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0129080cd44b590159c6aa2b1bb76a0aca2c480a
Maoni Stephens [Wed, 2 Mar 2016 20:23:49 +0000 (12:23 -0800)]
Integrate GC changes from full framework
[tfs-changeset: 1580785]
Commit migrated from https://github.com/dotnet/coreclr/commit/
da777e57e0d4625e13f630321fe0defd439f8d61
Andy Ayers [Wed, 2 Mar 2016 17:35:01 +0000 (09:35 -0800)]
Inline refactoring: rework logic in compCompileHelper
This change reworks the logic in `compCompileHelper` to split
out the invocation of `fgFindBasicBlocks` for the special
prejit-root case (see dotnet/coreclr#3371). As a side benefit the two InlineResults
needed for the prejit inline scan can be merged.
Commit migrated from https://github.com/dotnet/coreclr/commit/
026a933121c89c823fb7ebf91dd74eeb456608b2
Andy Ayers [Wed, 2 Mar 2016 19:43:48 +0000 (11:43 -0800)]
Merge pull request dotnet/coreclr#3447 from AndyAyersMS/ForceInlineFix
Inliner: restore some force inline overrides
Commit migrated from https://github.com/dotnet/coreclr/commit/
d4e7e51e023339b833a4423614d64e3b25a72bd5
Jarret Shook [Wed, 2 Mar 2016 19:38:59 +0000 (11:38 -0800)]
Merge pull request dotnet/coreclr#3468 from jashook/amr64_rel
Turn off testing for arm64 for debug and checked builds.
Commit migrated from https://github.com/dotnet/coreclr/commit/
40576355fc8ecde605ca36c7e02e8b63684d7f0a
jashook [Wed, 2 Mar 2016 19:31:25 +0000 (11:31 -0800)]
Turn off testing for arm64 for debug and checked builds.
Commit migrated from https://github.com/dotnet/coreclr/commit/
69329fc32fec75f20878e123e16ebf645ddc31dd
Jarret Shook [Wed, 2 Mar 2016 18:48:27 +0000 (10:48 -0800)]
Merge pull request dotnet/coreclr#3435 from jashook/arm64_testing
Small changes to netci to enable arm64 testing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c2de44cbb2eb39105904bfe603a5ea45a2a13c2
Mike McLaughlin [Wed, 2 Mar 2016 18:42:40 +0000 (10:42 -0800)]
Fixes issue dotnet/coreclr#3453 ARM build break.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b7a80fdf7cbcd19a591217fb287e828138f6555f
Andy Ayers [Wed, 2 Mar 2016 18:34:41 +0000 (10:34 -0800)]
Merge pull request dotnet/coreclr#3460 from AndyAyersMS/FixBadInlineeRedundancy
Inliner: fix assert for multiple failure reasons when inlining
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d746230215da166204659f172d2229f1511c3aa
Davis Goodin [Tue, 1 Mar 2016 23:18:01 +0000 (17:18 -0600)]
Change all dependency versions to match what was actually restored in the checked-in lockfiles.
Used a tool to look at lockfiles: when a dependency did not have a corresponding downloaded package, found the latest version that was downloaded and changed the project.json to match. This fixes any packages that don't exist (such as some beta-23302) and floating dependencies (*).
Commit migrated from https://github.com/dotnet/coreclr/commit/
89e6d00b951637e4961dd91b9e1cbcd8b24b0514
Davis Goodin [Wed, 24 Feb 2016 00:57:04 +0000 (18:57 -0600)]
Remove RestorePackages = true from all test csproj's.
Restore is performed once as a batch. csproj's share project.jsons, so restoring for each one was a race to update the lockfile.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c62698eccc4ac1e74a1990d232cf3a3845d31e44
Davis Goodin [Wed, 24 Feb 2016 00:11:15 +0000 (18:11 -0600)]
Use tooling to add Platforms dependencies and imports where necessary.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8fb1a723ff5f7099fb2b4f3014bf08ac5cfc5c5e
Davis Goodin [Tue, 23 Feb 2016 23:14:23 +0000 (17:14 -0600)]
Remove all lockfiles from source control.
Commit migrated from https://github.com/dotnet/coreclr/commit/
36cb6d858f8f84e8870b56441b82bb9a4e4faf51
Davis Goodin [Tue, 23 Feb 2016 20:37:36 +0000 (14:37 -0600)]
Upgrade CLI version and buildtools, and make build file changes.
Unset CORE_ROOT in environment on Windows before doing restore so that dotnet CLI doesn't try to run using binaries from the test CORE_ROOT.
Restore the xunit wrapper projects in a batch rather than individually to save a lot of time.
Work around xunit.runner.msbuild not having compatible package layout by ignoring errors and adding import so that a future fix will work.
Hard-code C# language for generated wrapper projects: the $(Language) property wasn't set.
Also Change www.myget.org to dotnet.myget.org, as we switched to enterprise myget.
Add System.ObjectModel to tests\src\JIT\config\benchmark+serialize\project.json to manually upgrade it to a version that doesn't require lifting for runtime. This fixes System.ObjectModel.dll being missing from CORE_ROOT and causing the test to fail.
Switch to v3 nuget feeds and sync NuGet.Configs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d71a87375bfa54af10b68b74a4c8d93430ed308
sivarv [Wed, 2 Mar 2016 18:26:17 +0000 (10:26 -0800)]
Fix to intermittent failure of jit test 200w1d-09_cpp_r.exe
This is a long standing bug in xarch emitter that repros when a static field
access results in the following IR
lclvar = GT_IND(GT_LEA(GT_CLS_VAR_ADDR, offset=200))
GT_CLAS_VAR_ADDR represents address of the static class object and
offset is used to access a field of a static class.
In this case codegen of GT_IND would call emitInsMov(treeNode= GT_IND)
emiInsMov is checking whether 'base' of addr is GT_CLS_VAR_ADDR and if
so is disregarding offset/indiex/scale fields within addr mode. As a
result code generated is
lea rdx, [reloc classVar[0xddc44ce8]]
movsd xmm10, qword ptr [reloc classVar[0xddc44ce8]]
The bug is that emitInsMov() should be checking that oper of addr of GT_IND
is GT_CLS_VAR_ADDR. Same issue exists in GT_STOREIND case. After the
fix the following code is generated
lea rdx, [reloc classVar[0xdc5a4ce8]]
movsd xmm10, qword ptr [rdx+200]
Why this bug repros intermittently? fgMorphField() when morphing a static
field access obtains static's addr and checks to see whether its addr
can be encoded as pc-relative 32-bit offset. If so then fgMorphField() will create
GT_CLS_VAR_ADDR to represent static's addr. If static's addr cannot be
encoded pc-relative 32-bit offset then it will create long type icon to represent the
address. Later long icon + offset is folded into a single long constant
and the test passes in this case. The test fails whenver GT_CLS_VAR_ADDR +
offset materializes in IR which in turn depends on the distance between
jitted code address and the static's address. In most cases statics
were at a distance that cannot be encoded as pc-relative and hence works
correctly. Hence the intermittent failure of this test.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3eb08188497063e8251144ba1f78d23e1b9306f8
Kyungwoo Lee [Wed, 2 Mar 2016 18:14:34 +0000 (10:14 -0800)]
Merge pull request dotnet/coreclr#3444 from kyulee1/mul
ARM64: Fix for Multiplication with Overflow Check
Commit migrated from https://github.com/dotnet/coreclr/commit/
28c6b8dacf69d374a4ac5d6a49d7f67d899c0454
Kyungwoo Lee [Tue, 1 Mar 2016 17:33:13 +0000 (09:33 -0800)]
ARM64: Fix for Multiplication with Overflow Check
For 4 byte integer multiplication, JIT emits a bad-code which is valid
only for 8 byte (i8) multiplication.
For the fix, I use ```smull```(signed)/```umull```(unsigned) instructions
that contain 8 byte results from 4 byte by 4 byte multiplication.
So only one multiplication is needed instead of two for this case.
By simply shifting the results, we could get the upper results that is
used to detect overflow.
Similar transform is made for the unsigned case.
Lower is also changed to reserve a register for overflow check.
Before
smulh w10, w8, w9 --> Incorrect use: smulh is for obtaining the upper
bits [127:64] of x8 * x9
mul w8, w8, w9
cmp x10, x8, ASR dotnet/coreclr#63
After
smull x8, x8, x9 --> x8 = w8 * w9
lsr x10, x8, dotnet/coreclr#32 --> shift the upper bit of x8 to get sign bit
cmp w10, w8, ASR dotnet/coreclr#31 --> check sign bit
Commit migrated from https://github.com/dotnet/coreclr/commit/
445a810039d0801d099fd5ba543876456b248c47
Pat Gavlin [Wed, 2 Mar 2016 18:07:11 +0000 (10:07 -0800)]
Merge pull request dotnet/coreclr#3464 from kyulee1/deltest
Delete a bad test (b06435) for double to long conversion
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf1e2d8ac07ba2422fbb3119d86e4d0851d7197f
jashook [Tue, 1 Mar 2016 01:06:40 +0000 (17:06 -0800)]
Small changes to netci to enable arm64 testing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f3902d06a64eba17de66407b854d5940107a0ff6
Jan Kotas [Wed, 2 Mar 2016 17:59:39 +0000 (09:59 -0800)]
Merge pull request dotnet/coreclr#3456 from bbowyersmyth/StringReplace
Port String.Replace(char, char) from CoreRT
Commit migrated from https://github.com/dotnet/coreclr/commit/
ca6d9755b72f48b64dac9ec7a7b21c218c82588c
Kyungwoo Lee [Wed, 2 Mar 2016 01:17:14 +0000 (17:17 -0800)]
Delete a bad test (b06435) for double to long conversion
This test relies on unspecified value when a large double value
is converted to a long value where overflow occurs.
For x64(cvttsd2si), this value is MIN_INT(0x8000000000000000) while ARM64(fcvtzs) produces MAX_INT(0x7fffffffffffffff).
According to ECMA spec, the value is unspecified, so I simply delete this test.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a65b75b6e0dc3a53d5fc3aa87f6a9f4029c7453d
Sejong OH [Sat, 20 Feb 2016 20:44:13 +0000 (12:44 -0800)]
Add pulling down coredistool package for gcstress test
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4613e00119c798ec9804ebb12bf3bb89e58840c
Jan Kotas [Wed, 2 Mar 2016 11:45:39 +0000 (03:45 -0800)]
Merge pull request dotnet/coreclr#3458 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c8484734621f36d2e4113644e56109cb76192e3
Andy Ayers [Wed, 2 Mar 2016 07:24:43 +0000 (23:24 -0800)]
Inliner: fix assert for multiple failure reasons when inlining
Change dotnet/coreclr#3436 added asserts that checked that the LegacyPolicy would not
see multiple failing observations when inlining because we expect the
inliner to fail fast when it hits the first bad observation.
This change adds a test case that shows one example where we could get
two failing observations, along with code changes to fix the issue.
When an inlinee has invalid IL, an exception is raised and caught in
`jitNativeCode`. The catch there sets the inline result to the never
state. A failure code is propagated back to `fgInvokeInlineeCompiler`
which redundantly sets the inline result to a failing state with a
generic "something bad happened" observation. This second observation
triggers an assert since the jit is inlining and the result is already
known to be a failure.
The fix is to check in `fgInvokeInlineeCompiler` if the inline result
is already known to be in a failing state, and if so, forgo the new
observation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
eec9185b2257e8810d8e2af1a4bc41a05cdf51b6
John Chen [Wed, 2 Mar 2016 06:43:03 +0000 (22:43 -0800)]
Fix build break on arm caused by long path support change
[tfs-changeset: 1580615]
Commit migrated from https://github.com/dotnet/coreclr/commit/
7351e9bef26eb95cdf853a35aa45954023fd0091
Russ Keldorph [Wed, 2 Mar 2016 05:05:34 +0000 (21:05 -0800)]
Reenable tests after dotnet/coreclr#2728 workaround in place
Reenable CscBench and serialization tests that were failing due to dotnet/coreclr#2728
now that a workaround should be in place.
Also remove callipinvoke tests that were tagged as both "failing" and
"unsupported" on non-Windows platforms. Leave them in the more specific
"unsupported" file.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2d30a83ed6704206ade35238503cae9184cc5f3a
Sean Gillespie [Wed, 2 Mar 2016 04:02:52 +0000 (20:02 -0800)]
Merge pull request dotnet/coreclr#3448 from swgillespie/license_headers
Fix license header for test files
Commit migrated from https://github.com/dotnet/coreclr/commit/
2b4fec4cd86eab7f3b6e3331a84808554485265f
Bruce Bowyer-Smyth [Wed, 2 Mar 2016 03:49:41 +0000 (13:49 +1000)]
Port String.Replace(char, char) from CoreRT
Commit migrated from https://github.com/dotnet/coreclr/commit/
f007485a78024b1953a7fe1ffa845be28e93ab6c
Andy Ayers [Tue, 1 Mar 2016 21:11:59 +0000 (13:11 -0800)]
Inliner: restore some force inline overrides
Force inline should override the IL size and maxstack limits imposed
for normal inlines. This change undoes an unintentional behavior change
from recent refactoring.
Added some test cases which are sensitive to this behavior.
Also, since we now track failing inlines, dump the inline tree even
if no methods were successfully inlined.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8651c4b949d700bc952c9ce5a64098486ec55d90
Felipe Pessoto [Wed, 2 Mar 2016 00:17:37 +0000 (21:17 -0300)]
Anchor Tag fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
47a031987f97e8b703beb57b6c6780da0adea0b9
Swaroop Sridhar [Tue, 1 Mar 2016 22:21:13 +0000 (14:21 -0800)]
Merge pull request dotnet/coreclr#3438 from swaroop-sridhar/corjithost
Export CorJitHost interface
Commit migrated from https://github.com/dotnet/coreclr/commit/
526d355acc407ab59348ae97d5ade4b48ddad307
Mike McLaughlin [Tue, 1 Mar 2016 21:58:43 +0000 (13:58 -0800)]
Merge pull request dotnet/coreclr#3445 from mikem8361/buildsymbols
Enable source/line info on "release" builds
Commit migrated from https://github.com/dotnet/coreclr/commit/
d0d5891047731af024230a56d8374532f73ae1c2
John Chen [Tue, 1 Mar 2016 21:48:22 +0000 (13:48 -0800)]
Merge pull request dotnet/coreclr#3433 from JohnChen0/longpath
Support long paths in CoreCLR runtime on Windows
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce83861b249144d681077b178e6458374a0e8397
Gaurav Khanna [Tue, 1 Mar 2016 19:42:21 +0000 (11:42 -0800)]
Merge pull request dotnet/coreclr#3440 from gkhanna79/InitToolsUpdate
Map RHEL distribution to download CentOS CLI
Commit migrated from https://github.com/dotnet/coreclr/commit/
07235f7b4c3b96ff31ea36774832901958634b5f
Andy Ayers [Tue, 1 Mar 2016 19:02:10 +0000 (11:02 -0800)]
Merge pull request dotnet/coreclr#3436 from AndyAyersMS/InlineRefactorResilientPolicy
Inliner refactoring: allow repeated bad observations
Commit migrated from https://github.com/dotnet/coreclr/commit/
854af6a4e11dff8d9e09b7b7fd7a9c32eb14ca47
Kyungwoo Lee [Tue, 1 Mar 2016 17:35:54 +0000 (09:35 -0800)]
Merge pull request dotnet/coreclr#3385 from kyulee1/fixmod1
ARM64: Fix for Mod 1
Commit migrated from https://github.com/dotnet/coreclr/commit/
453884df9dc9e7082c49126b3c1d4d356d6119ed
Mike McLaughlin [Tue, 1 Mar 2016 17:26:07 +0000 (09:26 -0800)]
Enable source/line info on "release" builds
The symbol info will be stripped and put into a separate *-dbg by dotnet cli (soon).
Commit migrated from https://github.com/dotnet/coreclr/commit/
1e86aaad7f673261553895f58f5bad461b06c720
Kyungwoo Lee [Fri, 26 Feb 2016 19:30:23 +0000 (11:30 -0800)]
ARM64: Fix for Mod 1
In Arm64, mod a % b is simulated as a - a / b * b.
When b (divisor) is 1, the result is simply 0.
This optimization is done in the post-pass of morph
while JIT already expands the mod operation in the pre-pass of morph.
This unnessary expansion results in bad codegen down the road.
So, the fix is to move this special case handling in the pre-pass.
Before
fgMorphTree BB02, stmt 2 (after)
[000035] ------------- /--* lclVar int V02 tmp1
[000036] -A----------- /--* comma int
[000001] ------------- | | /--* const int 0xffffffff80000000
[000034] -A----------- | \--* = int
[000033] D------N----- | \--* lclVar int V02 tmp1
[000041] -A----------- /--* - int
[000040] ------------- | \--* lclVar int V02
[000006] -A----------- * = int
[000005] D------N----- \--* lclVar int V01 tmp0
After
[000033] ------------- /--* const int 0
[000006] -A----------- * = int
[000005] D------N----- \--* lclVar int V01 tmp0
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f63f98870ad426e3b41beab03f9b3b4ec8499e9
Gaurav Khanna [Tue, 1 Mar 2016 06:50:01 +0000 (22:50 -0800)]
Map RHEL distribution to download CentOS CLI
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f4fc97f24316cdf464671cbaeca5710a1b76665
Lubomir Litchev [Tue, 1 Mar 2016 05:29:51 +0000 (21:29 -0800)]
Merge pull request dotnet/coreclr#3351 from LLITCHEV/Issue2757
Add support for emitting GC-ness of the second return register for 16…
Commit migrated from https://github.com/dotnet/coreclr/commit/
444ca211c12c1f424acc1fa275272f284dcccb75
Brian Sullivan [Tue, 1 Mar 2016 03:21:28 +0000 (19:21 -0800)]
Merge pull request dotnet/coreclr#3437 from briansull/update-tests
Updated arm64 Tests.lst for PR dotnet/coreclr#3430
This is a test metadata only update, it contains no source code changes
Commit migrated from https://github.com/dotnet/coreclr/commit/
6f6d0f0d797cd6b04ec8678245f73af5b64e89e3
Brian Sullivan [Tue, 1 Mar 2016 02:57:36 +0000 (18:57 -0800)]
Moved 42 tests from UNSTABLE to EXPECTED_PASS
Commit migrated from https://github.com/dotnet/coreclr/commit/
47ffdb17db3ab6ab3006570660130bbb61830478
Swaroop Sridhar [Tue, 1 Mar 2016 02:24:28 +0000 (18:24 -0800)]
Export CorJitHost interface
Export the CorJitHost interface to the build directory, so that
alternate JITs can use it.
This change is necessary to fix LLILC build break.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7f0c849b562b1bec5aae353b5f8aba9c0c32a6bb