platform/upstream/dotnet/runtime.git
8 years agoImplement DecomposeShift
Michelle McDaniel [Tue, 30 Aug 2016 16:38:20 +0000 (09:38 -0700)]
Implement DecomposeShift

This change adds support for GT_LSH, GT_RSH, and GT_RSZ for x86 longs.
These nodes are implemented via helpers, so in decompose, we must remove
the shift node from the tree and replace it with a call to the helper.
Additionally, these helpers require that the long operand is in EAX:EDX,
so rather than adding a GT_LONG to the call arg list like we would
normally, we split the high and low parts of the arg and mark them as
non-standard args in gtMorphArgs to force the low part to be in EAX and
the high part to be in EDX. The shift amount is already defaulted to ECX,
which is where the helper expects it to be.

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

8 years agoMerge pull request dotnet/coreclr#6923 from dotnet/revert-6910-sjsinju_devel
Matt Mitchell [Thu, 25 Aug 2016 21:11:37 +0000 (14:11 -0700)]
Merge pull request dotnet/coreclr#6923 from dotnet/revert-6910-sjsinju_devel

Revert "ARM-CI : Fix ARM Emulator vm runs out of space"

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

8 years agoRevert "ARM-CI : Fix ARM Emulator vm runs out of space"
Matt Mitchell [Thu, 25 Aug 2016 21:08:59 +0000 (14:08 -0700)]
Revert "ARM-CI : Fix ARM Emulator vm runs out of space"

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

