Andy Ayers [Wed, 27 Apr 2016 02:54:33 +0000 (19:54 -0700)]
Inliner: implement FullPolicy
The FullPolicy will be used to grow maximal potential inline trees
for methods. It inlines all legal candidates subject to depth and
size limits. Add a config flag to select this as the policy to use.
Also add a config flag so the inline depth limit becomes adjustable,
and rework the code so that checking this limit is now a matter of
policy. Add in an implementation max depth limit of 1000.
Revise names of some statics to make their intent clearer, and add some
missing header comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8bed64ec2b36608367fc8c075b796b1bd34ab89f
Bruce Forstall [Wed, 27 Apr 2016 16:34:54 +0000 (09:34 -0700)]
Merge pull request dotnet/coreclr#4587 from BruceForstall/FixCkFinite
Fix ckfinite for doubles for RyuJIT/x86
Commit migrated from https://github.com/dotnet/coreclr/commit/
1da89fe00fa48d589c4817093497bf8bfcfdc34a
Jose Perez Rodriguez [Wed, 27 Apr 2016 15:59:04 +0000 (08:59 -0700)]
Fix issue 4367 where file description of native tools is wrong (dotnet/coreclr#4598)
Fix issue 4367 where file description of native tools is wrong
Commit migrated from https://github.com/dotnet/coreclr/commit/
59fcb93d6ca5df0caee211b77a8e902f6f806c62
Andy Ayers [Wed, 27 Apr 2016 15:55:39 +0000 (08:55 -0700)]
Merge pull request dotnet/coreclr#4613 from AndyAyersMS/InlineTreeXML
Update inline xml so it's deserializable
Commit migrated from https://github.com/dotnet/coreclr/commit/
133afaa3726e19b18b1c1c68d5e746b2a4405190
Bruce Forstall [Tue, 26 Apr 2016 05:31:02 +0000 (22:31 -0700)]
Fix ckfinite for doubles for RyuJIT/x86
On x86, we can't simply load a double from an xmm reg into a
64-bit integer register. It turns out we only need the high
32 bits for the instruction. But there is no SSE2 instruction
to copy just those bits to the integer registers. So, first,
to a shuffle to swap the first 32 and 2nd 32 bits in the xmm
register. Then, do the xmm2i mov and ckfinite check. Then,
swap the bits back into the original locations so we can return
the correct value in the target register.
Fixes dotnet/coreclr#3549.
Commit migrated from https://github.com/dotnet/coreclr/commit/
981f152bcd1fb8d7a28a341aa40e1b17112bad06
Andy Ayers [Wed, 27 Apr 2016 01:42:53 +0000 (18:42 -0700)]
Update inline xml so it's deserializable
Add some elements for sequences of children. Make everything
an element for now. Add header and footer.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a5d49c4578835b5ef3797935270a74ce69f981a3
Mike McLaughlin [Tue, 26 Apr 2016 23:56:44 +0000 (16:56 -0700)]
Merge pull request dotnet/coreclr#4502 from seanshpark/arm_sos_with_lldb38
ARM, SOS: Fix libsos.so load fail and changes for SOS to work with ARM-Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
18268beae931cbd4d110959ea53d785b193eceb1
SaeHie Park [Fri, 22 Apr 2016 06:36:28 +0000 (15:36 +0900)]
ARM, SOS: Fix fail to load libsos.so while debugging with lldb
Related issue: dotnet/coreclr#4428
With minor fix for ARM compile in SOS
ARM: Fix ARM-Linux in SOS with lldb
Fix ARM architecture type in SOS so that it works for ARM-Linux.
Before this patch, lldb stops with architecture not supported.
SOS ARM-Linux works with LLDB-3.8 and higher.
Actual SOS commands for ARM may need testing and fixing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8c808737cacc0a361186022a25915701b64c7ab4
SaeHie Park [Tue, 26 Apr 2016 23:07:18 +0000 (08:07 +0900)]
ARM: Add Ubuntu Codename vivid, wily for arm-linux image (dotnet/coreclr#4258)
ARM: Add Ubuntu Codename vivid, wily for arm-linux image
Commit migrated from https://github.com/dotnet/coreclr/commit/
3fbfb5eb51c87dbdeb0014492279deabf14411aa
Sean Gillespie [Tue, 26 Apr 2016 22:11:20 +0000 (15:11 -0700)]
Merge pull request dotnet/coreclr#4576 from swgillespie/longgc-ci
Enable long GC tests to run on a regular basis
Commit migrated from https://github.com/dotnet/coreclr/commit/
c723f9e3b99289c4bdeddf65cd10354a47dc5d19
Matt Mitchell [Tue, 26 Apr 2016 21:28:14 +0000 (14:28 -0700)]
Merge pull request dotnet/coreclr#4599 from Priya91/ubuntu1604
Add Ubuntu16.04 runs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2bffd78e7fea7d0c308978652f514ba7740abe7c
William Godbe [Tue, 26 Apr 2016 21:06:37 +0000 (14:06 -0700)]
Merge pull request dotnet/coreclr#4597 from wtgodbe/fxTestFix
Fix run-test.sh invocation in netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
e9e2e3e0e3a4b6776feee1f9a426cbab8f7dafd3
Lakshmi Priya Sekar [Tue, 26 Apr 2016 20:14:20 +0000 (13:14 -0700)]
Add Ubuntu16.04 runs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d71e301337f0e8b374b113b9e1e3f2126ee9aca0
wtgodbe [Tue, 26 Apr 2016 19:46:02 +0000 (12:46 -0700)]
Fix run-test.sh invocation in netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
254c131d7e385d2bfabb961a1c540058da00f504
Aditya Mandaleeka [Tue, 26 Apr 2016 19:45:46 +0000 (12:45 -0700)]
Merge pull request dotnet/coreclr#4580 from seanshpark/doc_coreoverlay
Add coreOverlay option to unix-test-instructions document
Commit migrated from https://github.com/dotnet/coreclr/commit/
dc7032c1eb5699cb0b74a0591ba1303b111e9077
Rama krishnan Raghupathy [Tue, 26 Apr 2016 18:32:14 +0000 (11:32 -0700)]
Merge pull request dotnet/coreclr#4535 from ramarag/xplateventsrc
Fixing up FEATURE_EVENTSOURCE_XPLAT
Commit migrated from https://github.com/dotnet/coreclr/commit/
57d54fcc3950b2838e1ab9c1ed8d90c564fd8b7b
Kyungwoo Lee [Tue, 26 Apr 2016 18:26:28 +0000 (11:26 -0700)]
Merge pull request dotnet/coreclr#4566 from kyulee1/nativecallable
ARM64: Fix NativeCallable
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a20f996356d84f5f047b0158a24810da2094176
Gaurav Khanna [Tue, 26 Apr 2016 18:22:49 +0000 (11:22 -0700)]
Merge pull request dotnet/coreclr#4528 from gkhanna79/DynamicJITLoad
Refactor FEATURE_MERGE_JIT_AND_ENGINE to allow consuming JIT as a dynamic library
Commit migrated from https://github.com/dotnet/coreclr/commit/
52226b2685ef7afc8fbdda90aef282e109449111
Sean Gillespie [Mon, 25 Apr 2016 18:27:15 +0000 (11:27 -0700)]
Enable long GC tests to run daily
Commit migrated from https://github.com/dotnet/coreclr/commit/
50e5a2a6d51a3dc31ab89e07d5a9f2abe573a5e2
Rahul Kumar [Tue, 26 Apr 2016 17:17:22 +0000 (10:17 -0700)]
Merge pull request dotnet/coreclr#4448 from rahku/arm64toolsetupdate
Update arm64 toolset. Link against ucrt.
This has following changes:
1. Update arm64 toolset to latest.
2. Link against ucrt.
3. Fix tls offsets which have changed due to updated toolset
4. Fix source code in decimal.cpp to avoid integer overflow. Result of signed integer overlfow is undefined in C++.
5. Enable build of sos which can be loaded in arm64 windbg
6. Add nop to empty assembly marker methods as new toolset generates invalid .pdata for them.
I have verified that arm64 runs are clean
Commit migrated from https://github.com/dotnet/coreclr/commit/
f9744f6d7e0b31edf53e7079ddef8ef6115f2736
Rahul Kumar [Tue, 19 Apr 2016 21:22:23 +0000 (14:22 -0700)]
This has following changes:
1. Update arm64 toolset to latest.
2. Link against ucrt.
3. Fix tls offsets which have changed due to updated toolset
4. Fix source code in decimal.cpp to avoid integer overflow. Result of signed integer overlfow is undefined in C++.
5. Enable build of sos which can be loaded in arm64 windbg
6. Add nop to empty assembly marker methods as new toolset generates invalid .pdata for them.
Commit migrated from https://github.com/dotnet/coreclr/commit/
27fc507393a641542a939168b41585895b6b4fc2
Gaurav Khanna [Fri, 22 Apr 2016 19:24:51 +0000 (12:24 -0700)]
Keep FEATURE_MERGE_JIT_AND_ENGINE with refactored approach
Commit migrated from https://github.com/dotnet/coreclr/commit/
140396f479d5d33bca0daef1f072eef4992ed78e
Jan Kotas [Tue, 26 Apr 2016 13:38:58 +0000 (06:38 -0700)]
Merge pull request dotnet/coreclr#4588 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
5fe61b36cc72d43263fc892c754bb9f46acb5ef5
Jan Kotas [Tue, 26 Apr 2016 06:55:13 +0000 (23:55 -0700)]
Fix razzle build break
[tfs-changeset: 1599244]
Commit migrated from https://github.com/dotnet/coreclr/commit/
24f6a8fb3453b408ae7041357782cc094759c90a
SaeHie Park [Mon, 25 Apr 2016 23:37:45 +0000 (08:37 +0900)]
Add coreOverlay option to unix-test-instructions document
Commit migrated from https://github.com/dotnet/coreclr/commit/
3b4def5c5084e845e21e378dad1f9d6af2621033
Stephen Toub [Tue, 26 Apr 2016 01:09:05 +0000 (21:09 -0400)]
Avoid defensive copy in String.Concat(string[]) (dotnet/coreclr#4559)
* Avoid defensive copy in String.Concat(string[])
Today the String.Concat(params string[]) implementation makes a defensive copy of the input string[] in order to avoid issues where another thread mutates the array concurrently with the concatenation. Such a situation is possible but exceedingly rare, so we can redo the implementation to make it cheaper when there isn't concurrent mutation and more expensive when there is, rather than always having it be more expensive.
This commit changes string.Concat to optimistically assume there won't be such concurrent mutation. It avoids allocating the defensive string[] array copy, and instead just proceeds to allocate a string of the right length and copy the input strings into it. If along the way it discovers that something has changed such that the string lengths no longer add up to exactly what was precomputed, then it falls back to the original implementation.
Example microbenchmark:
```C#
using System;
using System.Diagnostics;
public class Program
{
public static void Main()
{
string result;
string[] inputs = new[] { "abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx", "yz" };
var sw = new Stopwatch();
while (true)
{
int gen0 = GC.CollectionCount(0);
sw.Restart();
for (int i = 0; i <
20000000; i++) result = string.Concat(inputs);
sw.Stop();
Console.WriteLine($"{GC.CollectionCount(0) - gen0}: {sw.Elapsed.TotalSeconds}");
}
}
}
```
Before the change:
```
> corerun test.exe
1525: 2.0733829
1526: 2.0599474
1526: 2.0717786
1526: 2.0318797
^C
```
After the change:
```
> corerun test.exe
763: 1.4700695
762: 1.446919
763: 1.4581139
763: 1.4568889
^C
```
Commit migrated from https://github.com/dotnet/coreclr/commit/
de32aed6dabdc4f6bc7b274092330a63de972c44
Matt Mitchell [Mon, 25 Apr 2016 23:32:26 +0000 (16:32 -0700)]
Merge pull request dotnet/coreclr#4574 from wtgodbe/affinity
Set machine affinity for flow jobs in CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
13b84669db75083bcd120a292dad693980e3ec57
Kyungwoo Lee [Mon, 25 Apr 2016 18:11:14 +0000 (11:11 -0700)]
ARM64: Fix NativeCallable
Fixes https://github.com/dotnet/coreclr/issues/4422
The issue is that JIT didn't pass UMEntryThunk for the managed function
entry point which is invoked from the native function.
The fix is to enable NativeCallable attribute check to get the right entry point.
Commit migrated from https://github.com/dotnet/coreclr/commit/
76ba59032965f745926c788c879df225b9a25649
Kyungwoo Lee [Mon, 25 Apr 2016 22:23:46 +0000 (15:23 -0700)]
Merge pull request dotnet/coreclr#4577 from kyulee1/qfix
ARM64: Quick Fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
7f3b62871f5a352b7f45afc09e80f696324d25e1
Kyungwoo Lee [Mon, 25 Apr 2016 22:21:09 +0000 (15:21 -0700)]
ARM64: Quick Fix
I accidently made a wrong copy and paste.
Commit migrated from https://github.com/dotnet/coreclr/commit/
081070ad578a739144a29c401c257c6cdc9fdbc0
wtgodbe [Mon, 25 Apr 2016 22:12:09 +0000 (15:12 -0700)]
Set machine affinity for flow jobs in CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
b37e432d80cdee50a024323161450ef403db0793
Jan Kotas [Mon, 25 Apr 2016 21:11:56 +0000 (14:11 -0700)]
Merge pull request dotnet/coreclr#4561 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
5df671e6fbdaa8c356c9032b03cdb21e2c0e32be
Kyungwoo Lee [Mon, 25 Apr 2016 21:00:20 +0000 (14:00 -0700)]
Merge pull request dotnet/coreclr#4560 from kyulee1/fixvarargpinvoke
ARM64: Fix Vararg for PInvoke
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ad41b2be2ede3578e5ef4b888cec0e597c11759
Kyungwoo Lee [Fri, 22 Apr 2016 18:27:07 +0000 (11:27 -0700)]
ARM64: Fix Vararg for PInvoke
Fixes https://github.com/dotnet/coreclr/issues/4474
1. Fix entry point to `VarargPInvokeStub_RetBuffArg` instead of
`VarargPInvokeStub` to pass `VASigCookieReg` via `x1` when hasRetBuffArg is
true.
2. The previous fix for varargs SP offset is not correct when both varargs
and callee save regs exist. Fix the SP offset computation from caller's SP.
3. Fix epilog which didn't take varargs into account.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4c7af3acab0189dfef9e5ac3f5911dabd46f0fed
DDCloud [Mon, 28 Mar 2016 23:55:01 +0000 (16:55 -0700)]
Fixing up FEATURE_EVENTSOURCE_XPLAT
Commit migrated from https://github.com/dotnet/coreclr/commit/
33332a82daaeae7dcb4b2e20b6e3fd0e16ab3482
Rahul Kumar [Mon, 25 Apr 2016 18:51:56 +0000 (11:51 -0700)]
Merge pull request dotnet/coreclr#4553 from janvorli/fix-pslog-path
Fix PS version log path
Commit migrated from https://github.com/dotnet/coreclr/commit/
c76a1d610c4ed048cf83f4020035d82f0d77b9b5
William Godbe [Mon, 25 Apr 2016 18:42:58 +0000 (11:42 -0700)]
Merge pull request dotnet/coreclr#4564 from wtgodbe/coverageFix
fix calls to runtest.sh in code coverage build
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4d0667c3f9ca9caeebaa93d24aee30c8f38f5c2
Kyungwoo Lee [Mon, 25 Apr 2016 18:08:50 +0000 (11:08 -0700)]
Merge pull request dotnet/coreclr#4542 from kyulee1/nobld
No BuildOnly job for ARM64
Commit migrated from https://github.com/dotnet/coreclr/commit/
225674d26faf6e5498e1c98ecd9406be1792b8a3
Sean Gillespie [Mon, 25 Apr 2016 18:03:39 +0000 (11:03 -0700)]
Merge pull request dotnet/coreclr#4565 from swgillespie/playlists-2
Fix error in invocation of runtests.sh for long GC tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
9b55c8e967ccd6fe27b7d5e561612246873165af
wtgodbe [Mon, 25 Apr 2016 17:08:04 +0000 (10:08 -0700)]
fix calls to runtest.sh in code coverage build
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce419cad106f14a33cc5680f9dfce9950d52514f
Sean Gillespie [Mon, 25 Apr 2016 17:11:09 +0000 (10:11 -0700)]
Fix error in invocation of runtests.sh for long GC tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a3d44e74a249fe87adefe717b5cd556f9be6861
Matt Mitchell [Mon, 25 Apr 2016 16:58:48 +0000 (09:58 -0700)]
Merge pull request dotnet/coreclr#4141 from prajwal-aithal/devel/native-arm-ci
Add CI support for Linux ARM emulator
Commit migrated from https://github.com/dotnet/coreclr/commit/
5a20e076d9d1fbd3de4f3ac9bfa2b0ff9628adb6
Jan Kotas [Mon, 25 Apr 2016 14:29:52 +0000 (07:29 -0700)]
Add back internal FromCancellation methods
System.Runtime.WindowsRuntime implementation depends on them
[tfs-changeset: 1598965]
Commit migrated from https://github.com/dotnet/coreclr/commit/
3e47d44bff1ab7b272de754113a85671b1f5423c
Jan Vorlicek [Mon, 25 Apr 2016 14:27:02 +0000 (07:27 -0700)]
Merge pull request dotnet/coreclr#4460 from parjong/fix/issue_4404
Uses initialized unw_context_t instead of uninitialized one
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4a0c98063b924c49cb786e10d8a1c88efb6affc
Jan Vorlicek [Mon, 25 Apr 2016 04:16:51 +0000 (21:16 -0700)]
Merge pull request dotnet/coreclr#4456 from seanshpark/no-inline-asm
ARM: Fix compile error for unw usage with clang-3.8
Commit migrated from https://github.com/dotnet/coreclr/commit/
661e5d078fdbbb4b0acd98a023d8a66762af5a4a
Jan Vorlicek [Mon, 25 Apr 2016 03:46:25 +0000 (20:46 -0700)]
Fix PS version log path
The PS version log path is incorrectly set to the root of the current drive when
building for ARM64 with toolset_dir set. In that case, the `%~dp0` doesn't hold
the current drive and directory anymore.
I have fixed it by using `__LogsDir` instead. It it a good practice to put generated
files somewhere under the bin folder and the logs directory seems appropriate.
Commit migrated from https://github.com/dotnet/coreclr/commit/
33e3a6f68591baf75e08f42ff098aa13568eb9db
SaeHie Park [Thu, 21 Apr 2016 02:27:52 +0000 (11:27 +0900)]
ARM: Fix compile error for unw usage with clang-3.8
This fix is also needed when using clang-3.8
Previous related patch is dotnet/coreclr#4260
Commit migrated from https://github.com/dotnet/coreclr/commit/
a05f28718a8d370e9642115d3c3c92991eda47d8
Jonghyun Park [Sun, 24 Apr 2016 23:12:43 +0000 (08:12 +0900)]
Renames UpdateUnwindContextWithWinContext
Ranames UpdateUnwindContextWithWinContext as WinContextToUnwindContext,
and revises to invoke WinContextToUnwindContext always.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7cfb2620888104be5727f3c79b403ed2be2bb48c
Andy Ayers [Sun, 24 Apr 2016 19:20:27 +0000 (12:20 -0700)]
Merge pull request dotnet/coreclr#4524 from AndyAyersMS/InlineTreeXML
Inliner: enable xml format dump for inlines
Commit migrated from https://github.com/dotnet/coreclr/commit/
31fada11eeef6b21f1931c5c0f133fe521ad5d85
Bruce Forstall [Sun, 24 Apr 2016 17:07:54 +0000 (10:07 -0700)]
Merge pull request dotnet/coreclr#4491 from BruceForstall/Fix3561
Fix dotnet/coreclr#3561: assert on RyuJIT x86 when generating shl by 1
Commit migrated from https://github.com/dotnet/coreclr/commit/
98693938031330a24bed2f0a92b5f087eb2d389b
Jan Vorlicek [Sun, 24 Apr 2016 05:10:58 +0000 (22:10 -0700)]
Merge pull request dotnet/coreclr#4544 from janvorli/move-test-wrappers-to-bin
Move generated xunit test wrappers to bin folder
Commit migrated from https://github.com/dotnet/coreclr/commit/
2f04c1cd9b308e695d264ac5165b9a770934773a
James Ko [Sun, 24 Apr 2016 01:44:33 +0000 (21:44 -0400)]
Replace uses of FromCancellation -> FromCanceled in mscorlib (dotnet/coreclr#4537)
Replace uses of FromCancellation -> FromCanceled in mscorlib
Commit migrated from https://github.com/dotnet/coreclr/commit/
85ff1e3b3ca3d7eb10ab0e2e6a41bdf721be4540
Jan Vorlicek [Sun, 24 Apr 2016 01:10:50 +0000 (18:10 -0700)]
Move generated xunit test wrappers to bin folder
This change modifies the build so that the generated xunit test
wrappers are no longer placed into the source tree, but rather to
the bin folder where all files generated by the build should go.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a8615d6cf50c6d76fb4eef06a477a164d88454b0
Rama krishnan Raghupathy [Sun, 24 Apr 2016 00:50:50 +0000 (17:50 -0700)]
Merge pull request dotnet/coreclr#4533 from ramarag/GC_Stress
Fixing GC stress test layout and Creating a Sanity Run for it
Commit migrated from https://github.com/dotnet/coreclr/commit/
a04a405116190cc4d5188ff3429d79f7e2989b54
Kyungwoo Lee [Sun, 24 Apr 2016 00:06:00 +0000 (17:06 -0700)]
No BuildOnly job for ARM64
bld jobs are not interesting. So delete them from the history.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2f6b2730a8e968cac859ff1c609ec9bfe18eaa40
Jan Vorlicek [Sat, 23 Apr 2016 23:18:53 +0000 (16:18 -0700)]
Merge pull request dotnet/coreclr#4541 from janvorli/fix-pe-sections-protection-3
Fix loading of NI images on SELinux
Commit migrated from https://github.com/dotnet/coreclr/commit/
1742b7a6255f099738c5840f2e301af5e19d2f2e
Jan Vorlicek [Sat, 23 Apr 2016 19:15:29 +0000 (12:15 -0700)]
Fix loading of NI images on SELinux
This change fixes a problem that prevents us to load crossgen-ed managed
assemblies on SELinux when running in confined mode.
The problem was that when we load these images, we also apply relocations
to their sections and so we temporarily switch section protection from
RX to RW and then back. And the switching back (RW -> RX) is something
that SELinux doesn't allow.
The fix is to switch to RWX before applying to relocations for sections
that are RX, since it is allowed then to switch them back to RX.
One more change was needed to get the original protection of the section
before relocation so that we can set it back later. The PE files are
not mapped using VirtualXXXX functions in the PAL and so VirtualProtect
doesn't return the proper original protection, but a fixed value instead.
So for PAL, we derive the original protection from the section attributes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
512c90efdbfdf9b0b1050d1eaa98f4aed1e8c165
Sean Gillespie [Sat, 23 Apr 2016 20:12:20 +0000 (13:12 -0700)]
Merge pull request dotnet/coreclr#4429 from swgillespie/fixup-perf-tests
Update the GC Performance test framework since the deprecation of DNX
Commit migrated from https://github.com/dotnet/coreclr/commit/
fae8a3fbf1ddfe48f601cfb4e63cd83697d4f56e
Sean Gillespie [Sat, 23 Apr 2016 19:56:36 +0000 (12:56 -0700)]
Merge pull request dotnet/coreclr#4525 from swgillespie/unix-concurrent-gc-fix
Restore concurrent GC for non-Windows AMD64 platforms
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c25b0552895dc6086128772332329c9ccb67c14
Carol Eidt [Sat, 23 Apr 2016 14:20:57 +0000 (07:20 -0700)]
Merge pull request dotnet/coreclr#4520 from CarolEidt/BlkOpsRefactor
Block Ops Refactor
Commit migrated from https://github.com/dotnet/coreclr/commit/
f7ac21ccb24f2158989b219c36951ec67775c91b
Jan Kotas [Sat, 23 Apr 2016 12:46:00 +0000 (05:46 -0700)]
Merge pull request dotnet/coreclr#4389 from jkotas/gc-update
Integrate GC changes from CoreRT
Commit migrated from https://github.com/dotnet/coreclr/commit/
b0fab1bf2f9d711c0c3962554dc5805fcd73f041
Rama Krishnan Raghupathy [Sat, 23 Apr 2016 00:43:02 +0000 (17:43 -0700)]
Fixing GC stress test layout and Creating a Sanity Run for it
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c0f3e2fbf24a7fed29afa403c684a7305a491bc
Mike McLaughlin [Sat, 23 Apr 2016 06:28:39 +0000 (23:28 -0700)]
Merge pull request dotnet/coreclr#4532 from mikem8361/sosfixes
Fixes various SOS problems and issues.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2e7b7d3a957ff6b504f987a395937f77472db1d0
Bruce Forstall [Thu, 21 Apr 2016 22:37:06 +0000 (15:37 -0700)]
Fix dotnet/coreclr#3561: assert on RyuJIT x86 when generating shl by 1
This assert hit in the encoder when we were trying to generate an
INS_shl_N with a constant of 1, instead of using the special xarch
INS_shl_1 encoding, which saves a byte. It turns out, the assert was
and in fact amd64 does generate the suboptimal encoding currently.
The bad code occurs in the RMW case of genCodeForShift(). It turns out
that function is unnecessarily complex, unique (it doesn't use the
common RMW code paths), and has a number of other latent bugs.
To fix this, I split genCodeForShift() by leaving the non-RMW case
there, and adding a genCodeForShiftRMW() function just for the RMW case.
I rewrote the RMW case to use the existing emitInsRMW functions.
Other related cleanups along the way:
1. I changed emitHandleMemOp to consistently set the idInsFmt field,
and changed all callers to stop pre-setting or post-setting this field.
This makes the API much easier to understand. I added a big header
comment for the function. Now, it takes a "basic" insFmt (using ARD,
AWR, or ARW forms), which might be munged to a MRD/MWR/MRW form
if necessary.
2. I changed some places to always use the most derived GenTree type
for all uses. For instance, if the code has
"GenTreeIndir* mem = node->AsIndir()", then always use "mem" from then
on, and don't use "node". I changed some functions to take more derived
GenTree node types.
3. I rewrote the emitInsRMW() functions to be much simpler, and rewrote
their header comments.
4. I added GenTree predicates OperIsShift(), OperIsRotate(), and
OperIsShiftOrRotate().
5. I added function genMapShiftInsToShiftByConstantIns() to encapsulate
mapping from INS_shl to INS_shl_N or INS_shl_1 based on a constant.
This code was in 3 different places already.
6. The change in assertionprop.cpp is simply to make JitDumps readable.
In addition to fixing the bug for RyuJIT/x86, there are a small number
of x64 diffs where we now generate smaller encodings for shift by 1.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a67c5824baa6887fa2a2cd26da59e26037cf883
James Ko [Sat, 23 Apr 2016 03:10:46 +0000 (23:10 -0400)]
Remove NEW_EXPERIMENTAL_ASYNC_IO define from mscorlib (dotnet/coreclr#4530)
Commit migrated from https://github.com/dotnet/coreclr/commit/
25c0a14c4db495ab452186f5b93b891977d71294
Mike McLaughlin [Sat, 23 Apr 2016 00:18:03 +0000 (17:18 -0700)]
Fixes various SOS problems and issues.
Fixes not printing the method names in various sos commands (clrstack, ip2md, etc). This was because a NetBSD build change
caused the sos output formatting to use the linux C++ runtime _vsnprintf instead of the PAL's version which supports the %S
format option for WCHAR strings.
The above also fixes issue dotnet/coreclr#4430 "SOS dumplog fails to print out full log content from coredump".
Fixes issue dotnet/coreclr#4402 "Callstack is trashed after an exception" by executing " .settings set EngineInitialization.VerifyFunctionTableCallbacks=false"
during SOS initialization.
Fixes issue dotnet/coreclr#4432 "Missing endline when final frame is HelperMethodFrame". Worked around a bug in WinDbg DML output when
displaying the IP address for a special frame by not using DML. It doesn't mean anything for special frames anyway and it is usually
is a native code address so the DML !U disassemble doesn't work. I didn't leave it blank like in "clrstack -f" for compatibility with
tests and it is what people are use to.
Commit migrated from https://github.com/dotnet/coreclr/commit/
af3210354fb5b56ab99fc98d311e1dc6ebacd6e1
William Godbe [Fri, 22 Apr 2016 22:29:58 +0000 (15:29 -0700)]
Merge pull request dotnet/coreclr#4526 from wtgodbe/groovyFix
Fix unpacking of clr tests in netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
884757e6ae8fdbd259965670aa1f3324a148c3e9
wtgodbe [Fri, 22 Apr 2016 22:20:42 +0000 (15:20 -0700)]
Fix unpacking of clr tests in netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
28de22192bba432c9c4983e9fd5d685087a2f13f
Sean Gillespie [Fri, 22 Apr 2016 21:51:38 +0000 (14:51 -0700)]
Restore the software write watch feature
Commit migrated from https://github.com/dotnet/coreclr/commit/
b4828f3acfe042905afa9809c2103fa1bedaa30e
Andy Ayers [Fri, 22 Apr 2016 19:20:15 +0000 (12:20 -0700)]
Inliner: enable xml format dump for inlines
Add new config option to dump inline trees as XML, and implement
dumping support.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b35192d4121bb7bf84e2249ac73f51c4f9b93fa5
Jose Perez Rodriguez [Fri, 22 Apr 2016 21:09:15 +0000 (14:09 -0700)]
Fix build issue on archs where msbuild is not supported (dotnet/coreclr#4517)
Fix build issue on archs where msbuild is not supported
Commit migrated from https://github.com/dotnet/coreclr/commit/
d307cedd6c9c9f69ac7555049052cd73b7522391
Sean Gillespie [Wed, 20 Apr 2016 00:00:41 +0000 (17:00 -0700)]
Update the GC Performance test framework since the deprecation of DNX
Commit migrated from https://github.com/dotnet/coreclr/commit/
c861c4d52007a611b6436ef834e02bc497c7a15c
Aditya Mandaleeka [Fri, 22 Apr 2016 20:39:56 +0000 (13:39 -0700)]
Merge pull request dotnet/coreclr#4467 from krytarowski/netbsd-support-71
Add NetBSD support in tests/runtest.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
b0d809bd6ae65e85591af504e1797b115ea25b23
William Godbe [Fri, 22 Apr 2016 20:22:08 +0000 (13:22 -0700)]
Merge pull request dotnet/coreclr#4522 from wtgodbe/coverage
Testing prints in netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
cc4e540a80fa604cd977d2e0c58b0807fa29d16a
Jan Kotas [Mon, 18 Apr 2016 17:27:56 +0000 (10:27 -0700)]
Fixes for GC update
Commit migrated from https://github.com/dotnet/coreclr/commit/
705844e4bb1a9a4402bceb6acc0761b229a066dc
Jan Kotas [Mon, 18 Apr 2016 09:31:55 +0000 (02:31 -0700)]
Update GC from CoreRT
https://github.com/dotnet/corert/tree/master/src/Native/gc dotnet/coreclr@
102af78f9169082478165e7c676bbee6ae194940
Commit migrated from https://github.com/dotnet/coreclr/commit/
71ccdf5472c97326305ee116198218e3c9df4c53
wtgodbe [Fri, 22 Apr 2016 20:13:35 +0000 (13:13 -0700)]
Testing prints in netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
e91b81c2efbc72dd8600ca7aaea7f1eac03c11b2
Sean Gillespie [Fri, 22 Apr 2016 20:05:58 +0000 (13:05 -0700)]
Merge pull request dotnet/coreclr#4493 from swgillespie/playlist
Add a "playlists" flag to runtests.sh that will run a list of tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba1ac1583e3527540a195b484611d31b8eb3286c
Bruce Forstall [Fri, 22 Apr 2016 20:01:25 +0000 (13:01 -0700)]
Merge pull request dotnet/coreclr#4498 from BruceForstall/Fix3570
Fix dotnet/coreclr#3570: RyuJIT x86: Float/Double mismatch in CodeGen::genStoreInd()
Commit migrated from https://github.com/dotnet/coreclr/commit/
4bc8f0649dbcfbd070fdff10390a40dfcc9bf296
Bruce Forstall [Fri, 22 Apr 2016 01:14:39 +0000 (18:14 -0700)]
Fix dotnet/coreclr#3570: RyuJIT x86: Float/Double mismatch in CodeGen::genStoreInd()
There is code in the importer to insert explicit converts between float and double
but it was only running for _TARGET_64BIT_. I changed this to a more appropriate
!_LEGACY_BACKEND_.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a9584d35e4e8e186c9e88851392eb8e0112121a
Carol Eidt [Fri, 22 Apr 2016 18:40:46 +0000 (11:40 -0700)]
Block Ops Refactor
Refactor the legacy code dealing with block ops to minimize diffs when they are replaced with assignments.
Also a couple of comment edits and a small cleanup in rationalizer.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3f6626d1297a3ae02a51830ff2e017462bb79dd5
Kyungwoo Lee [Fri, 22 Apr 2016 18:31:46 +0000 (11:31 -0700)]
Merge pull request dotnet/coreclr#4512 from kyulee1/vararg
ARM64: Fix Frame with VarArg
Commit migrated from https://github.com/dotnet/coreclr/commit/
d30f727e6a768968a86207fdb94ca11cc77a9527
Kyungwoo Lee [Fri, 22 Apr 2016 13:49:35 +0000 (06:49 -0700)]
ARM64: Fix Frame with VarArg
Fixes https://github.com/dotnet/coreclr/issues/4424
JIT homes incoming vararg (8) registers to the top of the stack.
When stack location is computed for local vars, JIT didn't
take it into consideration causing the overlapped stack
offsets for local vars and varargs. The stack offsets of local vars
corresponding to varargs should point to this home area instead of
the newly alloacted slot.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8737b292d81a753fc78ba600f574edaddfc37834
William Godbe [Fri, 22 Apr 2016 17:13:12 +0000 (10:13 -0700)]
Merge pull request dotnet/coreclr#4515 from wtgodbe/covr
Fix running corefx tests for coverage job
Commit migrated from https://github.com/dotnet/coreclr/commit/
2c923e35470750a98712e146995a2a9587da46db
Sean Gillespie [Thu, 21 Apr 2016 21:12:50 +0000 (14:12 -0700)]
Add a "playlists" flag to runtests.sh that will run a list of tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
25aab635b4640ff5cacb28da993a6931146ad8ea
wtgodbe [Fri, 22 Apr 2016 17:07:02 +0000 (10:07 -0700)]
Fix running corefx tests for coverage job
Commit migrated from https://github.com/dotnet/coreclr/commit/
e28ab37b503fb430e0098a92dc6cff1812ba34a8
Deepak Shankargouda [Fri, 22 Apr 2016 16:13:52 +0000 (09:13 -0700)]
Updating build tools to resolve duplicate perf test discovery (dotnet/coreclr#4492)
Commit migrated from https://github.com/dotnet/coreclr/commit/
527183caeb111b80081aff736b5fd2d3155e6e60
Jan Vorlicek [Fri, 22 Apr 2016 15:31:35 +0000 (08:31 -0700)]
Merge pull request dotnet/coreclr#4466 from krytarowski/netbsd-support-70
Implement CorUnix::GetThreadTimesInternal() for NetBSD-7.0
Commit migrated from https://github.com/dotnet/coreclr/commit/
f0f7804062b8324a4d18bffcb729a370ae9662ed
Mikhail Pilin [Fri, 22 Apr 2016 09:52:07 +0000 (11:52 +0200)]
Partly fix the build issue when path to git repository has spaces (for example "d:\z z\coreclr"). (dotnet/coreclr#4388)
The same issue in "d:\z z\coreclr\Tools\versioning.targets"(288): $(IntermediateOutputPath) should be "$(IntermediateOutputPath.TrimEnd('\'))" and all other path should be quoted with " in this line.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e769b7658f239cff2a0c80b673b91de8d686388
Mark Hurd [Fri, 22 Apr 2016 09:49:10 +0000 (19:19 +0930)]
Update ParamArrayAttribute.cs (dotnet/coreclr#4442)
A minor doc error (presumably some copy'n'paste issue).
Commit migrated from https://github.com/dotnet/coreclr/commit/
26f12966e33a6eba09d071451b2c60e3ea44047f
Bruce Bowyer-Smyth [Fri, 22 Apr 2016 09:47:45 +0000 (19:47 +1000)]
Fixes https://github.com/dotnet/coreclr/issues/4252 (dotnet/coreclr#4384)
Change Join and Concat to access iterator.Current value once. Delegate null checking to StringBuilder.Append
Commit migrated from https://github.com/dotnet/coreclr/commit/
5fe1c0ae8eb12cf04caca09a8b4a798b87eb8408
Jan Kotas [Fri, 22 Apr 2016 09:12:59 +0000 (02:12 -0700)]
Merge pull request dotnet/coreclr#4501 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4359c7d7b0983e62107ddf9dc1f56f21a019cd3
Kamil Rytarowski [Thu, 21 Apr 2016 09:04:05 +0000 (11:04 +0200)]
Add NetBSD support in tests/runtest.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c83f9b534e8a3dcf154470b492fd5d4206b99b4
Kamil Rytarowski [Thu, 21 Apr 2016 07:19:54 +0000 (09:19 +0200)]
Implement CorUnix::GetThreadTimesInternal() for NetBSD-7.0
Extract manually time used for a thread (LWP). NetBSD doesn't track
time used separately in user/kernel for threads, it's only done for
processes.
/*
* KERN_LWP structure. See notes on KERN_PROC2 about adding elements.
*/
struct kinfo_lwp {
// ...
uint32_t l_rtime_sec; /* STRUCT TIMEVAL: Real time. */
uint32_t l_rtime_usec; /* STRUCT TIMEVAL: Real time. */
// ...
};
-- /usr/include/sys/sysctl.h
Use the kvm(3) interface for this task.
The current limitation is returning time used for the current thread, not
the one selected at will - as there is no clean conversion (or rather
extraction of "lwpid_t pt_lid" from the private pthread_t structure).
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef199239c5f792b8bc3b4caa9d60a39d7842245c
Sejong Oh [Fri, 22 Apr 2016 07:24:25 +0000 (00:24 -0700)]
Merge pull request dotnet/coreclr#4398 from sejongoh/vector3_testcase
Vector3 Interop tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
42f5b498a679f5e110d9b9b6dc54bde6677ee5b7
Jan Kotas [Fri, 22 Apr 2016 04:03:29 +0000 (21:03 -0700)]
Remove __ConsoleStream from CoreCLR
[tfs-changeset: 1598441]
Commit migrated from https://github.com/dotnet/coreclr/commit/
44f54e5d36352ffb7b4395bc6922857ac7da89a9
Gregg Miskelly [Fri, 22 Apr 2016 03:38:51 +0000 (20:38 -0700)]
Fix heap corruption in CPalSynchronizationManager::DoMonitorProcesses (dotnet/coreclr#4454)
The PAL's WaitFor*Object support had a bug where if one waited on a process,
stopped, waiting and closed the process handle before the process exitted, then
later on when the process exitted it would corrupt the heap here:
LONG CPalSynchronizationManager::DoMonitorProcesses(
CPalThread * pthrCurrent)
{
...
if (lRemovingCount > 0)
{
...
// Set process status to PS_DONE
pNode->pProcLocalData->ps = PS_DONE;
The issue is that the local process data would be delete when the process
handle was closed. But the synchronization manager would still have a reference
to it.
To fix this, I changed the synchronization manager to hold onto the PAL object in
addition to the local process data.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1ccd82e8ef39f3259888543905d1f40399037248
Aditya Mandaleeka [Fri, 22 Apr 2016 03:35:46 +0000 (20:35 -0700)]
Remove GOLDEN macro. (dotnet/coreclr#4484)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c51c2a5dbafb33afc94b242636fbc4b939840974
Prajwal A N [Thu, 7 Apr 2016 05:06:06 +0000 (14:06 +0900)]
Add CI support for Linux ARM emulator
Added CI code to support building coreclr inside the
user emulated Linux ARM emulator. It uses chroot jail
to accomplish the build.
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
39a5735a66e157de3c052f378c1642e99317bd69
Swaroop Sridhar [Fri, 22 Apr 2016 00:54:48 +0000 (17:54 -0700)]
Merge pull request dotnet/coreclr#4481 from swaroop-sridhar/aagc2
GCInfo: Fix code-offset normalization on ARM
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ce162fee93d48408f7677a48db7a324bc901a18