Jose Perez Rodriguez [Wed, 24 Aug 2016 03:59:36 +0000 (20:59 -0700)]
Merge pull request dotnet/coreclr#6869 from joperezr/AddingTimeZone
Adding System.TimeZone
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a019ad175ff7e1d963f7e4cbd730b9ba8ac62b3
Justin Van Patten [Wed, 24 Aug 2016 03:21:45 +0000 (20:21 -0700)]
Module.Name: Avoid unnecessary char[] allocation (dotnet/coreclr#6865)
Instead of `new string(s.ToCharArray(), i + 1, s.Length - i - 1)`, use
the simpler `string.Substring(i + 1)` to avoid the unnecessary
intermediate char[] allocation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
cacf46feb64583d1e774a2a3c9c12da1120effa7
Justin Van Patten [Wed, 24 Aug 2016 03:16:22 +0000 (20:16 -0700)]
DateTimeFormat: Avoid intermediate char[] allocation (dotnet/coreclr#6863)
An unnecessary intermediate char[] allocation can be avoided by calling
`new string(c, 1)` instead of `new string(new char[] { c })`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d014a8fab82d2ff70185ae6c29d2ae5a4074cc00
Łukasz Domeradzki [Wed, 24 Aug 2016 02:42:55 +0000 (04:42 +0200)]
Allow to use clang 3.9 in build.sh (dotnet/coreclr#6888)
Can be found e.g. in Debian Sid.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bc2bcc0cde64d43019cfab61d4cc7f8cf783173f
dotnet bot [Wed, 24 Aug 2016 00:53:29 +0000 (17:53 -0700)]
Disable downloading xplat binaries as we no longer need to build these packages in razzle. (dotnet/coreclr#6871)
[tfs-changeset: 1623740]
Commit migrated from https://github.com/dotnet/coreclr/commit/
ecf77758f8364bfa3ba2494a22da81e1c5b368dc
Bruce Forstall [Tue, 23 Aug 2016 23:15:44 +0000 (16:15 -0700)]
Merge pull request dotnet/coreclr#6873 from BruceForstall/Fix6180
Reenable tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff9ac8f2be9a0bcc1657efee2b09de435c6baa0f
Pat Gavlin [Tue, 23 Aug 2016 22:41:09 +0000 (15:41 -0700)]
Stop maintaining costs in fgSimpleLowering. (dotnet/coreclr#6872)
This was causing a few asserts on x86.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9b46970f46ca055932d8a2815965fff702c37557
Matt Mitchell [Tue, 23 Aug 2016 22:34:40 +0000 (15:34 -0700)]
Merge pull request dotnet/coreclr#6868 from mmitche/disable-node-reuse
Disable node reuse
Commit migrated from https://github.com/dotnet/coreclr/commit/
24978b97358d397c264291a46af5bc2d0f290356
Michelle McDaniel [Tue, 23 Aug 2016 21:34:47 +0000 (14:34 -0700)]
Merge pull request dotnet/coreclr#6858 from adiaaida/fixBuildsh
Fix ConfigureOnly option in build.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
aeb33545748b9d727d07ab079a0e92011a5b74d9
Bruce Forstall [Tue, 23 Aug 2016 21:22:48 +0000 (14:22 -0700)]
Reenable tests
The tests disabled due to the assert in dotnet/coreclr#6180 no longer fail
(possibly as a side-effect of the LIR backend changes?), so
reenable them.
Commit migrated from https://github.com/dotnet/coreclr/commit/
49192f8292ecd1e8e0204d1a4fafe10241f86141
Matt Mitchell [Tue, 23 Aug 2016 19:03:41 +0000 (12:03 -0700)]
Disable node reuse
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d46dc0976d15292f60524fa3fcc6408f868ea1e
Rahul Kumar [Tue, 23 Aug 2016 20:34:30 +0000 (13:34 -0700)]
Merge pull request dotnet/coreclr#6815 from rahku/apicompat
Expose MulticastDelegate.GetObjectData method
Commit migrated from https://github.com/dotnet/coreclr/commit/
43d27e01d18c666f4293947666eb51343a68271a
dotnet bot [Tue, 23 Aug 2016 19:58:41 +0000 (12:58 -0700)]
Add missing .gitmirror file. (dotnet/coreclr#6864)
[tfs-changeset: 1623730]
Commit migrated from https://github.com/dotnet/coreclr/commit/
69ac976d48950b618993bc7a5e854eb1145c36e3
Jose Perez Rodriguez [Tue, 23 Aug 2016 16:31:05 +0000 (09:31 -0700)]
Adding System.TimeZone
Commit migrated from https://github.com/dotnet/coreclr/commit/
518057d4429bd8b89898bcb1e7b72ddd3e2ff915
Pat Gavlin [Tue, 23 Aug 2016 17:18:54 +0000 (10:18 -0700)]
Fix the ninja build for FC23. (dotnet/coreclr#6861)
Fedora installs ninja under the name `ninja-build` rather than `ninja`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b08d0366674eb086b1d07d14a6b36c0e2c8de203
Pat Gavlin [Tue, 23 Aug 2016 16:36:27 +0000 (09:36 -0700)]
Stop maintaining cost estimates in the RyuJIT backend. (dotnet/coreclr#6849)
* Summarize HIR cost estimates on Compiler.
These cost estimates are made on HIR and are not used by the backend.
Stash them before converting the function to LIR and report them at the
end of compilation.
* Stop maintaining costs in the backend.
The backend does not use the tree cost estimates.
* Remove a bit more cost maintenance.
* Address PR feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab703ce987243e9573e04a05894294621e7046a8
Bruce Forstall [Tue, 23 Aug 2016 16:32:42 +0000 (09:32 -0700)]
Merge pull request dotnet/coreclr#6852 from BruceForstall/Disable4702
Conditionally disable C4702 "unreachable code" warnings
Commit migrated from https://github.com/dotnet/coreclr/commit/
60ee81121cf4aa7f4b74f1646db6a3989fe061ec
Michelle McDaniel [Mon, 22 Aug 2016 18:01:41 +0000 (11:01 -0700)]
Fix ConfigureOnly option in build.sh
ConfigureOnly is intended to run the CMake to configure the build, but
nothing else. However, when you passed configureonly to build.sh, it set
__SkipConfigure=1, which made it skip the configure step of the build.
This change fixes that by removing that option from the options set my
configureonly, and adds a check right after configure and right before
running the build to exit if we are only configuring.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a69d5a89a1c018f9179c0f02eca1e995cd52cf9b
Jose Perez Rodriguez [Tue, 23 Aug 2016 15:40:23 +0000 (08:40 -0700)]
Adding missing members on System Namespace (dotnet/coreclr#6818)
Adding missing members on System Namespace
Commit migrated from https://github.com/dotnet/coreclr/commit/
4212e7e0c9388337adc0feb5bc2046ca29681b78
Davis Goodin [Tue, 23 Aug 2016 15:28:31 +0000 (10:28 -0500)]
Merge pull request dotnet/coreclr#6664 from dagood/update-existing-pr
Use versions repo tooling from BuildTools
Commit migrated from https://github.com/dotnet/coreclr/commit/
3bb39a56e3fc96a7bdcc668be745551249e5cd4e
Bruce Forstall [Tue, 23 Aug 2016 04:52:16 +0000 (21:52 -0700)]
Merge pull request dotnet/coreclr#6848 from BruceForstall/FixArm64SuperPmi2
Fix superpmi arm64 build
Commit migrated from https://github.com/dotnet/coreclr/commit/
5cc75c3933979b788073ff065d81916680bccf5a
Bruce Forstall [Tue, 23 Aug 2016 04:44:29 +0000 (21:44 -0700)]
Merge pull request dotnet/coreclr#6846 from BruceForstall/FixSuperPmiX86
Reenable superpmi test for x86
Commit migrated from https://github.com/dotnet/coreclr/commit/
1aa8df1fe0f2b05160b24f4cfb246702db94cc49
Bruce Forstall [Tue, 23 Aug 2016 00:34:44 +0000 (17:34 -0700)]
Conditionally disable C4702 "unreachable code" warnings
The CLR header file check.h, macro CHECK_MSG_EX, can create unreachable code if the LEAVE_DEBUG_ONLY_CODE
macro is not empty (such as it is defined in contract.h) and the _RESULT macro expands to "return".
Checked-in compilers used by the TFS-based desktop build (e.g., version 18.10.40116.8) started reporting
unreachable code warnings when debugholder.h was changed to no longer #define "return" to something relatively
complex. However, newer compilers, such as Visual Studio 2015, used to build the CLR from the open source
GitHub repo, still do not report this warning. We don't want to disable this warning for the open source build,
which will use a newer compiler. Hence, only disable it for older compilers.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c3fa47e14b09cd461f723bdc6306e74f98eede4f
dotnet bot [Tue, 23 Aug 2016 00:02:16 +0000 (17:02 -0700)]
Fix SOS build break from PR dotnet/coreclr#6838. (dotnet/coreclr#6845)
[tfs-changeset: 1623588]
Commit migrated from https://github.com/dotnet/coreclr/commit/
a1ee7b807b78c99979996e924f94bf58dd2116ec
Joel Hendrix [Mon, 22 Aug 2016 23:25:43 +0000 (16:25 -0700)]
Merge pull request dotnet/coreclr#6847 from jhendrixMSFT/master
Use the "open" key for strong-name signing SOS.NETCore.dll.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c136d19291808bc9250005cef203b3edf415d81a
Jonathan Miller [Mon, 22 Aug 2016 23:17:09 +0000 (16:17 -0700)]
Adding the missing string function to model.xml (dotnet/coreclr#6694)
* Adding + stubbing out the missing Globalization functions
* Doing the correct native implementation now...
Commit migrated from https://github.com/dotnet/coreclr/commit/
c940bc816db970c4dcb3130f6e1a8f3a51d73328
Matt Mitchell [Mon, 22 Aug 2016 23:16:15 +0000 (16:16 -0700)]
Merge pull request dotnet/coreclr#6850 from mmitche/fix-regex
Fix regex
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4ccc5434a72bc534e967b1b4313ff531a84ddfb
Matt Mitchell [Mon, 22 Aug 2016 23:14:43 +0000 (16:14 -0700)]
Fix regex
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ad3ea795991f05ddc821e694b71c6f3c3fa4ed7
smile21prc [Mon, 22 Aug 2016 22:54:07 +0000 (15:54 -0700)]
Merge pull request dotnet/coreclr#6822 from smile21prc/coreclr-perf
Automate enhancement on the perf data collection for JIT CodeQuality benchmarks on Windows.
Commit migrated from https://github.com/dotnet/coreclr/commit/
098cb9e831b1e2ab1d66355c28c627cc704bbd08
Bruce Forstall [Mon, 22 Aug 2016 22:08:25 +0000 (15:08 -0700)]
Fix superpmi arm64 build
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2324b6744f05a051829a2aa65b745bb073d6f98
Joel Hendrix [Mon, 22 Aug 2016 21:51:48 +0000 (14:51 -0700)]
Use the "open" key for strong-name signing SOS.NETCore.dll.
Switch to using the OSS strong name instead of the default MSFT one.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5339543e0299d40ffbe93b65ced29cd4d4a537ee
Bruce Forstall [Mon, 22 Aug 2016 21:10:50 +0000 (14:10 -0700)]
Reenable superpmi test for x86
Replace Roslyn CscBench with Bytemark, since CscBench fails with
an inlining assert (opened as issue dotnet/coreclr#6844) on x86.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ced16dbc4b37370ede18b0bad1b5e8d6cc939320
Pat Gavlin [Mon, 22 Aug 2016 21:01:31 +0000 (14:01 -0700)]
Remove fgDebugCheckLinear{Tree,NodeLinks}. (dotnet/coreclr#6842)
These functions are not necessary for LIR.
Commit migrated from https://github.com/dotnet/coreclr/commit/
caaca713decbaefa91d55973f18600786714448a
Davis Goodin [Mon, 8 Aug 2016 23:45:59 +0000 (18:45 -0500)]
Use versions repo tooling from BuildTools.
Sets up dependencies.props config. Removes UpdateDependencies powershell script, to be replaced by a call into VersionTools in Maestro automation. Changes UpdatePublishedVersions to pass through to VersionTools for backward compatibility.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5a63fd855de5d38d8429b68c50c08b8f00973d22
Hannah Zhang [Mon, 22 Aug 2016 20:12:48 +0000 (13:12 -0700)]
Merge pull request dotnet/coreclr#6840 from hann013/t-hazhan/SuppressIldasmAttribute
Added SuppressIldasmAttribute
Commit migrated from https://github.com/dotnet/coreclr/commit/
784f4d93d43f29cc52d41ec9fae5a96ad68633cb
Eric Mellino [Mon, 22 Aug 2016 17:29:35 +0000 (10:29 -0700)]
Merge pull request dotnet/coreclr#6821 from mellinoe/opensuse421
Add a CI job for openSUSE 42.1
Commit migrated from https://github.com/dotnet/coreclr/commit/
158db015291e012bb79c6eba15718834cb4ae173
Hannah Zhang [Mon, 22 Aug 2016 17:24:29 +0000 (10:24 -0700)]
Added SuppressIldasmAttribute to mscorlib and model.xml
Commit migrated from https://github.com/dotnet/coreclr/commit/
cd62a87885db9f020e643486e078434e5f0e46b4
Brian Sullivan [Mon, 22 Aug 2016 14:05:34 +0000 (07:05 -0700)]
Merge pull request dotnet/coreclr#6806 from wateret/fix-hfa
[ARM/Linux] Fix HFA structs
Commit migrated from https://github.com/dotnet/coreclr/commit/
d872d88defabcce0f9a1a92d2ddd4b1ded105d46
James Ko [Mon, 22 Aug 2016 02:00:19 +0000 (22:00 -0400)]
Further optimizations for String.Join, String.Concat (dotnet/coreclr#6800)
* Apply length-1 optimization to Join(string, object[])
* Apply length-1 optimization to Concat(IEnumerable<string>)
* Apply length-1 optimization to Concat(IEnumerable<T>)
* Apply lengths 0/1 optimizations to Concat(object[]), Concat(string[])
Commit migrated from https://github.com/dotnet/coreclr/commit/
d39efa70a59c853b689a7bfc0afb5687920d8d25
Hanjoung Lee [Fri, 19 Aug 2016 07:32:00 +0000 (16:32 +0900)]
[ARM/Linux] Fix HFA structs
Re-enable FEATURE_MULTIREG_RET for ARM32 which was disabled by dotnet/coreclr#6467.
Fix dotnet/coreclr#6677
Commit migrated from https://github.com/dotnet/coreclr/commit/
400dee451355e92f604934479f0df75c20005604
Bruce Forstall [Sun, 21 Aug 2016 03:51:31 +0000 (20:51 -0700)]
Merge pull request dotnet/coreclr#6832 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
bb8345f0d91872c57b69e43c43e3e158dd1f2339
Matt Ellis [Sun, 21 Aug 2016 01:29:38 +0000 (18:29 -0700)]
Merge remote-tracking branch 'upstream/master' into from-tfs
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d25412997731f0738dc6d81f7d92fa260ce10f0
Bruce Forstall [Sat, 20 Aug 2016 20:27:20 +0000 (13:27 -0700)]
Disable SuperPMI unit test for x86 legacy backend
[tfs-changeset: 1623421]
Commit migrated from https://github.com/dotnet/coreclr/commit/
204108f12a53fca7b7a2c2e45d0cd6ae3ee0b644
Bruce Forstall [Sat, 20 Aug 2016 20:15:09 +0000 (13:15 -0700)]
SuperPMI: fix ARM build break
[tfs-changeset: 1623419]
Commit migrated from https://github.com/dotnet/coreclr/commit/
627f3a3eb006f876546197a283b79ddf17ad52a6
Pat Gavlin [Sat, 20 Aug 2016 17:41:28 +0000 (10:41 -0700)]
Assert that any node with a non-zero dstCount produces a value. (dotnet/coreclr#6827)
* Assert that any node with a non-zero dstCount produces a value.
The register allocator will otherwise misallocate, as such nodes will
produce an unconsumed value.
* Fix the dstCount for GT_RETFILT.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fb470cb634bcd48501081a8dc9dee195a8e356f5
Bruce Forstall [Sat, 20 Aug 2016 17:15:38 +0000 (10:15 -0700)]
Disable superpmi test for RyuJIT/x86
[tfs-changeset: 1623413]
Commit migrated from https://github.com/dotnet/coreclr/commit/
91cbbc1709165414f949df25316f720f7e87753f
Bruce Forstall [Sat, 20 Aug 2016 17:07:50 +0000 (10:07 -0700)]
Fix build break related to LogException requiring non-empty varargs arguments
[tfs-changeset: 1623412]
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c8beb2dd90c567a3f590ea204d865e01938c90d
Peter Jas [Sat, 20 Aug 2016 07:05:50 +0000 (10:05 +0300)]
Fix ARM64 build breakage (dotnet/coreclr#6819)
Commit migrated from https://github.com/dotnet/coreclr/commit/
fcb97bac543cc65c7f727be2440837fff9b1a6e6
Jan Kotas [Sat, 20 Aug 2016 06:51:25 +0000 (23:51 -0700)]
Delete CanChangeType from model.xml
[tfs-changeset: 1623392]
Commit migrated from https://github.com/dotnet/coreclr/commit/
f9679ca0c4816fdb74f3861a1d23747df8f4a63f
Jan Kotas [Sat, 20 Aug 2016 03:28:13 +0000 (20:28 -0700)]
Fix build breaks and warnings in internal build
[tfs-changeset: 1623382]
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6753d1ba1bde374befac3ad31b2b6b86eba0927
Eugene Rozenfeld [Sat, 20 Aug 2016 01:47:13 +0000 (18:47 -0700)]
Merge pull request dotnet/coreclr#6793 from erozenfeld/TailCallInCalleeInlining
Don't inline methods that have tail-prefixed calls.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f725c3a616b1e55db17b239b0256648fecd2356e
Jose Perez Rodriguez [Sat, 20 Aug 2016 00:41:31 +0000 (17:41 -0700)]
Fix casing of DaylightTime.cs
[tfs-changeset: 1623368]
Commit migrated from https://github.com/dotnet/coreclr/commit/
22049defe2dedfdf6f09e27d5dc503888bee27c6
Aditya Mandaleeka [Sat, 20 Aug 2016 00:29:09 +0000 (17:29 -0700)]
Merge pull request dotnet/coreclr#6799 from adityamandaleeka/osx_ci_dumps
Enable additional functionality for OS X CI dumps.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b5643e73dfa310b803b66c2c9ec8c8c43fbb7a0b
Carol Eidt [Fri, 19 Aug 2016 23:39:19 +0000 (16:39 -0700)]
Merge pull request dotnet/coreclr#6816 from CarolEidt/FixArmCrossgen2
Fix dstCount of GT_RETURNTRAP for Arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b64dcbb1d29a94ed88f27f2a2a4ed42cf508d0e
Smile Wei [Fri, 19 Aug 2016 23:37:12 +0000 (16:37 -0700)]
Instead of checking in these python tools, pull them from Nuget package instead.
Commit migrated from https://github.com/dotnet/coreclr/commit/
405f7d74da839efd56ff63b116c4ae6e83b74c9e
Mike McLaughlin [Fri, 19 Aug 2016 23:06:56 +0000 (16:06 -0700)]
Create SOS SymbolReader managed project and change SOS to use it. (dotnet/coreclr#6783)
* Change SOS to use wrapper class that is now in System.Diagnostics.StackTrace.
The portable PDB helper code for SOS source/line support has been moved from
System.Diagnostics.Debug.SymbolReader to a new managed SOS project in the coreclr
repo called SOS.NETCore.
The public APIs have now been made internal.
Plumb through the loaded PE address to the managed SymbolReader functions so it can be used as a key.
Fixed a stack trashing/overflow when a unresolved managed breakpoint is resolved because one of the
module name buffers was too small (MAX_PATH_FNAME). Changed it (and others) to MAXLONGPATH.
SOS now works with Portable PDBs on Windows.
New dac private get module data request. Used to get the necessary info for portable PDBs.
SOS now supports in-memory PE's on xplat and Windows. Needed to get and plumb though the in-memory
PE layout where it is file based or loaded.
Better Windows GetLineByILOffset support. Uses the SymbolReader and now works with in-memory PEs.
Misc code formatting and general cleanup.
* Code review feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
75890669d59ea8e1a28ade8222ebec2706082674
Bruce Forstall [Fri, 19 Aug 2016 22:56:04 +0000 (15:56 -0700)]
Open source SuperPMI
OVERVIEW
========
This directory contains the SuperPMI tool used for testing the .NET
just-in-time (JIT) compiler.
SuperPMI has two uses:
1. Verification that a JIT code change doesn't cause any asserts.
2. Finding test code where two JIT compilers generate different code, or verifying
that the two compilers generate the same code.
Case dotnet/coreclr#1 is useful for doing quick regression checking when making a source
code change to the JIT compiler. The process is: (a) make a JIT source code
change, (b) run that newly built JIT through a SuperPMI run to verify no
asserts have been introduced.
Case dotnet/coreclr#2 is useful for generating assembly language diffs, to help analyze the
impact of a JIT code change.
SuperPMI works in two phases: collection and playback. In the collection phase,
the system is configured to collect SuperPMI data. Then, run any set of .NET managed
programs. When these managed programs invoke the JIT compiler, SuperPMI gathers and
captures all information passed between the JIT and its .NET host. In the
playback phase, SuperPMI loads the JIT directly, and causes it to compile all
the functions that it previously compiled, but using the collected data to
provide answers to various questions that the JIT needs to ask. The .NET
execution engine (EE) is not invoked at all.
TOOLS
==========
There are two native executable tools: superpmi and mcs. There is a .NET Core
C# program that is built as part of the coreclr repo tests build called
superpmicollect.exe.
All will show a help screen if passed -?.
COLLECTION
==========
Set the following environment variables:
SuperPMIShimLogPath=<full path to an empty temporary directory>
SuperPMIShimPath=<full path to clrjit.dll, the "standalone" JIT>
COMPlus_AltJit=*
COMPlus_AltJitName=superpmi-shim-collector.dll
(On Linux, use libclrjit.so and libsuperpmi-shim-collector.so. On Mac,
use libclrjit.dylib and libsuperpmi-shim-collector.dylib.)
Then, run some managed programs. When done running programs, un-set these variables.
Now, you will have a large number of .mc files. Merge these using the mcs
tool:
mcs -merge base.mch *.mc
One benefit of SuperPMI is the ability to remove duplicated compilations, so
on replay only unique functions are compiled. Use the following to create a
"unique" set of functions:
mcs -removeDup -thin base.mch unique.mch
Note that -thin is not required. However, it will delete all the compilation
result collected during the collection phase, which makes the resulting MCH
file smaller. Those compilation results are not required for playback.
Use the superpmicollect.exe tool to automate and simplify this process.
PLAYBACK
========
Once you have a merged, de-duplicated MCH collection, you can play it back
using:
superpmi unique.mch clrjit.dll
You can do this much faster by utilizing all the processors on your machine,
and replaying in parallel, using:
superpmi -p unique.mch clrjit.dll
REMAINING WORK
=============
The basic of assembly diffing are there, using the "coredistools"
package. The open source build needs to be altered to use this package
to wire up the correct build steps.
[tfs-changeset: 1623347]
Commit migrated from https://github.com/dotnet/coreclr/commit/
d85eb92698be624b181ae9685f9cceb09524f75f
Eugene Rozenfeld [Thu, 18 Aug 2016 17:28:37 +0000 (10:28 -0700)]
Don't inline methods that have tail-prefixed calls.
This commit changes the inlining behavior when the callee has tail-prefixed calls.
The jit was turning tail-prefixed calls in inlinees into normal calls. That means that
in some cases tail prefix wasn't honored. I changed the code to not inline such callees.
This matches the behavior of the legacy x64 jit. A possible improvement would be to allow
inlining when the tail-prefixed calls in the inlinee could still be dispatched as tail calls from the caller.
I enabled TailcallVerifyWithPrefix set of tests. They were disabled because Condition8.Test1, Condition8.Test2,
and Condition8.Test3 used varargs calling convention. I commented out code that was calling those tests.
I didn't delete them in case CoreCLR will support varargs in the future.
I also turned on Condition21.Test1, Condition21.Test2, Condition21.Test3, Condition21.Test6, and Condition21.Test7.
Condition21.Test3 is the test that was failing because the jit was inlining calees with tail-prefixed calls.
The other Condition21 tests above were passing and just weren't called.
Commit migrated from https://github.com/dotnet/coreclr/commit/
52184be2ba019275e8a0193e14528eb03f9758ab
Eric Mellino [Fri, 19 Aug 2016 17:15:12 +0000 (10:15 -0700)]
Use getBootstrapPublishRid function to override __PUBLISH_RID while bringing up new platforms
Commit migrated from https://github.com/dotnet/coreclr/commit/
349add9a62ff44fae1a9e84b4425e6c6d4901d89
Smile Wei [Fri, 19 Aug 2016 22:34:51 +0000 (15:34 -0700)]
1. Enable machine data collection.
2. Upload generated machinedata.json and all perf-*.xml files to /artifact/ Jenkins dir.
3. Enable InstRetired.
4. Force the perf runs to use physical machines.
5. Add test name, and benchmark InstRetired to the console output per Eugene's request.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2ebf42803190ea75ade8a415be24717a163e18e2
Eric Mellino [Thu, 18 Aug 2016 17:53:01 +0000 (10:53 -0700)]
Support MSBuild on opensuse.42.1-x64
Commit migrated from https://github.com/dotnet/coreclr/commit/
31c58c7e8a2d60add47370ee50cf4d19a796ba89
Eric Mellino [Wed, 17 Aug 2016 22:49:15 +0000 (15:49 -0700)]
Add a run for opensuse 42.1
Commit migrated from https://github.com/dotnet/coreclr/commit/
579e2d095928c141069434c28191b3caccfa5557
Carol Eidt [Fri, 19 Aug 2016 22:28:23 +0000 (15:28 -0700)]
Merge pull request dotnet/coreclr#6813 from CarolEidt/FixArmCrossgen
Fix One Arm64 crossgen failure
Commit migrated from https://github.com/dotnet/coreclr/commit/
9834cd1656c7d829a9247cf55d63d29b7ca0b4e8
Eric Mellino [Fri, 19 Aug 2016 22:17:04 +0000 (15:17 -0700)]
Merge pull request dotnet/coreclr#6811 from mellinoe/update-buildtools
Update buildtools to 1.0.26-prerelease-00718-04, remove duplicate props
Commit migrated from https://github.com/dotnet/coreclr/commit/
57211f039be0a860ae938e7b28f124c1ae6e1f32
Smile Wei [Wed, 3 Aug 2016 22:20:15 +0000 (15:20 -0700)]
Automate the perf data collection for JIT CodeQuality benchmarks on Windows.
Fix a quote.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e2f9a0f485f9f8dc35eda6bf8ffea7c3310c9c0c
Koundinya Veluri [Fri, 19 Aug 2016 21:07:55 +0000 (14:07 -0700)]
Merge pull request dotnet/coreclr#6812 from kouvel/Api
Expose some types deriving from SafeHandle
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e3ff714af876367eff9ab91781c92bdc118edb6
Carol Eidt [Fri, 19 Aug 2016 20:51:05 +0000 (13:51 -0700)]
Fix dstCount of GT_RETURNTRAP
Commit migrated from https://github.com/dotnet/coreclr/commit/
9748eeaca851a051e2f6ee6d56f5578ff8e49080
Carol Eidt [Fri, 19 Aug 2016 19:14:28 +0000 (12:14 -0700)]
Fix Arm64 crossgen
The type of the ADDR node needs to be set to TYP_BYREF for arm64.
For x64/ux, oddly, it requires the struct type. I added a TODO-Cleanu8p
comment because a GT_ADDR should never be TYP_STRUCT.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1ca8b494fe38145f04753adc341d965f2bb328d6
Jose Perez Rodriguez [Fri, 19 Aug 2016 20:30:25 +0000 (13:30 -0700)]
Using the public DaylightTime instead of the internal one in corefx dir for Linux/OSX builds.
[tfs-changeset: 1623319]
Commit migrated from https://github.com/dotnet/coreclr/commit/
951810348d16091f59f2be47f5054664272a618f
Hannah Zhang [Fri, 19 Aug 2016 20:27:20 +0000 (13:27 -0700)]
Merge pull request dotnet/coreclr#6810 from hann013/t-hazhan/SystemVersion
Added constructor to System.Version
Commit migrated from https://github.com/dotnet/coreclr/commit/
fae7a39cee7de0caaf78b42b8efd219c19723b73
Rahul Kumar [Fri, 19 Aug 2016 20:25:41 +0000 (13:25 -0700)]
Expose MulticastDelegate.GetObjectData method
Commit migrated from https://github.com/dotnet/coreclr/commit/
5907289acebb3f2957e2582e2077f5dc4b36209b
Eric Mellino [Fri, 19 Aug 2016 17:24:34 +0000 (10:24 -0700)]
Remove properties which are now defined in buildtools
These all have the same values in buildtools now
Commit migrated from https://github.com/dotnet/coreclr/commit/
d045a69ebeebf54a7ee4d2dfeb460d3795a434a2
Aditya Mandaleeka [Fri, 19 Aug 2016 02:35:45 +0000 (19:35 -0700)]
Don't create dumpling list file unless there are actually dumps.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3dedd1a9ad5a99be59d7e4cdb5aec75b4cfafa40
Koundinya Veluri [Fri, 19 Aug 2016 18:20:21 +0000 (11:20 -0700)]
Expose some types deriving from SafeHandle
- SafeHandleMinusOneIsInvalid
- SafeHandleZeroOrMinusOneIsInvalid
Part of dotnet/corefxdotnet/coreclr#10933
Commit migrated from https://github.com/dotnet/coreclr/commit/
6830e52feeb2509b7a12902a1e6dcc03a3cc38ea
Stephen Toub [Fri, 19 Aug 2016 17:59:55 +0000 (13:59 -0400)]
Merge pull request dotnet/coreclr#6808 from stephentoub/fix_wr
Fix WeakReference in mscorlib ref assembly
Commit migrated from https://github.com/dotnet/coreclr/commit/
401bc09d5c2dc9d392ccc33d20c0389d0952b608
Eric Mellino [Thu, 18 Aug 2016 18:23:31 +0000 (11:23 -0700)]
Update buildtools to 1.0.26-prerelease-00718-04
Commit migrated from https://github.com/dotnet/coreclr/commit/
6f65f807d0167f1dc76b0ccc536b06d367d9c0ac
Pat Gavlin [Fri, 19 Aug 2016 17:44:46 +0000 (10:44 -0700)]
Implement the proposed design for RyuJIT's LIR. (dotnet/coreclr#6689)
These changes implement the design for RyuJIT's LIR described in https://github.com/dotnet/coreclr/blob/master/Documentation/design-docs/removing-embedded-statements.md.
The following passes required changes:
Rationalize, which has been almost completely rewritten
Long decomposition
Target-independent lowering
Target-dependent lowering
LSRA
Liveness
Flowgraph optimization
Codegen
For the most part, these changes are confined to the backend. Common code that needed to be updated included liveness, flowgraph optimization, and a few miscellaneous utilities.
The utilities used to analyze and manipulate LIR live (almost) entirely in src/jit/lir.{cpp,h}. The core concepts that are unique to LIR are LIR::Use and LIR::Range. The latter is a tuple that captures an SDSU def (i.e. an LIR node) and its corresponding use->def edge and user. The former serves to abstract a self-contained sequence of LIR nodes that make up e.g. the contents of a basic block.
Testing indicates that neither JIT throughput nor code quality are significantly impacted by these changes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
738f93e7baf5aef7639cdd4567e9cb1746aed619
Hannah Zhang [Fri, 19 Aug 2016 17:22:17 +0000 (10:22 -0700)]
Added constructor to System.Version
Commit migrated from https://github.com/dotnet/coreclr/commit/
84854a6131dd88ae36cdc91929a9f52abce43665
Sepideh Khoshnood [Fri, 19 Aug 2016 17:14:47 +0000 (10:14 -0700)]
Expose missing members of System.Reflection in contract to prep for dotnet/corefxdotnet/coreclr#1053 (dotnet/coreclr#6614)
* Add missing Reflection APIs, Misc
* Add missing Reflection APIs, System.Reflection.Assembly
* Add missing Reflection APIs, some AssemblyAttributes, AssemblyName, AssemblyNameFlags
* Add missing Reflection APIs, ConstructorInfo, CustomAttributeData, CustomAttributeNamedArgument, CustomAttributeTypedArgument
* Add missing Reflection APIs, EventInfo, FieldInfo
* Add missing Reflection APIs, IReflect, ImageFileMachine, ExceptionHandlingClause
* Add missing Reflection APIs, ParameterInfo, PropertyInfo, Pointer, ResourceAttributes
* Add missing Reflection APIs, MethodBase, MethodBody, MethodInfo
* Fix some issues and add few more missing APIs
* Add more missing APIs
* Add rest from System.Reflection.AssemblyName
* Add serialization features, AssemblyName, Pointer, Missing
* Add more from System.Reflection.Module and add System.ModuleHandle
* Add equality operators to System.Reflection.Module* Add equality operators to System.Reflection.MemberInfo and System.Type
* Add some of missing APIs from System.Type
* Add some missing changes for System.Type
Commit migrated from https://github.com/dotnet/coreclr/commit/
00c85b302a078d5d13cfe9ff8cb453cd8296d6aa
Stephen Toub [Fri, 19 Aug 2016 12:01:38 +0000 (08:01 -0400)]
Fix WeakReference in mscorlib ref assembly
It's missing the ISerializable implementation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
827ff1970b585df00c0def7a9088dc3696abf136
Aditya Mandaleeka [Fri, 19 Aug 2016 01:13:52 +0000 (18:13 -0700)]
Print info from core dumps on OS X using LLDB.
Commit migrated from https://github.com/dotnet/coreclr/commit/
60b9b8d9a774fba6ba45aa6d141fb60be19de5ad
Carol Eidt [Thu, 18 Aug 2016 23:50:29 +0000 (16:50 -0700)]
Merge pull request dotnet/coreclr#6780 from CarolEidt/Pre1stClassStructBlkOps
Preparatory changes for Blk Ops IR
Commit migrated from https://github.com/dotnet/coreclr/commit/
85b6054a84ea41e4e109374b062f46b7b524cba4
Pat Gavlin [Thu, 18 Aug 2016 23:09:29 +0000 (16:09 -0700)]
Merge pull request dotnet/coreclr#6797 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
669699525797324f957eace35d68eecf64760c3b
Koundinya Veluri [Thu, 18 Aug 2016 22:06:27 +0000 (15:06 -0700)]
Merge pull request dotnet/coreclr#6774 from kouvel/Apis
Expose some threading type members
Commit migrated from https://github.com/dotnet/coreclr/commit/
53465170f486142a9f60ba85b999eddfc30a66cd
Bryan P. Arant [Thu, 18 Aug 2016 22:03:52 +0000 (15:03 -0700)]
Merge pull request dotnet/coreclr#6765 from bryanar/cat_call
printing dumpling url at dumpling upload time
Commit migrated from https://github.com/dotnet/coreclr/commit/
3164152bf948d0c65e353e410644994841dbbe7a
Carol Eidt [Tue, 16 Aug 2016 20:42:50 +0000 (13:42 -0700)]
Preparatory changes for Blk Ops IR
These are mostly refactoring changes, in preparation for the change to the IR for block assignments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
cccff234505abfbc0e5e030180d988106b852326
Rama krishnan Raghupathy [Thu, 18 Aug 2016 20:39:11 +0000 (13:39 -0700)]
Merge pull request dotnet/coreclr#6782 from ramarag/testjson
Restoring the Test Runtime libraries from a single project.json
Fixes dotnet/coreclr#5174
Commit migrated from https://github.com/dotnet/coreclr/commit/
64718250f692e6305950bb1d64eab326ef1dd280
Stephen Toub [Thu, 18 Aug 2016 20:17:49 +0000 (16:17 -0400)]
Merge pull request dotnet/coreclr#6796 from stephentoub/fix_serialization_issues
Fix several serialization issues
Commit migrated from https://github.com/dotnet/coreclr/commit/
94d81ad035afdba6c73fd0fa7efd3bcc32a1ec4f
Koundinya Veluri [Mon, 15 Aug 2016 18:17:48 +0000 (11:17 -0700)]
Expose some threading type members
- Exposed some public members of WaitHandle
- Fixed "path too long" error message to take a length parameter (as in mscorlib.txt) and uses of it to pass in the correct value for the length
- Made SignalAndWait implementation available on Windows, and throw PlatformNotSupportedException on others
Part of dotnet/corefxdotnet/coreclr#10933
Commit migrated from https://github.com/dotnet/coreclr/commit/
fdbe4c2fd8aff7c6c115e3228220fc47fc1eb3d6
Aditya Mandaleeka [Thu, 18 Aug 2016 19:53:00 +0000 (12:53 -0700)]
Enable additional functionality for OS X CI dumps.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c69eff4e84bc41b4d52cc62d8eacf198b49a5730
Stephen Toub [Thu, 18 Aug 2016 18:14:02 +0000 (14:14 -0400)]
Remove TypeForwardedFrom attributes for System and System.Core
These assemblies don't exist in .NET Core. Having these attributes on serializable types causes deserialization for such types to fail, as it attempts to load the assembly from which they were forwarded.
Commit migrated from https://github.com/dotnet/coreclr/commit/
97464a7c614cea28c9f526fe82c68d1a676ac964
Stephen Toub [Thu, 18 Aug 2016 18:06:39 +0000 (14:06 -0400)]
Fix serialization of delegates without targets
A null check is missing when FEATURE_REMOTING is not defined, resulting in an invalid cast exception when deserializing a delegate without a target (e.g. a delegate for a static method).
Commit migrated from https://github.com/dotnet/coreclr/commit/
3871c8b73ef7f29c7b392ed4992781fa8634579c
Stephen Toub [Thu, 18 Aug 2016 18:05:35 +0000 (14:05 -0400)]
Fix serialization of several exception types
VerificationException's deserialization ctor was being tree-shaken away.
SecurityException's deserialization ctor was ifdef'd out.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4fdd63a3bb4c4769fc42a68b6de7cfa525f4787
Joseph Tremoulet [Thu, 18 Aug 2016 15:02:56 +0000 (11:02 -0400)]
Merge pull request dotnet/coreclr#6747 from JosephTremoulet/VNLoops
Record expr location for opqaue value numbers
Commit migrated from https://github.com/dotnet/coreclr/commit/
03765d17c5a678403ab7410eb7c8dc14d488d352
Viacheslav Nikolaev [Thu, 18 Aug 2016 12:12:09 +0000 (15:12 +0300)]
An easy fix for dotnet/coreclr#6760 (dotnet/coreclr#6770)
As mentioned in dotnet/coreclr#6760 we can postpone the calculation of the NeedsTurkishCasing property.
Conflicts:
src/mscorlib/corefx/System/Globalization/TextInfo.Unix.cs
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6888eac104adf444ad4db63aedd5cee98ac088f
Rahul Kumar [Thu, 18 Aug 2016 02:37:23 +0000 (19:37 -0700)]
Due to comdat folding some fcalls are pointing to same code. This fix ensures that these fcall has a unique code address. (dotnet/coreclr#6776)
Commit migrated from https://github.com/dotnet/coreclr/commit/
473d6f1e7e30b56aaa7677da45163bc567210a62
Rama Krishnan Raghupathy [Thu, 18 Aug 2016 01:03:39 +0000 (18:03 -0700)]
Restoring the Test Runtime libraries from a single project.json
This will ensure the expected version to be present at the runtime
Commit migrated from https://github.com/dotnet/coreclr/commit/
3fc9f67dbe1765c489f469452b5b4b0b81579f98
Koundinya Veluri [Wed, 17 Aug 2016 21:48:59 +0000 (14:48 -0700)]
Fix CRWLock ID generation overflow bug
There are several problems with the CRWLock constructor, where it tries to increment a 64-bit lock ID in two 32-bit pieces using lock-free code in a fast path:
- For the lower 32 bits, LLockID, zero is reserved for identifying a free lock entry. Upon incrementing LLockID from -1 to 0, the code was not skipping zero or incrementing the upper 32 bits, ULockID. Instead, it waited for one more increment to LLockID before increment ULockID. Assignment of the invalid LLockID caused a free lock entry to be reused for a new lock, and corruption in lock state thereafter. This is the issue identified by the bug.
- If LLockID != -1 in thread A, but the compare-exchange fails because thread B had updated the value before thread A, ULockID was not being read again in thread A. If thread B had also incremented ULockID, thread A would continue to use the old ULockID.
- In the locked slow path that handles incrementing ULockID, ULockID is updated before LLockID. The constructor though, was reading ULockID before LLockID. This allows a race where Thread A reads an old value for ULockID and a new value for LLockID, increments LLockID successfully, and continues to use the old ULockID.
Due to the availability of InterlockedCompareExchange64 on all supported platforms, we decided to use that instead to simplify the solution and fix all of the above issues at the same time.
Bug: 242568
Integrated from changes: 1621197, 1621810
[tfs-changeset: 1622814]
Commit migrated from https://github.com/dotnet/coreclr/commit/
6ad3d45d6b9096b64c9d9ea933efe5f49f08c81f
Jarret Shook [Wed, 17 Aug 2016 20:05:42 +0000 (13:05 -0700)]
Merge pull request dotnet/coreclr#6773 from jashook/disable_jit32_timeouts_round_two
Disable tests that timeout for jit32
Commit migrated from https://github.com/dotnet/coreclr/commit/
f747b07156eabe7a9542deea48dcd2bb9f2bdd91
Rahul Kumar [Wed, 17 Aug 2016 18:00:15 +0000 (11:00 -0700)]
Merge pull request dotnet/coreclr#6748 from rahku/arm64ShadowHeap
update GC shadow heap as part of writebarrier jit helper
Commit migrated from https://github.com/dotnet/coreclr/commit/
24a732a7225963ef6843a50f01287adb58d243dd