platform/upstream/dotnet/runtime.git
8 years agoUpdating External dependencies to beta-24405-00
dotnet-bot [Fri, 5 Aug 2016 19:30:43 +0000 (19:30 +0000)]
Updating External dependencies to beta-24405-00

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

8 years agoMerge pull request dotnet/coreclr#6628 from vancem/WCF_ExplictChannels
Vance Morrison [Fri, 5 Aug 2016 18:53:13 +0000 (11:53 -0700)]
Merge pull request dotnet/coreclr#6628 from vancem/WCF_ExplictChannels

Wcf explict channels

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

8 years agoMerge pull request dotnet/coreclr#6495 from briansull/cleanup
Brian Sullivan [Fri, 5 Aug 2016 18:44:20 +0000 (11:44 -0700)]
Merge pull request dotnet/coreclr#6495 from briansull/cleanup

Followup work from codereview feedback

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

8 years agoMerge pull request dotnet/coreclr#6617 from adityamandaleeka/fix_sos
Aditya Mandaleeka [Fri, 5 Aug 2016 18:04:45 +0000 (11:04 -0700)]
Merge pull request dotnet/coreclr#6617 from adityamandaleeka/fix_sos

Fix bug in SymbolReader initialization in SOS

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

8 years agoMerge pull request dotnet/coreclr#6620 from hqueue/fix/typo_20160805
Aditya Mandaleeka [Fri, 5 Aug 2016 18:04:00 +0000 (11:04 -0700)]
Merge pull request dotnet/coreclr#6620 from hqueue/fix/typo_20160805

Fix misleading comment in codegenlegacy.cpp

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

8 years agoMerge pull request dotnet/coreclr#6577 from lukasztomczyk/threadpool-spinwaitconfig
Koundinya Veluri [Fri, 5 Aug 2016 17:37:02 +0000 (10:37 -0700)]
Merge pull request dotnet/coreclr#6577 from lukasztomczyk/threadpool-spinwaitconfig

Expose ThreadPool_UnfairSemaphoreSpinLimit config

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

8 years agoMerge pull request dotnet/coreclr#6609 from AndyAyersMS/InlineSummaryData
Andy Ayers [Fri, 5 Aug 2016 16:48:48 +0000 (09:48 -0700)]
Merge pull request dotnet/coreclr#6609 from AndyAyersMS/InlineSummaryData

Inliner: gather summary stats and dump to Jit CSV log

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

8 years agoFix typo/comments
Vance Morrison [Fri, 5 Aug 2016 16:28:06 +0000 (09:28 -0700)]
Fix typo/comments

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

8 years agoMerge pull request dotnet/coreclr#6618 from hseok-oh/struct8byte
Brian Sullivan [Fri, 5 Aug 2016 15:59:29 +0000 (08:59 -0700)]
Merge pull request dotnet/coreclr#6618 from hseok-oh/struct8byte

disable pass/return struct(float, float) using register in 32bit arch

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