8 years agoARM-CI : Fix ARM Emulator vm runs out of space (dotnet/coreclr#6910)
Sujin Kim [Thu, 25 Aug 2016 21:01:27 +0000 (06:01 +0900)]
ARM-CI : Fix ARM Emulator vm runs out of space (dotnet/coreclr#6910)

Now, ARM Emulator failed by out of space on tests (6676)
To resolve, a temp folder in the job's workspace is binded to /tmp. and then 'runtest.sh' would be run by some directories binded from /tmp.

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

8 years agoImprove perf of Encoding.GetEncoding(int) (dotnet/coreclr#6907)
Justin Van Patten [Thu, 25 Aug 2016 18:54:11 +0000 (11:54 -0700)]
Improve perf of Encoding.GetEncoding(int) (dotnet/coreclr#6907)

`Encoding.GetEncoding(int)` caches encoding instances in a `Hashtable`.
This involves locking and boxing the codepage (potentially multiple
times). For the encodings that are already cached in static fields
(e.g. UTF8, Unicode, ASCII, etc.), this is unnecessary overhead --
these instances do not need to be stored in the `Hashtable` because
they are already stored in static fields.

It turns out the only instance that would be stored in the
`Hashtable` in CoreCLR is UTF32BE. Thus, on CoreCLR, we can remove the
use of the `Hashtable` altogether, and instead store the UTF32BE
instance in a static field. This means the `Hashtable` static field,
lock object, and box allocations go away entirely on CoreCLR.

We now check for the encodings that can be cached in static fields in a
switch statement up-front. On Desktop, it then falls back to doing the
`Hashtable`-based lookup/storage, and only boxes codepage once.

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

8 years agoPut back Open key signing on the SOS.NETCore assembly. (dotnet/coreclr#6905)
Mike McLaughlin [Thu, 25 Aug 2016 16:47:52 +0000 (09:47 -0700)]
Put back Open key signing on the SOS.NETCore assembly. (dotnet/coreclr#6905)

Fix failure in SOS if System.Reflection.Metadata is missing.

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

8 years agoMerge pull request dotnet/coreclr#6909 from kouvel/Api
Stephen Toub [Thu, 25 Aug 2016 11:32:21 +0000 (07:32 -0400)]
Merge pull request dotnet/coreclr#6909 from kouvel/Api

Expose constructor with argument for safe handle types instead of con…

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

8 years agoMerge pull request dotnet/coreclr#6898 from benaadams/semaphore-timeout-0
Stephen Toub [Thu, 25 Aug 2016 11:29:39 +0000 (07:29 -0400)]
Merge pull request dotnet/coreclr#6898 from benaadams/semaphore-timeout-0

Semaphoreslim, fail faster for timeout 0

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

8 years agoSemaphoreSlim, fail faster for timeout 0
Ben Adams [Wed, 24 Aug 2016 19:02:29 +0000 (20:02 +0100)]
SemaphoreSlim, fail faster for timeout 0

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

8 years agoExpose constructor with argument for safe handle types instead of constructor without...
Koundinya Veluri [Thu, 25 Aug 2016 06:37:42 +0000 (23:37 -0700)]
Expose constructor with argument for safe handle types instead of constructor without argument

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

8 years agoCleanup/optimize many string.Compare overloads, part 1 (dotnet/coreclr#6603)
James Ko [Thu, 25 Aug 2016 05:10:46 +0000 (01:10 -0400)]
Cleanup/optimize many string.Compare overloads, part 1 (dotnet/coreclr#6603)

Cleanup, optimize some String.Compare overloads

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

8 years agoRemove idiv from ThreadPoolWorkQueue:Dequeue loop (dotnet/coreclr#6781)
Ben Adams [Thu, 25 Aug 2016 05:08:53 +0000 (06:08 +0100)]
Remove idiv from ThreadPoolWorkQueue:Dequeue loop (dotnet/coreclr#6781)

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

8 years agoMerge pull request dotnet/coreclr#6883 from gkhanna79/WinArm32
Gaurav Khanna [Thu, 25 Aug 2016 00:58:42 +0000 (17:58 -0700)]
Merge pull request dotnet/coreclr#6883 from gkhanna79/WinArm32

Enable Windows Arm32 build

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

8 years agoBetter lazy initialization for Encoding static properties (dotnet/coreclr#6890)
James Ko [Wed, 24 Aug 2016 23:18:39 +0000 (19:18 -0400)]
Better lazy initialization for Encoding static properties (dotnet/coreclr#6890)

Better lazy initialization for Encoding static properties

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

8 years agoRemove extra TypeForward from facade to fix ConfiguredTaskAwaiter (dotnet/coreclr...
Jose Perez Rodriguez [Wed, 24 Aug 2016 23:10:23 +0000 (16:10 -0700)]
Remove extra TypeForward from facade to fix ConfiguredTaskAwaiter (dotnet/coreclr#6899)

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

8 years agoFix dotnet/coreclr#3554. (dotnet/coreclr#6880)
Pat Gavlin [Wed, 24 Aug 2016 22:50:04 +0000 (15:50 -0700)]
Fix dotnet/coreclr#3554. (dotnet/coreclr#6880)

On x86, `emitter::emitInsBinary` was calling `genProduceReg` on the
`dst` tree if the source was a contained class field load and the
destination was a register. As per the comment on the offending
function, it is the caller's responsibility to call `genProduceReg`
for the destination register, if any. This was causing errors in
GC ref reporting on x86. This issue did not appear on x64 because
AFAICT we very nearly always morph class field loads into loads of
a `CNS_INT` handle (see morph.cpp:6344 in `fgMorphField` for
details).

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

8 years agoAdd single separator String.Split overloads (dotnet/coreclr#895)
Justin Van Patten [Wed, 24 Aug 2016 22:34:20 +0000 (15:34 -0700)]
Add single separator String.Split overloads (dotnet/coreclr#895)

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

8 years agoMerge pull request dotnet/coreclr#6859 from adiaaida/addNMakeOption
Michelle McDaniel [Wed, 24 Aug 2016 22:12:17 +0000 (15:12 -0700)]
Merge pull request dotnet/coreclr#6859 from adiaaida/addNMakeOption

Update build to optionally configure with nmake

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

8 years agoUpdate build to optionally configure with nmake
Michelle McDaniel [Fri, 19 Aug 2016 22:35:25 +0000 (15:35 -0700)]
Update build to optionally configure with nmake

For formatting, we want to be able to obtain the compile_commands.json
file so that we do not have to 1) do a full build of coreclr and 2)
generate it ourselves from the build log. This change modifies build.cmd
to take an option "usenmakemakefiles." This option will set
__NMakeMakefiles to 1, which is used by the gen-buildsys-win.bat script.
This option also sets all the same options as configureonly, as we cannot
do a full build using NMake Makefiles, and we only want to use this to
force CMake to generate a compile_commands.json file for the jit
directory, which it can do using NMake Makefiles, but not Visual Studio.
The update to gen-buildsys-win.bat checks the value of __NMakeMakefiles,
and if it is set to 1, it sets the CMake Generator to NMake Makefiles.

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

8 years agoMerge pull request dotnet/coreclr#6896 from dotnet-bot/from-tfs
Jan Kotas [Wed, 24 Aug 2016 20:15:05 +0000 (13:15 -0700)]
Merge pull request dotnet/coreclr#6896 from dotnet-bot/from-tfs

Merge changes from TFS

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

8 years agoDisabling test against issue 6553 (dotnet/coreclr#6895)
Jan Kotas [Wed, 24 Aug 2016 20:14:05 +0000 (13:14 -0700)]
Disabling test against issue 6553 (dotnet/coreclr#6895)

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

8 years agoAllow Ubuntu 16.10 to use MSBuild (dotnet/coreclr#6897)
Eric Mellino [Wed, 24 Aug 2016 20:13:06 +0000 (13:13 -0700)]
Allow Ubuntu 16.10 to use MSBuild (dotnet/coreclr#6897)

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

8 years agoHandle multi-reg PUTARG_STK nodes. (dotnet/coreclr#6870)
Pat Gavlin [Wed, 24 Aug 2016 19:58:25 +0000 (12:58 -0700)]
Handle multi-reg PUTARG_STK nodes. (dotnet/coreclr#6870)

* Handle multi-reg PUTARG_STK nodes.

When FEATURE_MULTIREG_ARGS is true, a GT_PUTARG_STK node may have a
GT_LIST as a child if the child was originally a multi-reg argument.
Handle this case in `GenTreeUseEdgeIterator`.

Fixes dotnet/coreclr#6583.

* Update the bug number for some ARM64 failures.

These tests are now failing due to a differnt bug.

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

8 years agoMerge pull request dotnet/coreclr#6894 from adiaaida/morphingLongCall
Michelle McDaniel [Wed, 24 Aug 2016 19:54:59 +0000 (12:54 -0700)]
Merge pull request dotnet/coreclr#6894 from adiaaida/morphingLongCall

Remove NYI for helper calls with long return types

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

8 years agoSome minor changes.
Gaurav Khanna [Wed, 24 Aug 2016 19:33:27 +0000 (12:33 -0700)]
Some minor changes.

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

8 years agoMerge pull request dotnet/coreclr#6887 from BruceForstall/Fix6588a
Bruce Forstall [Wed, 24 Aug 2016 18:01:19 +0000 (11:01 -0700)]
Merge pull request dotnet/coreclr#6887 from BruceForstall/Fix6588a

Fix local var ref counts in IND/STOREIND decomposition

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

8 years agoMerge pull request dotnet/coreclr#6866 from tarekgh/GlobalizationPorting1
Tarek Mahmoud Sayed [Wed, 24 Aug 2016 17:54:28 +0000 (10:54 -0700)]
Merge pull request dotnet/coreclr#6866 from tarekgh/GlobalizationPorting1

Enable more code under globalization for netcore

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

8 years agoFix full framework build
Jan Kotas [Wed, 24 Aug 2016 17:44:37 +0000 (10:44 -0700)]
Fix full framework build

[tfs-changeset: 1623920]

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

8 years agoRemove NYI for helper calls with long return types
Michelle McDaniel [Wed, 24 Aug 2016 15:38:48 +0000 (08:38 -0700)]
Remove NYI for helper calls with long return types

The LIR changes fixed the bug in the decomp and the dumper for morphing
nodes into helper calls with long return types, so this NYI can be
removed.

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

8 years agoMerge pull request dotnet/coreclr#6882 from rahku/arm64tests
Rahul Kumar [Wed, 24 Aug 2016 06:32:05 +0000 (23:32 -0700)]
Merge pull request dotnet/coreclr#6882 from rahku/arm64tests

ARM64: update tests.lst

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

8 years agoInitial commit to build Win32 Arm CoreCLR
Gaurav Khanna [Mon, 22 Aug 2016 16:45:43 +0000 (09:45 -0700)]
Initial commit to build Win32 Arm CoreCLR

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

8 years agoMerge pull request dotnet/coreclr#6851 from ramarag/unifytestbuild
Rama krishnan Raghupathy [Wed, 24 Aug 2016 05:18:47 +0000 (22:18 -0700)]
Merge pull request dotnet/coreclr#6851 from ramarag/unifytestbuild

Changing The way Coreclr Test Builds

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

8 years agoMerge pull request dotnet/coreclr#6885 from BruceForstall/FixLIRComments
Bruce Forstall [Wed, 24 Aug 2016 04:37:42 +0000 (21:37 -0700)]
Merge pull request dotnet/coreclr#6885 from BruceForstall/FixLIRComments

Fix DecomposeStoreInd comments

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

8 years agoMerge pull request dotnet/coreclr#6869 from joperezr/AddingTimeZone
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

8 years agoModule.Name: Avoid unnecessary char[] allocation (dotnet/coreclr#6865)
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

8 years agoDateTimeFormat: Avoid intermediate char[] allocation (dotnet/coreclr#6863)
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

8 years agoAllow to use clang 3.9 in build.sh (dotnet/coreclr#6888)
Ł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

8 years ago Infra changes to unify the tests to be built against a common project.json.
Rama Krishnan Raghupathy [Wed, 24 Aug 2016 01:31:26 +0000 (18:31 -0700)]
  Infra changes to unify the  tests to be built against a common project.json.
   1. tests\src\Common\test_dependencies\project.json - To consume corefx and other nuget feeds

   2. tests\src\Common\empty\project.json - To build against the mscorlib facade,to use this just Add
            <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib> to your project

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

8 years agoCosmetic changes, removing unnceseary files and entries in project files.
Rama Krishnan Raghupathy [Wed, 24 Aug 2016 01:29:55 +0000 (18:29 -0700)]
Cosmetic changes, removing unnceseary files and entries in project files.
    Unifying the way project referring mscorlib facade builds

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

8 years agoDisable downloading xplat binaries as we no longer need to build these packages in...
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

8 years agoFix local var ref counts in IND/STOREIND decomposition
Bruce Forstall [Wed, 24 Aug 2016 00:38:30 +0000 (17:38 -0700)]
Fix local var ref counts in IND/STOREIND decomposition

When creating new references to a local variable in long decomposition,
the variable reference count must be incremented.

Fixes dotnet/coreclr#6588

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

8 years agoFix DecomposeStoreInd comments
Bruce Forstall [Wed, 24 Aug 2016 00:10:31 +0000 (17:10 -0700)]
Fix DecomposeStoreInd comments

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

8 years agoupdate tests.lst
Rahul Kumar [Tue, 23 Aug 2016 23:58:22 +0000 (16:58 -0700)]
update tests.lst

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

8 years agoMoving baseservices tests to use uber project.json
Rama Krishnan Raghupathy [Sat, 20 Aug 2016 02:08:01 +0000 (19:08 -0700)]
Moving baseservices tests to use uber project.json

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

8 years agoBulk moving Tests to use uber project.json
Rama Krishnan Raghupathy [Sat, 20 Aug 2016 02:03:28 +0000 (19:03 -0700)]
Bulk moving Tests to use uber project.json

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

8 years agoMoving GC tests to use uber project.json
Rama Krishnan Raghupathy [Sat, 20 Aug 2016 02:01:27 +0000 (19:01 -0700)]
Moving GC tests to use uber project.json

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

8 years agoMerge pull request dotnet/coreclr#6873 from BruceForstall/Fix6180
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

8 years agoEnable more code under globalization for netcore
Tarek Mahmoud Sayed [Tue, 23 Aug 2016 18:23:19 +0000 (11:23 -0700)]
Enable more code under globalization for netcore
This fix is to enable the code handling LCID for Windows in globalization namespace

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

8 years agoStop maintaining costs in fgSimpleLowering. (dotnet/coreclr#6872)
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

8 years agoMerge pull request dotnet/coreclr#6868 from mmitche/disable-node-reuse
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

8 years agoMerge pull request dotnet/coreclr#6858 from adiaaida/fixBuildsh
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

8 years agoReenable tests
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

8 years agoDisable node reuse
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

8 years agoMerge pull request dotnet/coreclr#6815 from rahku/apicompat
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

8 years agoAdd missing .gitmirror file. (dotnet/coreclr#6864)
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

8 years agoAdding System.TimeZone
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

8 years agoFix the ninja build for FC23. (dotnet/coreclr#6861)
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

8 years agoStop maintaining cost estimates in the RyuJIT backend. (dotnet/coreclr#6849)
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

8 years agoMerge pull request dotnet/coreclr#6852 from BruceForstall/Disable4702
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

8 years agoFix ConfigureOnly option in build.sh
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

8 years agoAdding missing members on System Namespace (dotnet/coreclr#6818)
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

8 years agoMerge pull request dotnet/coreclr#6664 from dagood/update-existing-pr
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

8 years agoMerge pull request dotnet/coreclr#6848 from BruceForstall/FixArm64SuperPmi2
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

8 years agoMerge pull request dotnet/coreclr#6846 from BruceForstall/FixSuperPmiX86
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

8 years agoConditionally disable C4702 "unreachable code" warnings
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

8 years agoFix SOS build break from PR dotnet/coreclr#6838. (dotnet/coreclr#6845)
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

8 years agoMerge pull request dotnet/coreclr#6847 from jhendrixMSFT/master
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

8 years agoAdding the missing string function to model.xml (dotnet/coreclr#6694)
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

8 years agoMerge pull request dotnet/coreclr#6850 from mmitche/fix-regex
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

8 years agoFix regex
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

8 years agoMerge pull request dotnet/coreclr#6822 from smile21prc/coreclr-perf
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

8 years agoFix superpmi arm64 build
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

8 years agoUse the "open" key for strong-name signing SOS.NETCore.dll.
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

8 years agoReenable superpmi test for x86
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

8 years agoRemove fgDebugCheckLinear{Tree,NodeLinks}. (dotnet/coreclr#6842)
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

8 years agoUse versions repo tooling from BuildTools.
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

8 years agoMerge pull request dotnet/coreclr#6840 from hann013/t-hazhan/SuppressIldasmAttribute
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

8 years agoMerge pull request dotnet/coreclr#6821 from mellinoe/opensuse421
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

8 years agoAdded SuppressIldasmAttribute to mscorlib and model.xml
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

8 years agoMerge pull request dotnet/coreclr#6806 from wateret/fix-hfa
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

8 years agoFurther optimizations for String.Join, String.Concat (dotnet/coreclr#6800)
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

8 years ago[ARM/Linux] Fix HFA structs
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

8 years agoMerge pull request dotnet/coreclr#6832 from dotnet-bot/from-tfs
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

8 years agoMerge remote-tracking branch 'upstream/master' into from-tfs
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

8 years agoDisable SuperPMI unit test for x86 legacy backend
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

8 years agoSuperPMI: fix ARM build break
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

8 years agoAssert that any node with a non-zero dstCount produces a value. (dotnet/coreclr#6827)
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

8 years agoDisable superpmi test for RyuJIT/x86
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

8 years agoFix build break related to LogException requiring non-empty varargs arguments
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

8 years agoFix ARM64 build breakage (dotnet/coreclr#6819)
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

8 years agoDelete CanChangeType from model.xml
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

8 years agoFix build breaks and warnings in internal build
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

8 years agoMerge pull request dotnet/coreclr#6793 from erozenfeld/TailCallInCalleeInlining
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

8 years agoFix casing of DaylightTime.cs
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

8 years agoMerge pull request dotnet/coreclr#6799 from adityamandaleeka/osx_ci_dumps
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

8 years agoMerge pull request dotnet/coreclr#6816 from CarolEidt/FixArmCrossgen2
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

8 years agoInstead of checking in these python tools, pull them from Nuget package instead.
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

8 years agoCreate SOS SymbolReader managed project and change SOS to use it. (dotnet/coreclr...
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

8 years agoOpen source SuperPMI
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

8 years agoDon't inline methods that have tail-prefixed calls.
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