8 years agoFix invalid checks for CONTEXT_XSTATE (dotnet/coreclr#6621)
Jan Vorlicek [Fri, 5 Aug 2016 10:48:03 +0000 (12:48 +0200)]
Fix invalid checks for CONTEXT_XSTATE (dotnet/coreclr#6621)

Checks for context flags containing CONTEXT_XSTATE were incorrect at two places.
The issue was that CONTEXT_XSTATE is not a single bit flag, but contains two
bits set - it is CONTEXT_AMD64 | 0x40. So testing the flag using
(contextFlags & CONTEXT_XSTATE) != 0 was always true, since context flags
on AMD64 always contain CONTEXT_AMD64 and so the `&` result is always non-zero.

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

8 years agoFix Issue 6585: Add offset to struct field arg (dotnet/coreclr#6616)
Carol Eidt [Fri, 5 Aug 2016 08:38:44 +0000 (01:38 -0700)]
Fix Issue 6585: Add offset to struct field arg (dotnet/coreclr#6616)

When the child of a GT_OBJ is a lclFldAddr, genConsumePutStructArgStk()
was not adding the offset of the struct field to the base address of
the local.

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

8 years agoFix misleading comment in codegenlegacy.cpp
Hyung-Kyu Choi [Fri, 5 Aug 2016 07:30:08 +0000 (16:30 +0900)]
Fix misleading comment in codegenlegacy.cpp

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/077a1ea93a6b210ca9f3b113c9707b3e019a014c

8 years agodisable pass/return struct(float, float) using register in 32bit architecture
Hyeongseok Oh [Fri, 5 Aug 2016 03:42:52 +0000 (12:42 +0900)]
disable pass/return struct(float, float) using register in 32bit architecture

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

8 years agoClean up some SOS code.
Aditya Mandaleeka [Fri, 5 Aug 2016 02:31:07 +0000 (19:31 -0700)]
Clean up some SOS code.

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

8 years agoCache failure to initialize SymbolReader logic in SOS.
Aditya Mandaleeka [Fri, 5 Aug 2016 02:19:21 +0000 (19:19 -0700)]
Cache failure to initialize SymbolReader logic in SOS.

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

8 years agoMerge pull request dotnet/coreclr#6103 from mikedn/nothrowinl
Andy Ayers [Fri, 5 Aug 2016 02:14:57 +0000 (19:14 -0700)]
Merge pull request dotnet/coreclr#6103 from mikedn/nothrowinl

Do not inline methods that never return

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

8 years agoFollowup work from codereview feedback
Brian Sullivan [Thu, 28 Jul 2016 00:39:15 +0000 (17:39 -0700)]
Followup work from codereview feedback

For PR  dotnet/coreclr#6467 - Enable multireg returns on Arm64

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

8 years agoMerge pull request dotnet/coreclr#6597 from yizhang82/test-warnings
Yi Zhang (CLR) [Fri, 5 Aug 2016 00:41:47 +0000 (17:41 -0700)]
Merge pull request dotnet/coreclr#6597 from yizhang82/test-warnings

Fix warnings in interop tests

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

8 years agoMerge pull request dotnet/coreclr#6572 from JosephTremoulet/starg
Joseph Tremoulet [Fri, 5 Aug 2016 00:31:03 +0000 (20:31 -0400)]
Merge pull request dotnet/coreclr#6572 from JosephTremoulet/starg

Allow inlining when inlinee has `starg`

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

8 years agoAllow inlining when inlinee has `starg`
Joseph Tremoulet [Fri, 29 Jul 2016 17:54:37 +0000 (13:54 -0400)]
Allow inlining when inlinee has `starg`

The inliner's restriction that methods that make use of the `starg` opcode
cannot be inlined is somewhat artificial.  The comments indicate that the
reason for this excluion is because the inliner forward-substitutes
argument expressions in place of parameter references, but the codepaths
required to force evaluating an argument expression at the callsite and
reference that result in place of parameter references is already in place
to handle `ldarga` and complex argument expressions.

This change
 - adds an `argHasStargOp` flag to the `inlArgInfo` type, similar
   to the existing `argHasLdargaOp` flag
 - removes the `CALLEE_STORES_TO_ARGUMENT` inline observation and instead
   sets the new flag for `starg` cases
 - updates `impInlineFetchArg` to force evaluation to a temp for arguments
   that are marked `argHasStargOp`
 - updates `starg` processing in the importer to store to the
   corresponding temp when importing for an inlinee

Resolves dotnet/coreclr#6014.

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

8 years agoMerge pull request dotnet/coreclr#6579 from CarolEidt/LessConservativeGtObj
Carol Eidt [Fri, 5 Aug 2016 00:04:15 +0000 (17:04 -0700)]
Merge pull request dotnet/coreclr#6579 from CarolEidt/LessConservativeGtObj

Less Conservative GtObj

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

8 years agoMerge pull request dotnet/coreclr#6608 from dotnet-bot/from-tfs
Aditya Mandaleeka [Thu, 4 Aug 2016 21:40:42 +0000 (14:40 -0700)]
Merge pull request dotnet/coreclr#6608 from dotnet-bot/from-tfs

Merge changes from TFS

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

8 years agoFix newly introduced typo in Documentation/README
Aditya Mandaleeka [Thu, 4 Aug 2016 21:14:20 +0000 (14:14 -0700)]
Fix newly introduced typo in Documentation/README

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

8 years agoFix warnings in interop tests and disable IsComObject(null) scenario as it is failing...
Yi Zhang [Thu, 4 Aug 2016 05:03:53 +0000 (22:03 -0700)]
Fix warnings in interop tests and disable IsComObject(null) scenario as it is failing in non-Windows

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

8 years agoFix link to all BotR chapters in table of contents
Aditya Mandaleeka [Thu, 4 Aug 2016 21:05:50 +0000 (14:05 -0700)]
Fix link to all BotR chapters in table of contents

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

8 years agoMerge pull request dotnet/coreclr#6612 from vancem/Doc_Add_BOTR_TOC
Vance Morrison [Thu, 4 Aug 2016 21:00:10 +0000 (14:00 -0700)]
Merge pull request dotnet/coreclr#6612 from vancem/Doc_Add_BOTR_TOC

Add a table of contents to the book of the runtime

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

8 years agoPull Request feedback
Vance Morrison [Thu, 4 Aug 2016 20:59:33 +0000 (13:59 -0700)]
Pull Request feedback

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

8 years agoAdd a table of contents to the book of the runtime
Vance Morrison [Thu, 4 Aug 2016 20:13:19 +0000 (13:13 -0700)]
Add a table of contents to the book of the runtime

 (so you have one link to go to that represents the entire book)

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

8 years agoAdding support to the following generic dictionary entry slots for R2R: (dotnet/corec...
Fadi Hanna [Thu, 4 Aug 2016 19:51:18 +0000 (12:51 -0700)]
Adding support to the following generic dictionary entry slots for R2R: (dotnet/coreclr#6291)

DeclaringTypeHandleSlot
ConstrainedMethodEntrySlot

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

8 years agoFix contract violation (violation caused by a copy/paste bug in PR 6200
Fadi Hanna [Thu, 4 Aug 2016 19:21:28 +0000 (12:21 -0700)]
Fix contract violation (violation caused by a copy/paste bug in PR 6200

[tfs-changeset: 1620960]

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

8 years agoMerge pull request dotnet/coreclr#6558 from bryanar/dumpling_ci2
Bryan P. Arant [Thu, 4 Aug 2016 19:17:53 +0000 (12:17 -0700)]
Merge pull request dotnet/coreclr#6558 from bryanar/dumpling_ci2

Collect core dump URLs from dumpling service to raise up to CI.

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

8 years agoon fail: create local_dumplings.txt with the url of the uploaded core dump file if...
Bryan Arant [Mon, 1 Aug 2016 20:25:57 +0000 (13:25 -0700)]
on fail: create local_dumplings.txt with the url of the uploaded core dump file if dumpling is enabled. After, concatenate all of the local_dumplings.txt in to $(PWD)/dumplings.txt

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

8 years agoInliner: gather summary stats and dump to Jit CSV log
Andy Ayers [Wed, 3 Aug 2016 22:37:32 +0000 (15:37 -0700)]
Inliner: gather summary stats and dump to Jit CSV log

Collect per-method summary stats about inlining: number of calls,
number of candidates, etc.

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

8 years agoUpdating External dependencies to beta-24404-00 (dotnet/coreclr#6601)
dotnet bot [Thu, 4 Aug 2016 18:36:43 +0000 (11:36 -0700)]
Updating External dependencies to beta-24404-00 (dotnet/coreclr#6601)

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

8 years agoAdded additional comments to AppendFormatHelper to explain the parsing. (dotnet/corec...
Adam Speight [Thu, 4 Aug 2016 17:38:05 +0000 (18:38 +0100)]
Added additional comments to AppendFormatHelper to explain the parsing. (dotnet/coreclr#1261)

* Added additional comments to AppendFormatHelper to explain the parsing.
* Create private static readonly properties for Index Limit and Width Limit.

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

8 years agoAdd a throw/inline benchmark
Mike Danes [Tue, 5 Jul 2016 20:45:49 +0000 (23:45 +0300)]
Add a throw/inline benchmark

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

8 years agoDo not inline methods that never return
Mike Danes [Wed, 3 Aug 2016 19:51:36 +0000 (22:51 +0300)]
Do not inline methods that never return

Methods that do not contain return blocks can't ever exit normally, they either throw or loop indefinitely. Inlining is not beneficial in such cases as it increases the code size without providing any speed benefits. In the particular case of throws the inlined code can easily be 10 times larger than the call site.

The call to fgMoreThanOneReturnBlock has been replaced with code that does the same thing but also detects the existence of at least one return block. This avoids walking the basic block list twice.

Note that BBJ_RETURN blocks are also generated for CEE_JMP. Methods exiting via CEE_JMP instead of CEE_RET will continue to be inlined (assuming they were inlined before this change).

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

8 years agoMerge pull request dotnet/coreclr#6596 from yizhang82/interop-api
Yi Zhang (CLR) [Thu, 4 Aug 2016 04:41:34 +0000 (21:41 -0700)]
Merge pull request dotnet/coreclr#6596 from yizhang82/interop-api

Add more interop API into System.Runtime

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

8 years agoMerge pull request dotnet/coreclr#6589 from briansull/issue-5954
Brian Sullivan [Thu, 4 Aug 2016 01:40:15 +0000 (18:40 -0700)]
Merge pull request dotnet/coreclr#6589 from briansull/issue-5954

Fix for Issue 5954

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

8 years agoAdding Support for FieldDescSlot generic dictionary entries for R2R generic code...
Fadi Hanna [Thu, 4 Aug 2016 01:00:49 +0000 (18:00 -0700)]
Adding Support for FieldDescSlot generic dictionary entries for R2R generic code. (dotnet/coreclr#6200)

This enables generic code with ldtoken instructions for fields on generic types to be compiled into R2R.

This change makes newer versions of the runtime compatible with older version R2R images,
but not vice-versa. Therefore, the major version is increased to 2 with this change.

This change adds more encodings to a R2R image without changing the format of any previously encoded
entity, and is backwards compatible.

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

8 years agoAdd more interop API into System.Runtime and update mscorlib.cs
Yi Zhang [Wed, 3 Aug 2016 21:30:33 +0000 (14:30 -0700)]
Add more interop API into System.Runtime and update mscorlib.cs

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

8 years agoFix for issue 5954 - Assert 'fieldSeq != FieldSeqStore::NotAField()'
Brian Sullivan [Tue, 2 Aug 2016 18:24:10 +0000 (11:24 -0700)]
Fix for issue 5954 - Assert 'fieldSeq != FieldSeqStore::NotAField()'

Added new method GenTree:OperIsLocalField()
Fixes DefinesLocalAddress to properly update pIsEntire when we have a LocalField node type
Fixed fgValueNumberBlockAssignment to handle a GT_COPYBLK or GT_COPYOBJ operation
  where we have an incomplete field sequence for the Dst/LHS node.
  We already were handling an incomplete field sequence for the Src/RHS node.
  Update the dump to properly print "new uniq" whenever we issue a conservative value number.

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

8 years agoMerge pull request dotnet/coreclr#6592 from Priya91/runpath
Lakshmi Priya [Wed, 3 Aug 2016 22:10:22 +0000 (15:10 -0700)]
Merge pull request dotnet/coreclr#6592 from Priya91/runpath

Modify rebuild scenario.

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

8 years agoUpdate documentation on how to build corefx (dotnet/coreclr#6594)
Mariana Rios Flores [Wed, 3 Aug 2016 21:55:04 +0000 (14:55 -0700)]
Update documentation on how to build corefx (dotnet/coreclr#6594)

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

8 years agoMerge pull request dotnet/coreclr#6586 from kyulee1/fixbuildtest
Kyungwoo Lee [Wed, 3 Aug 2016 20:50:26 +0000 (13:50 -0700)]
Merge pull request dotnet/coreclr#6586 from kyulee1/fixbuildtest

ARM64: Fix Build Test Break

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

8 years agoModify rebuild scenario.
Lakshmi Priya Sekar [Wed, 3 Aug 2016 20:31:06 +0000 (13:31 -0700)]
Modify rebuild scenario.

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

8 years agoMerge pull request dotnet/coreclr#6534 from RussKeldorph/fix6236
Russ Keldorph [Wed, 3 Aug 2016 19:40:25 +0000 (12:40 -0700)]
Merge pull request dotnet/coreclr#6534 from RussKeldorph/fix6236

Fix build warnings in Vector3Interop test

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

8 years agoMerge pull request dotnet/coreclr#6578 from rahku/version
Rahul Kumar [Wed, 3 Aug 2016 19:32:04 +0000 (12:32 -0700)]
Merge pull request dotnet/coreclr#6578 from rahku/version

RC2 release used version 4.6.*. However RTM release started to use th…

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

8 years agoARM64: Fix Build Test Break
Kyungwoo Lee [Wed, 3 Aug 2016 16:26:41 +0000 (09:26 -0700)]
ARM64: Fix Build Test Break

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

8 years agoMerge pull request dotnet/coreclr#6584 from kyulee1/distest
Kyungwoo Lee [Wed, 3 Aug 2016 05:32:06 +0000 (22:32 -0700)]
Merge pull request dotnet/coreclr#6584 from kyulee1/distest

ARM64: Disable Two Tests

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

8 years agoMerge pull request dotnet/coreclr#6529 from JosephTremoulet/AssertionOrder
Joseph Tremoulet [Wed, 3 Aug 2016 03:15:19 +0000 (23:15 -0400)]
Merge pull request dotnet/coreclr#6529 from JosephTremoulet/AssertionOrder

Optimize bounds checks with correct assertion set

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

8 years agoARM64: Disable Two Tests
Kyungwoo Lee [Wed, 3 Aug 2016 00:55:19 +0000 (17:55 -0700)]
ARM64: Disable Two Tests

https://github.com/dotnet/coreclr/issues/6583

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

8 years agoMerge pull request dotnet/coreclr#6576 from Priya91/runpath
Brian Sullivan [Wed, 3 Aug 2016 01:00:52 +0000 (18:00 -0700)]
Merge pull request dotnet/coreclr#6576 from Priya91/runpath

Use absolute paths for specifying projects to build.

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

8 years agoExpose ThreadPool_UnfairSemaphoreSpinLimit config
Lukasz Tomczyk [Mon, 18 Jul 2016 16:28:12 +0000 (09:28 -0700)]
Expose ThreadPool_UnfairSemaphoreSpinLimit config

Spin-wait in ThreadpoolMgr::UnfairSemaphore::Wait can cause significant
CPU usage, which is unnecessary in some scenarios, where threadpool
receives work in bursts. Use of the above parameter will allow fine tuning
of the threadpool behavior based on the workload expectation.

Fix dotnet/coreclr#5928

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

8 years agoRC2 release used version 4.6.*. However RTM release started to use the default values...
Rahul Kumar [Tue, 2 Aug 2016 22:40:23 +0000 (15:40 -0700)]
RC2 release used version 4.6.*. However RTM release started to use the default values of 1.0.* by mistake. Revert back to using 4.6 as major & minor version number

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

8 years agoLess Conservative GtObj
Carol Eidt [Tue, 2 Aug 2016 22:05:10 +0000 (15:05 -0700)]
Less Conservative GtObj

Don't mark GT_OBJ with GTF_EXCEPT or GTF_GLOB_REF if it is a local struct.
Also, fix changes needed in arm register allocation and code generation to handle the case where a struct argument is promoted, which appears to be code that was never exercised.
These changes are in preparation for further changes for First Class Structs. I am working to replace block ops with assignments, and was attempting to get to zero diffs, but it is quite difficult to do so given some inconsistencies in the treatment of GT_OBJs of locals.

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

8 years agoOptimize bounds checks with correct assertion set
Joseph Tremoulet [Mon, 18 Jul 2016 16:56:37 +0000 (12:56 -0400)]
Optimize bounds checks with correct assertion set

Assertion prop defers removing redundant bounds checks until processing
the parent comma, because the rewrite involves the comma as well.  The
code currently has a bug in that its check for whether the bounds check
is redundant also occurs when processing reaches the comma, which is wrong
because the assertion set may then include assertions generated by the RHS
of the comma (there is code to compensate for the assertion generated by
the bounds check itself, which is the LHS of the comma, but no compensation
for the RHS).

This change moves the analysis of whether bounds checks are redundant to
the proper spot in the processing order, and delays only the rewrite to
the processing of the comma; the redundancy of the bounds check is
communicated via a new opcode-specific flag: GTF_ARR_BOUND_INBND.

Fixes dotnet/coreclr#6318.

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

8 years agoUpdate cross-building.md
Lakshmi Priya [Tue, 2 Aug 2016 21:17:17 +0000 (14:17 -0700)]
Update cross-building.md

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

8 years agoUpdate windows-test-instructions.md
Lakshmi Priya [Tue, 2 Aug 2016 21:15:45 +0000 (14:15 -0700)]
Update windows-test-instructions.md

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

8 years agoUpdate unix-test-instructions.md
Lakshmi Priya [Tue, 2 Aug 2016 21:14:23 +0000 (14:14 -0700)]
Update unix-test-instructions.md

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

8 years agoFix build warnings in Vector3Interop test
Russ Keldorph [Fri, 29 Jul 2016 22:19:39 +0000 (15:19 -0700)]
Fix build warnings in Vector3Interop test

Fixes dotnet/coreclr#6236

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

8 years agoSwallow exception in gc_heap::fire_etw_allocation_event (dotnet/coreclr#6571)
Jan Vorlicek [Tue, 2 Aug 2016 20:35:06 +0000 (22:35 +0200)]
Swallow exception in gc_heap::fire_etw_allocation_event (dotnet/coreclr#6571)

The gc_heap::fire_etw_allocation_event calls TypeHandle::GetName that can throw
due to OOM. But we don't want failures to fire event cause a failure during the GC,
so such exception should be swallowed and no event fired in such case.
This was discovered as a contract failure during test runs with ETW logging enabled
when this function was transitively called from Thread::PerformPreemptiveGC which
was recently modified to have NOTHROW contract.
Interestingly, this was not detected by the static contract checker.

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

8 years agoUpdate windows-instructions.md
Lakshmi Priya [Tue, 2 Aug 2016 20:13:43 +0000 (13:13 -0700)]
Update windows-instructions.md

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

8 years agoUse absolute paths for specifying projects to build.
Lakshmi Priya Sekar [Tue, 2 Aug 2016 19:18:47 +0000 (12:18 -0700)]
Use absolute paths for specifying projects to build.

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

8 years agoMerge pull request dotnet/coreclr#6564 from kyulee1/fixbuild
Kyungwoo Lee [Tue, 2 Aug 2016 18:35:22 +0000 (11:35 -0700)]
Merge pull request dotnet/coreclr#6564 from kyulee1/fixbuild

ARM64: Fix Build Break

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

8 years agoChange to allow WCF more explicit control over channels to mimic an existing manifest.
Vance Morrison [Tue, 2 Aug 2016 18:31:48 +0000 (11:31 -0700)]
Change to allow WCF more explicit control over channels to mimic an existing manifest.

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

8 years agoSlightly increase throughput of string.Concat(object[]) (dotnet/coreclr#6547)
James Ko [Tue, 2 Aug 2016 07:02:41 +0000 (03:02 -0400)]
Slightly increase throughput of string.Concat(object[]) (dotnet/coreclr#6547)

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

8 years agoMerge pull request dotnet/coreclr#6566 from Priya91/run2
Lakshmi Priya [Tue, 2 Aug 2016 05:12:07 +0000 (22:12 -0700)]
Merge pull request dotnet/coreclr#6566 from Priya91/run2

Change processing of args in build scripts to keep =.

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

8 years agoARM64: Fix Build Break
Kyungwoo Lee [Mon, 1 Aug 2016 23:49:32 +0000 (16:49 -0700)]
ARM64: Fix Build Break

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

8 years agoChange int return values to BOOL for coreclr delegates (dotnet/coreclr#6551)
Evgeny Pavlov [Tue, 2 Aug 2016 01:53:15 +0000 (04:53 +0300)]
Change int return values to BOOL for coreclr delegates (dotnet/coreclr#6551)

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

8 years agoMerge pull request dotnet/coreclr#6560 from dotnet-bot/from-tfs
Jan Kotas [Tue, 2 Aug 2016 01:50:01 +0000 (18:50 -0700)]
Merge pull request dotnet/coreclr#6560 from dotnet-bot/from-tfs

Merge changes from TFS

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

8 years agoRename ZeroFreeMemoryUTF8 to ZeroFreeCoTaskMemUTF8 in ref (dotnet/coreclr#6561)
tijoytom [Tue, 2 Aug 2016 01:49:10 +0000 (18:49 -0700)]
Rename ZeroFreeMemoryUTF8 to ZeroFreeCoTaskMemUTF8 in ref (dotnet/coreclr#6561)

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

8 years agoDocumentation: Additional optimization levels for ARM/Linux (dotnet/coreclr#6548)
Geunsik Lim [Tue, 2 Aug 2016 01:48:12 +0000 (10:48 +0900)]
Documentation: Additional optimization levels for ARM/Linux (dotnet/coreclr#6548)

This instruction is to enable -Ofast or -Oz optimization level of clang on ARM/Linux.
Below is file-size comparison result of major components among -O3, -Ofast,
and -Oz on ARM/Linux-based Raspberry Pi2 board (Ubuntu/ARM 14.04 32bit).

* Linux/ARM: Release Build + O3(default): stripped , commit: dotnet/coreclr@561b64d2c210b4d999de7f1ac55756704eaba784 (Jul-26-2016)
------------------------------------------------------------------------------------------------------------------
-rwxr-xr-x 1 leemgs leemgs     18,472 Jul 27 16:14 corerun
-rwxr-xr-x 1 leemgs leemgs  1,512,828 Jul 27 18:33 libclrjit.so
-rwxr-xr-x 1 leemgs leemgs  4,525,328 Jul 27 18:33 libcoreclr.so
-rwxr--r-- 1 leemgs leemgs     29,696 Jul 27 00:55 ./mscorlib.dll
-rwxr--r-- 1 leemgs leemgs  2,211,840 Jul 27 00:54 ./System.Private.CoreLib.dll
Total:   8,298,164 bytes

* Linux/ARM: Release Build + Ofast: stripped , commit: dotnet/coreclr@561b64d2c210b4d999de7f1ac55756704eaba784 (Jul-26-2016)
-------------------------------------------------------------------------------------------------------------
-rwxr-xr-x 1 leemgs leemgs    18,496 Jul 26 05:00 ./corerun
-rwxr-xr-x 1 leemgs leemgs 1,512,844 Jul 26 04:59 ./libclrjit.so
-rwxr-xr-x 1 leemgs leemgs 4,525,360 Jul 26 04:59 ./libcoreclr.so
-rwxr--r-- 1 leemgs leemgs    29,696 Jul 26 00:49 ./mscorlib.dll
-rwxr--r-- 1 leemgs leemgs 2,211,840 Jul 26 00:48 ./System.Private.CoreLib.dll
Total:   8,298,236 bytes

* Linux/ARM: Release Build + Oz: stripped , commit: dotnet/coreclr@561b64d2c210b4d999de7f1ac55756704eaba784 (Jul-26-2016)
---------------------------------------------------------------------------------------------------------
-rwxr-xr-x 1 leemgs leemgs    14,400 Jul 29 05:02 ./corerun
-rwxr-xr-x 1 leemgs leemgs 1,181,160 Jul 29 04:40 ./libclrjit.so
-rwxr-xr-x 1 leemgs leemgs 3,407,200 Jul 29 04:40 ./libcoreclr.so
-rwxr--r-- 1 leemgs leemgs    29,696 Jul 29 00:49 ./mscorlib.dll
-rwxr--r-- 1 leemgs leemgs 2,211,840 Jul 29 00:48 ./System.Private.CoreLib.dll
Total:  6,844,296 bytes

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/22c9f9e5b36eccde23d4a2187eef8f7985aed4b3

8 years agoMerge pull request dotnet/coreclr#6565 from Priya91/checkrun
Lakshmi Priya [Tue, 2 Aug 2016 01:33:45 +0000 (18:33 -0700)]
Merge pull request dotnet/coreclr#6565 from Priya91/checkrun

Add /m option for builds.

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

8 years agoChange processing of args in build scripts to keep =.
Lakshmi Priya Sekar [Tue, 2 Aug 2016 01:06:30 +0000 (18:06 -0700)]
Change processing of args in build scripts to keep =.

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

8 years agoMerge pull request dotnet/coreclr#6533 from pgavlin/LSRA
Pat Gavlin [Tue, 2 Aug 2016 00:24:22 +0000 (17:24 -0700)]
Merge pull request dotnet/coreclr#6533 from pgavlin/LSRA

Replace the LSRA stack with a hash table.

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

8 years agoAdd /m option for builds.
Lakshmi Priya Sekar [Tue, 2 Aug 2016 00:11:40 +0000 (17:11 -0700)]
Add /m option for builds.

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

8 years agoMerge pull request dotnet/coreclr#6546 from pgavlin/LivenessCleanup
Pat Gavlin [Mon, 1 Aug 2016 23:44:01 +0000 (16:44 -0700)]
Merge pull request dotnet/coreclr#6546 from pgavlin/LivenessCleanup

Refactor fgComputeLife.

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

8 years agoAdd function headers for new liveness methods.
Pat Gavlin [Mon, 1 Aug 2016 23:42:15 +0000 (16:42 -0700)]
Add function headers for new liveness methods.

In particular, `Compiler::fgComputeLife{Call,Local}` now have function
headers.

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

8 years agoMerge pull request dotnet/coreclr#6557 from Priya91/runfix
Lakshmi Priya [Mon, 1 Aug 2016 23:05:21 +0000 (16:05 -0700)]
Merge pull request dotnet/coreclr#6557 from Priya91/runfix

Fix errors in build scripts from run tool update.

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

8 years agoMerge pull request dotnet/coreclr#6366 from pgavlin/RemoveEmbeddedStatementsPlan
Pat Gavlin [Mon, 1 Aug 2016 22:36:23 +0000 (15:36 -0700)]
Merge pull request dotnet/coreclr#6366 from pgavlin/RemoveEmbeddedStatementsPlan

Add the proposal for embedded statement removal.

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

8 years agoReplace the LSRA stack with a hash table.
Pat Gavlin [Tue, 26 Jul 2016 13:27:06 +0000 (06:27 -0700)]
Replace the LSRA stack with a hash table.

LSRA currently uses a stack to find the `LocationInfo` for each register consumed
by a node. The changes in this stack's contents given a particular node are
governed by three factors:
- The number of registers the node consumes (`gtLsraInfo.srcCount`)
- The number of registers the node produces (`gtLstaInfo.dstCount`)
- Whether or not the node produces an unused value (`gtLsraInfo.isLocalDefUse`)

In all cases, `gtLsraInfo.srcCount` values are popped off of the stack in the
order in which they were pushed (i.e. in FIFO rather than LIFO order). If the
node produces a value that will be used, `gtLsraInfo.dstCount` values are
then pushed onto the stack. If the node produces an unused value, nothing is
pushed onto the stack.

Naively, it would appear that the number of registers a node consumes would be
at least the count of the node's non-leaf operands (to put it differently, one
might assume that any non-leaf operator that produces a value would define at
least one register). However, contained nodes complicate the situation: because
a contained node's execution is subsumed by its user, the contained node's
sources become sources for its user and the contained node does not define any
registers. As a result, both the number of registers consumed and the number of
registers produced by a contained node are 0. Thus, contained nodes do not
update the stack, and the node's parent (if it is not also contained) will
pop the values produced by the contained node's operands. Logically speaking,
it is as if a contained node defines the transitive closure of the registers
defined by its own non-contained operands.

The use of the stack relies on the property that even in linear order the
JIT's IR is still tree ordered. That is to say, given an operator and its
operands, any nodes that execute between any two operands do not produce
SDSU temps that are consumed after the second operand. IR with such a
shape would unbalance the stack.

The planned move to the LIR design given in dotnet/coreclr#6366 removes the tree order
constraint in order to simplify understanding and manipulating the IR in the
backend. Because LIR may not be tree ordered, LSRA may no longer use a stack
to find the `LocationInfo` for a node's operands. This change replaces the
stack with a map from nodes to lists of `LocationInfo` values, each of
which describes a register that is logically defined (if not physically
defined) by that node. Only contained nodes logically define registers that
they do not physically define: contained nodes map to the list of
`LocationInfo` values logically defined by their operands. All non-contained
nodes map to the list of `LocationInfo` values that they physically define.
Non-contained nodes that do not define any registers are not inserted into
the map.

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

8 years agoAdd ExtraParameters to config.json to enable --.
Lakshmi Priya Sekar [Mon, 1 Aug 2016 20:26:14 +0000 (13:26 -0700)]
Add ExtraParameters to config.json to enable --.

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

8 years agoFix errors in build scripts from run tool update.
Lakshmi Priya Sekar [Mon, 1 Aug 2016 19:02:24 +0000 (12:02 -0700)]
Fix errors in build scripts from run tool update.

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

8 years agoInitialize `doAgain`.
Pat Gavlin [Mon, 1 Aug 2016 00:04:27 +0000 (17:04 -0700)]
Initialize `doAgain`.

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

8 years agoRefactor fgComputeLife.
Pat Gavlin [Sun, 31 Jul 2016 21:41:09 +0000 (14:41 -0700)]
Refactor fgComputeLife.

- Extract the liveness computations for call and local var nodes out into
  fgComputeLifeCall and fgComputeLifeLocal, respectively.
- Split fgComputeLife into two versions: one for the RyuJIT backend and
  one for the legacy backend. The former leaves out the QMARK/COLON
  processing that is necessary in the latter.

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

8 years agoMerge pull request dotnet/coreclr#6491 from adiaaida/formatting2
Michelle McDaniel [Mon, 1 Aug 2016 14:46:14 +0000 (07:46 -0700)]
Merge pull request dotnet/coreclr#6491 from adiaaida/formatting2

Massage code for clang-format

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

8 years agoMerge pull request dotnet/coreclr#6400 from Priya91/useruntool
Lakshmi Priya [Mon, 1 Aug 2016 03:38:06 +0000 (20:38 -0700)]
Merge pull request dotnet/coreclr#6400 from Priya91/useruntool

Use run tool in coreclr dev workflow.

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

8 years agoUpdate linux-performance-tracing.md
Lorenzo Tessiore [Sat, 30 Jul 2016 15:33:47 +0000 (08:33 -0700)]
Update linux-performance-tracing.md

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

8 years agoApply run on recent changes in master.
Lakshmi Priya Sekar [Sat, 30 Jul 2016 00:53:02 +0000 (17:53 -0700)]
Apply run on recent changes in master.

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

8 years agoRespond to PR feedback.
Lakshmi Priya Sekar [Fri, 29 Jul 2016 20:51:43 +0000 (13:51 -0700)]
Respond to PR feedback.

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

8 years agoRemove clean option from arm script, which deletes the copied test bits in CI.
Lakshmi Priya Sekar [Thu, 28 Jul 2016 19:19:19 +0000 (12:19 -0700)]
Remove clean option from arm script, which deletes the copied test bits in CI.

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

8 years agoGrant 777 for run.sh
Lakshmi Priya Sekar [Thu, 28 Jul 2016 18:44:55 +0000 (11:44 -0700)]
Grant 777 for run.sh

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

8 years agoUse run tool in coreclr dev workflow.
Lakshmi Priya Sekar [Thu, 14 Jul 2016 22:42:33 +0000 (15:42 -0700)]
Use run tool in coreclr dev workflow.

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

8 years agoMerge pull request dotnet/coreclr#6493 from rahku/crossgen
Rahul Kumar [Fri, 29 Jul 2016 22:22:40 +0000 (15:22 -0700)]
Merge pull request dotnet/coreclr#6493 from rahku/crossgen

adds testhost package

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

8 years agoadds testhost package
Rahul Kumar [Wed, 27 Jul 2016 22:50:56 +0000 (15:50 -0700)]
adds testhost package

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

8 years agoMerge pull request dotnet/coreclr#6521 from adityamandaleeka/remove_internal_free
Aditya Mandaleeka [Fri, 29 Jul 2016 21:13:05 +0000 (14:13 -0700)]
Merge pull request dotnet/coreclr#6521 from adityamandaleeka/remove_internal_free

Remove CorUnix::InternalFree from PAL

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

8 years agoMerge pull request dotnet/coreclr#6281 from papaslavik/cse_sort_sz
Brian Sullivan [Fri, 29 Jul 2016 20:56:44 +0000 (13:56 -0700)]
Merge pull request dotnet/coreclr#6281 from papaslavik/cse_sort_sz

The sort for CSE size optimization should be different from exec

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

8 years agoMerge pull request dotnet/coreclr#6515 from kyulee1/fixcontract
Kyungwoo Lee [Fri, 29 Jul 2016 20:42:00 +0000 (13:42 -0700)]
Merge pull request dotnet/coreclr#6515 from kyulee1/fixcontract

Remove useless contract in EventListener

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

8 years agoMerge pull request dotnet/coreclr#6479 from dagood/update-dependencies
William Godbe [Fri, 29 Jul 2016 19:34:30 +0000 (12:34 -0700)]
Merge pull request dotnet/coreclr#6479 from dagood/update-dependencies

Using full versions, update CoreFX dependencies to beta-24326-03

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