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
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
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
jashoo [Wed, 17 Aug 2016 17:47:26 +0000 (10:47 -0700)]
Disable tests that timeout for jit32
See issues dotnet/coreclr#6720, dotnet/coreclr#6718, dotnet/coreclr#6714 for more information.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c44321084b6f69bf5fc056d4686131f0e90cd64
Wes Haggard [Wed, 17 Aug 2016 15:29:26 +0000 (08:29 -0700)]
Merge pull request dotnet/coreclr#6766 from dotnet-bot/UpdateDependencies20160817062015
Updating External dependencies to beta-24417-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f654421ec8172b0da1314fc4f912d7427aa490e
Jonghyun Park [Wed, 17 Aug 2016 06:32:41 +0000 (15:32 +0900)]
Makes FCallMemcpy unwindable (dotnet/coreclr#6753)
FCallMemcpy function in vm/arm/memcpy.S creates an stack frame that
libunwind cannot recognize, which leads to the issue in dotnet/coreclr#6752.
This commit makes the stack frame of FCallMemcpy unwindable to fix
issue dotnet/coreclr#6752.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a641d3aa4e90ef59b89511705c43d2a036a9c0d4
dotnet-bot [Wed, 17 Aug 2016 06:20:15 +0000 (06:20 +0000)]
Updating External dependencies to beta-24417-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
53eeac95366c8fdd4ff1adf96867ffabf6cf16c0
Hyung-Kyu Choi [Wed, 17 Aug 2016 04:03:30 +0000 (13:03 +0900)]
Apply correct symbolic name _ARM_ instead of _TARGET_ARM_ (dotnet/coreclr#6756)
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
c037777bcc9e960ad0443bd5fce2b5163ecdfad9
Bryan P. Arant [Wed, 17 Aug 2016 00:25:27 +0000 (17:25 -0700)]
printing dumpling url at upload time.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a7bac8bd22d1c2c54e9339e11cc882d446ff0baf
Rama krishnan Raghupathy [Wed, 17 Aug 2016 01:44:22 +0000 (18:44 -0700)]
Merge pull request dotnet/coreclr#6749 from ramarag/sos_misc
Arm64 Sos fixes for
Commit migrated from https://github.com/dotnet/coreclr/commit/
ccd025bd3627847412aef27cc20c30d15e04defc
Jan Kotas [Wed, 17 Aug 2016 01:33:14 +0000 (18:33 -0700)]
Merge pull request dotnet/coreclr#6763 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ce87cbc6936db5b920981dfa17db4c6b4495c1a
Tarek Mahmoud Sayed [Wed, 17 Aug 2016 00:36:06 +0000 (17:36 -0700)]
Merge pull request dotnet/coreclr#6362 from svick/culturedata-regionnames
Move RegionNames out of #ifs
Commit migrated from https://github.com/dotnet/coreclr/commit/
2761706bae3dda8c3375a1c67f93b274f8d3f322
Koundinya Veluri [Tue, 16 Aug 2016 20:14:29 +0000 (13:14 -0700)]
Fix build break from new alignments
- MSVC seems to require alignment specification to be on the declaration as well as the definition
- Ignore warning about padding parent struct due to __declspec(align()), as that is intentional
Original change PR: https://github.com/dotnet/coreclr/pull/6516
[tfs-changeset: 1622589]
Commit migrated from https://github.com/dotnet/coreclr/commit/
b6be3a04f7768f28ba5fd25c50d04eeeb67d7104
Stephen Toub [Tue, 16 Aug 2016 19:42:38 +0000 (15:42 -0400)]
Merge pull request dotnet/coreclr#6761 from stephentoub/mscorlib_deserialization
Add deserialization ctors to mscorlib ref assembly
Commit migrated from https://github.com/dotnet/coreclr/commit/
68f3852c6b39f8a64b06739e7f7c932796cf2407
Fadi Hanna [Tue, 16 Aug 2016 17:58:50 +0000 (10:58 -0700)]
Adding new generics tests (dotnet/coreclr#6709)
Commit migrated from https://github.com/dotnet/coreclr/commit/
62f246cc64b2f97d6703e3ad52f134a3f67ffe90
Stephen Toub [Tue, 16 Aug 2016 17:14:07 +0000 (13:14 -0400)]
Add deserialization ctors to mscorlib ref assembly
In a previous PR, I'd added these to model.xml, but we're still consuming the mscorlib ref assembly in corefx, so we need these deserialization ctors there, too.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e782a631b7ea731a82663751eb4c7e3665b27a0
Gaurav Khanna [Tue, 16 Aug 2016 16:56:29 +0000 (09:56 -0700)]
Merge pull request dotnet/coreclr#6743 from dotnet-bot/UpdateDependencies20160815051908
Updating External dependencies to beta-24415-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
9fce24edaf84d197f000ccf68cff5a735f7be6a8
Joseph Tremoulet [Sat, 13 Aug 2016 18:17:09 +0000 (14:17 -0400)]
Record expr location for opqaue value numbers
When value numbering sees an expression that is too complex, runs out of
compile-time budget for deep field/phi sequences, etc., it assigns
`VNForExpr()` for the expression whose value number is being computed.
This produces a new, unique, opaque value number that will compare as
equal to itself but not to any other value number.
This change updates value numbering to record the location of the
expression whose value such a value numbers is created to stand in for.
While attaching location information to value numbers in general must be
done with care regarding subtleties of correlating value numbers for
expressions in different locations that compute the same value, those
subtleties are not relevant in the case of these unique/opaque value
numbers, whose point is to stand in for the value of one particular
expression and whose value may be propagated by copies but will never be
computed by other redundant expressions.
Loop-invariant code hoisting is updated to take these locations into
account when determining loop-invariance; the opaque value number is
loop-invariant if the expression whose value it represents is outside the
loop.
The `VNForExpr()` method is updated to take a `BasicBlock*` to identify
the location, but the backing store only records the block's loop number,
since the loop-invariance check is the only consumer of this information
and doing so allows a more compact representation (in particular, we avoid
allocating `m_defs` backing storage for these value numbers, since they are
used for the "give up and be conservative" cases).
The `BasicBlock*` passed to `VNForExpr()` can be `nullptr` to still have
the prior semantics of a fully opaque value number that can't be proved
loop-invariant; this is used for a handful of cases where the budgeting
results are memoized and so expressions at different locations could end
up sharing opaque value numbers, as well as a few cases where the
`VNForExpr()` call is covering a rare corner case in a utility for which
the corresponding `BasicBlock` may not be handy.
Fixes dotnet/coreclr#6303.
Commit migrated from https://github.com/dotnet/coreclr/commit/
91de2cec1e2156a2fb418c6dfa1716b4ad59ad30
Rama Krishnan Raghupathy [Tue, 16 Aug 2016 01:34:24 +0000 (18:34 -0700)]
Arm64 Sos fixes for
!verify heap
!u
!u -gcinfo
Commit migrated from https://github.com/dotnet/coreclr/commit/
ca04119fe59645fe11687a332502a5eddccc2064
Rahul Kumar [Tue, 16 Aug 2016 01:32:59 +0000 (18:32 -0700)]
update GC shadow heap as part of writebarrier jit helper
Commit migrated from https://github.com/dotnet/coreclr/commit/
607816f034c9a09effb4831959e767dc2d11baa6
Stephen Toub [Tue, 16 Aug 2016 00:33:00 +0000 (20:33 -0400)]
Merge pull request dotnet/coreclr#6423 from stephentoub/restore_serialization
Restore most serialization implementations in coreclr
Commit migrated from https://github.com/dotnet/coreclr/commit/
dbe69102224886888874b56f5e2c5b3905bd8fa2
Koundinya Veluri [Mon, 15 Aug 2016 18:52:40 +0000 (11:52 -0700)]
Merge pull request dotnet/coreclr#6516 from benaadams/WorkerThreadStart
WorkerThreadStart volatile read+cmpxchg loop
Commit migrated from https://github.com/dotnet/coreclr/commit/
a521502de086e0f3bb538e86971cd0098b9db828
Atsushi Kanamori [Mon, 15 Aug 2016 17:00:09 +0000 (10:00 -0700)]
Merge pull request dotnet/coreclr#6745 from AtsushiKan/rv
Fix issue https://github.com/dotnet/coreclr/issues/6600
Commit migrated from https://github.com/dotnet/coreclr/commit/
f03c2dc08c5d89b40fcb0643d6e0ee97f5f1fbcb
Atsushi Kanamori [Mon, 15 Aug 2016 13:52:29 +0000 (06:52 -0700)]
Fix issue https://github.com/dotnet/coreclr/issues/6600
Return parameters not accomodated in
Attribute.GetParentDefinition(ParameterInfo)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab1d3284192d24834f8bc1e1cae7ca396868fcd3
Stephen Toub [Sun, 24 Jul 2016 23:57:33 +0000 (19:57 -0400)]
Add deserialization ctors to model.xml
Commit migrated from https://github.com/dotnet/coreclr/commit/
4176fcc04148ccbcd84c6c92dd33bcdf787d99e0
dotnet-bot [Mon, 15 Aug 2016 05:19:08 +0000 (05:19 +0000)]
Updating External dependencies to beta-24415-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
b919f98478fa58efd2c3daf4d6c84c8fcaf3fb5f
Stephen Toub [Sat, 23 Jul 2016 17:49:15 +0000 (10:49 -0700)]
Port serialization implementation to Unix globalization types
These will need to be tested. They are a straight port from the Windows implementation, but the implementation has diverged, and it's possible (likely) there are some differences I didn't catch.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a17c5b804ea89a1f8fd3d72908fd124f3241da32
Stephen Toub [Sat, 23 Jul 2016 04:53:10 +0000 (21:53 -0700)]
Ensure On* methods are not removed by BclRewriter
Commit migrated from https://github.com/dotnet/coreclr/commit/
19984585ce87829b89f4755e2869f594245dd84e
Stephen Toub [Sat, 23 Jul 2016 03:26:01 +0000 (20:26 -0700)]
Restore most serialization implementations in coreclr
I audited all uses of FEATURE_SERIALIZATION in coreclr and removed most of the ifdef'ing. The remaining uses of FEATURE_SERIALIZATION are primary related to actually implementing formatters, CAS-related types, and a few types I've left non-serializable (e.g. ExecutionContext) but that we can revisit later if needed.
Commit migrated from https://github.com/dotnet/coreclr/commit/
cca188e1f2719e6b6705c2e0d2cf7e1d1847b829
Jan Kotas [Sun, 14 Aug 2016 06:15:57 +0000 (23:15 -0700)]
Merge pull request dotnet/coreclr#6740 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
2578e13a323f09ffc17ad8021a1a8d1c7df6dabd
Jan Kotas [Sun, 14 Aug 2016 01:52:58 +0000 (18:52 -0700)]
Fixup a few contracts
[tfs-changeset: 1622296]
Commit migrated from https://github.com/dotnet/coreclr/commit/
c1d05a8456344bba910290214532c2387bbc985e
Wes Haggard [Sat, 13 Aug 2016 07:05:33 +0000 (00:05 -0700)]
Merge pull request dotnet/coreclr#6731 from weshaggard/FixSerializationPackageVersion
Update version of S.R.Serialization.Primitives to version 4.1.1
Commit migrated from https://github.com/dotnet/coreclr/commit/
fda4f89e370fbc3940c266f8f866f45c8787f183
Rahul Kumar [Sat, 13 Aug 2016 06:09:19 +0000 (23:09 -0700)]
Merge pull request dotnet/coreclr#6728 from rahku/typeloaderHang
Issue: If two threads try to load the same type it can cause clr to h…
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ced949f2051c84d7a492a0081a3c517cef06906
Rahul Kumar [Sat, 13 Aug 2016 06:08:18 +0000 (23:08 -0700)]
Merge pull request dotnet/coreclr#6726 from rahku/fixes
In intGCShadow() first reserve memory before committing
Commit migrated from https://github.com/dotnet/coreclr/commit/
68c2b8f773767032c9525d105ff7ba90a7c23dad
Wes Haggard [Sat, 13 Aug 2016 04:51:07 +0000 (21:51 -0700)]
Update version of S.R.Serialization.Primitives to version 4.1.1
Commit migrated from https://github.com/dotnet/coreclr/commit/
429b0fd89c30e5f3f7bc1dd5d2954c0167f940a6
Pat Gavlin [Sat, 13 Aug 2016 02:11:09 +0000 (19:11 -0700)]
Merge pull request dotnet/coreclr#6729 from pgavlin/Reformat
Re-reformat the JIT sources.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5de2db5639a5d055b836e1c814c6fbe5d394b07
Rahul Kumar [Sat, 13 Aug 2016 00:41:03 +0000 (17:41 -0700)]
review fixes
Commit migrated from https://github.com/dotnet/coreclr/commit/
69d0c32ef5500ad1f94bc04401acb3a07c7ae120
Rahul Kumar [Sat, 13 Aug 2016 00:29:02 +0000 (17:29 -0700)]
In intGCShadow() first reserve memory before committing. VirtualCommit does not accept NULL as input address
Commit migrated from https://github.com/dotnet/coreclr/commit/
13d46168b98198cbc1fe4e54b6a54e5f03ee35b7
Pat Gavlin [Fri, 12 Aug 2016 23:51:22 +0000 (16:51 -0700)]
Reformat the JIT sources.
The sources were formatted using jit-format on Windows with the
following command lines in the following order:
`jit-format.cmd -o Windows -b Checked -a x64 -f`
`jit-format.cmd -o Windows -b Debug -a x64 -f`
`jit-format.cmd -o Windows -b Release -a x64 -f`
The versions of clang-format and clang-tidy that were invoked by
jit-format were:
clang-format version 3.8.1 (branches/release_38)
LLVM (http://llvm.org/):
LLVM version 3.8.1
Optimized build with assertions.
Built Jun 22 2016 (12:19:56).
Default target: x86_64-pc-windows-msvc
Host CPU: sandybridge
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e3108ce18ce4c436a9b2479ca9914556d51a107
Pat Gavlin [Fri, 12 Aug 2016 23:34:18 +0000 (16:34 -0700)]
Massage the code a bit for jit-format w/ Clang 3.8.
Manually insert a few braces that would otherwise have been inserted
in the wrong place.
Commit migrated from https://github.com/dotnet/coreclr/commit/
828c4a1c7099905e2449692ee32fc64b4a35b507
Pat Gavlin [Fri, 12 Aug 2016 22:10:30 +0000 (15:10 -0700)]
Revert dotnet/coreclr#6686.
The code was accidentally formatted with Clang 3.9. It will be reformatted
with Clang 3.8 and a new PR submitted.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f44d3011a49d443eb8198234a6e16cdc7772d97
Rahul Kumar [Fri, 12 Aug 2016 23:47:47 +0000 (16:47 -0700)]
Issue: If two threads try to load the same type it can cause clr to hang if the first thread to start the load happens to be a background thread. Background thread would create PendingTypeLoadEntry and insert it into unresolvedClassHash. Second thread (having normal priority) would block on PendingTypeLoadEntry->m_crst waiting for the background thread to unblock it. After doing partial load of type background thread periodically checks if there are other threads waiting for type to get loaded. In this case it does find a thread waiting so it unblocks thread. However, background thread has not removed PendingTypeLoadEntry from unresolvedClassHash. This causes the second thread to continue spinning and so not allowing background thread to get any processor cycles to remove PendingTypeLoadEntry from unresolvedClassHash. This cause app to be seem like it has hung. It is possible that this may not repro on multi-proc machine where the background thread can get scheduled on another processor when second thread continues to spin on another processor.
Fix: First remove the PendingTypeLoadEntry from unresolvedClassHash and then unblock the waiting threads.
Commit migrated from https://github.com/dotnet/coreclr/commit/
479485f3f44172e82e5c2f3eb1aba389072df325
Jarret Shook [Fri, 12 Aug 2016 22:00:47 +0000 (15:00 -0700)]
Merge pull request dotnet/coreclr#6721 from jashook/disable_jit32_tests
Disable tests to get jit32 jobs green
Commit migrated from https://github.com/dotnet/coreclr/commit/
99d29f3284cdc84df69e1c0a91cba72419751956
Russ Keldorph [Fri, 12 Aug 2016 21:58:10 +0000 (14:58 -0700)]
Merge pull request dotnet/coreclr#6685 from RussKeldorph/test-native-log
Re-enable creating Tests_Native* log files
Commit migrated from https://github.com/dotnet/coreclr/commit/
b623bd7bd8807e980b601174950d3c437b117793
Sasha Semennikov [Fri, 12 Aug 2016 21:34:57 +0000 (14:34 -0700)]
Fix exception filter getter for native frames (dotnet/coreclr#6723)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a2851131b89a21f685b580718c1f1475328b758
Fadi Hanna [Fri, 12 Aug 2016 19:54:24 +0000 (12:54 -0700)]
Fixing priority on tests (making tests P1) (dotnet/coreclr#6706)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a3ea82e3fab05389587664604c170dfb011bf31b
Jan Kotas [Fri, 12 Aug 2016 19:50:37 +0000 (12:50 -0700)]
Merge pull request dotnet/coreclr#6722 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
bfda7b094df06c10215e0194413aa2ceba7d0787
Jan Kotas [Fri, 12 Aug 2016 17:51:58 +0000 (10:51 -0700)]
More fixes for unreachable code warnings with older compiler
[tfs-changeset: 1622213]
Commit migrated from https://github.com/dotnet/coreclr/commit/
98f0f90880be5e37e2d21d08fbb9cd03e99a769a
jashoo [Fri, 12 Aug 2016 17:25:09 +0000 (10:25 -0700)]
Disable tests to get jit32 jobs green
See issues dotnet/coreclr#6720, dotnet/coreclr#6718, dotnet/coreclr#6714 for more information
Commit migrated from https://github.com/dotnet/coreclr/commit/
85f2c3f0a27143580902eff2082d2586095f1379
Jan Kotas [Fri, 12 Aug 2016 15:02:48 +0000 (08:02 -0700)]
Merge pull request dotnet/coreclr#6712 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
3e6f64fc55703a3937704a52b583fb891969bd8f
Jonghyun Park [Fri, 12 Aug 2016 15:02:22 +0000 (00:02 +0900)]
Enable FEATURE_STUBS_AS_IL for ARM/Linux (dotnet/coreclr#6500)
This commit enables FEATURE_STUBS_AS_IL for ARM/Linux. This commit
tries to fix dotnet/coreclr#6452.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6abfacbb2da9b4ddbe59ac59de3fb98b3f90833a
Jan Kotas [Fri, 12 Aug 2016 06:36:12 +0000 (23:36 -0700)]
Fix unreachable code warnings with MSVC++ 18.10
[tfs-changeset: 1622176]
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b42745af681305daff144cf6ade2785a665e508
William Godbe [Thu, 11 Aug 2016 21:48:38 +0000 (14:48 -0700)]
Merge pull request dotnet/coreclr#6690 from wtgodbe/regioninfo
Fix region info test on Debian
Commit migrated from https://github.com/dotnet/coreclr/commit/
79120130f96574de549de69fd06888cac444f878
wtgodbe [Wed, 10 Aug 2016 21:16:48 +0000 (14:16 -0700)]
Fix region info test on Debian
Commit migrated from https://github.com/dotnet/coreclr/commit/
3394c212371569e6c909da839823d1e069f23a0a
Michelle McDaniel [Thu, 11 Aug 2016 20:39:22 +0000 (13:39 -0700)]
Merge pull request dotnet/coreclr#6686 from adiaaida/formatted
Reformat jit source base using clang-format and clang-tidy
Commit migrated from https://github.com/dotnet/coreclr/commit/
aba1583d368ada3032d6b94ce2614c249b8ee6ff
Brian Sullivan [Thu, 11 Aug 2016 20:12:40 +0000 (13:12 -0700)]
Merge pull request dotnet/coreclr#6701 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf9b7a74376521dc256afd89e176d59f52a22861
William Godbe [Thu, 11 Aug 2016 19:13:32 +0000 (12:13 -0700)]
Merge pull request dotnet/coreclr#6704 from dotnet/wtgodbe-patch-1
Update unix test instructions
Commit migrated from https://github.com/dotnet/coreclr/commit/
555cf28517a6fb1c151b80cf3fa93d71d0aacc9f
William Godbe [Thu, 11 Aug 2016 19:13:19 +0000 (12:13 -0700)]
Update unix test instructions
Commit migrated from https://github.com/dotnet/coreclr/commit/
7b4438599fa0b995710d4778ba18743732825282
William Godbe [Thu, 11 Aug 2016 18:59:47 +0000 (11:59 -0700)]
Merge pull request dotnet/coreclr#6702 from dotnet/RunTestDocumentation
Fix linux test running documentation
Commit migrated from https://github.com/dotnet/coreclr/commit/
77a046a9bcd0889a0171a7682f802c4e668bb0e5
William Godbe [Thu, 11 Aug 2016 18:59:35 +0000 (11:59 -0700)]
Fix linux test running documentation
We should specify that corefx will be from a Debug build, not a Release build.
Commit migrated from https://github.com/dotnet/coreclr/commit/
596d42e2b443b0dfc842dee4c45c8d94a05edf3a
smile21prc [Thu, 11 Aug 2016 17:45:10 +0000 (10:45 -0700)]
Merge pull request dotnet/coreclr#6637 from smile21prc/coreclr-perf
Automate the perf data collection for JIT CodeQuality benchmarks on Windows.
Commit migrated from https://github.com/dotnet/coreclr/commit/
be7e48ff0ae3dfb4bf90b5bbe2faf9d359d2b37f
Jan Kotas [Thu, 11 Aug 2016 17:32:59 +0000 (10:32 -0700)]
Add missing security annotation
[tfs-changeset: 1622038]
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8e9c46dce5d6c56ed3bf0840b5c633da0a5c1cd
Michelle McDaniel [Tue, 9 Aug 2016 20:15:05 +0000 (13:15 -0700)]
Reformat jit sources with clang-tidy and format
This change is the result of running clang-tidy and clang-format on jit
sources.
Commit migrated from https://github.com/dotnet/coreclr/commit/
36a2b906c008cd3693a9ab5aef7b4402addd6c74
Michelle McDaniel [Tue, 9 Aug 2016 16:59:01 +0000 (09:59 -0700)]
Prepare jit source for clang-tidy
In templates, clang-tidy will replace 0 with nullptr, but this is illegal
for primitive types. This change replaces 0 in two templated functions
with ZERO, which is defined to be 0 to avoid this issue.
Additioanlly, we need to conditionally define some macros for running
under __clang__ so they are found by clang-tidy.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab7d6a8df73d3d89210a778338feaa9fedf4146a
Gaurav Khanna [Thu, 11 Aug 2016 16:27:01 +0000 (09:27 -0700)]
Merge pull request dotnet/coreclr#6657 from gkhanna79/UpdateVer
Update package versions to 1.1.0
Commit migrated from https://github.com/dotnet/coreclr/commit/
75008919114e60aa9d9abd1e6ad5a1d058f48039
hqueue [Thu, 11 Aug 2016 16:21:41 +0000 (01:21 +0900)]
ARM: disable stack unwinding using DWARF (dotnet/coreclr#6700)
libunwind for ARM does not interpret ARM vfpv3/NEON
registers in DWARF format correctly.
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
c52e05abd98c299e7f65979f65e541e9d76cd4d2
Gaurav Khanna [Thu, 11 Aug 2016 13:43:38 +0000 (06:43 -0700)]
Merge pull request dotnet/coreclr#6699 from dotnet-bot/UpdateDependencies20160811052348
Updating External dependencies to beta-24411-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a84ab0f876d25464d1493c2d02de45da6f9da7e
Rama krishnan Raghupathy [Thu, 11 Aug 2016 08:26:51 +0000 (01:26 -0700)]
Merge pull request dotnet/coreclr#6691 from ramarag/ResolveWorkerChainLookupAsmStubFix
Preserving ResolveCacheElem in X9
Commit migrated from https://github.com/dotnet/coreclr/commit/
08f8d02aa8e0aae07a748443841cbd5455e82240
dotnet-bot [Thu, 11 Aug 2016 05:23:48 +0000 (05:23 +0000)]
Updating External dependencies to beta-24411-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
401fdb1e3243f47ea34f6e5a48ff55a4761eb884
Joseph Tremoulet [Thu, 11 Aug 2016 00:16:31 +0000 (20:16 -0400)]
Merge pull request dotnet/coreclr#6285 from JosephTremoulet/LenProp
Propagate known array lengths to more places
Commit migrated from https://github.com/dotnet/coreclr/commit/
d95be0b7da94613e32617b6539b01042598c0054
Rama Krishnan Raghupathy [Wed, 10 Aug 2016 22:02:35 +0000 (15:02 -0700)]
Preserving ResolveCacheElem in X9
Commit migrated from https://github.com/dotnet/coreclr/commit/
f9e5306c1b5521b311d53fe362cf88bb05d00334
Gaurav Khanna [Wed, 10 Aug 2016 21:58:00 +0000 (14:58 -0700)]
Update Arm32 package version reference
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d42fb71b4db418a0eb140d236826b29b17a24a8
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/
cdc68196cc0adc3be2a755fa8b4116f3cf4c8af8
Joseph Tremoulet [Thu, 23 Jun 2016 20:21:13 +0000 (16:21 -0400)]
Propagate known array lengths to more places
Earlyprop limits its propagation of array lengths to blocks marked
BBF_HAS_INDX, for throughput reasons. The importer sets that flag on
blocks that store/load array elements, but not blocks that simply extract
an array's length. This change renames the flag to BBF_HAS_IDX_LEN, and
updates the importer to set it also on blocks with ldlen operations. This
change also updates fgOptWhileLoop to propagate the flag when it
copies such an expression as part of a zero-trip test.
Fixes dotnet/coreclr#2325.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4750bcb738b4c15b7b55650e3c225385163f9d96
Joseph Tremoulet [Wed, 10 Aug 2016 20:30:53 +0000 (16:30 -0400)]
Merge pull request dotnet/coreclr#6682 from JosephTremoulet/ConstantIndex
Update FieldSeq annotations in EarlyProp
Commit migrated from https://github.com/dotnet/coreclr/commit/
4511b187eb6ec6347d8f8b841dc53982fa1d5884
Gaurav Khanna [Wed, 10 Aug 2016 19:24:33 +0000 (12:24 -0700)]
Merge pull request dotnet/coreclr#6671 from gkhanna79/FixLFAN
Fix LoadFromAssemblyName to invoke fallback context
Commit migrated from https://github.com/dotnet/coreclr/commit/
d154b9394578aa4b7e39f8695dc1f773d1a6882b
Rahul Kumar [Wed, 10 Aug 2016 18:47:47 +0000 (11:47 -0700)]
Merge pull request dotnet/coreclr#6606 from rahku/arm64todo
ARM64: Fix for ARM64TODO
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d330b19c14affaa5c76f89df761ac0da6b62176
Rahul Kumar [Thu, 4 Aug 2016 18:43:21 +0000 (11:43 -0700)]
ARM64: Fix for ARM64TODO
Commit migrated from https://github.com/dotnet/coreclr/commit/
1fcecafd7adbc050a951b02d5fe429a70acd3214
Jarret Shook [Wed, 10 Aug 2016 17:48:49 +0000 (10:48 -0700)]
Merge pull request dotnet/coreclr#6683 from jashook/remove_unreachable_code
Fix unreachable code in flowgraph
Commit migrated from https://github.com/dotnet/coreclr/commit/
fb3caf6ca8e1d0826276b117fd1775f0f8f9113e
Russ Keldorph [Wed, 10 Aug 2016 17:22:19 +0000 (10:22 -0700)]
Re-enable creating Tests_Native* log files
Recently we seem to have lost the ability to generate Tests_Native logs.
Currently, there are many build warnings that don't appear in any of the
logs because the native test build output is going to the console only.
The lines I'm adding are already duplicated other times in the same file,
so they are a candidate for refactoring, but I'll leave that for others.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dec551ad4c739d211ea2bb62f4f9762865e571bd
Gaurav Khanna [Wed, 10 Aug 2016 16:26:04 +0000 (09:26 -0700)]
Add StackCrawl reference marker to each of the Assembly.Load implementations.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0958f8bc5ecbacecf5d6e1f6c3de59b397f3e26f
jashoo [Wed, 10 Aug 2016 16:19:53 +0000 (09:19 -0700)]
Fix unreachable code in flowgraph
There is debugging information that is expected to be printed; however,
unreachable because the function returns before printing under debug.
Fixed by moved the return past the debug log.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a0f6ec41b156e585580d9cf6a829d2188420a08
Ben Adams [Wed, 10 Aug 2016 15:17:37 +0000 (16:17 +0100)]
Improve Enum.ToString performance (dotnet/coreclr#6645)
Reduces allocations by 66%; increases performance by 600% (x7)
With these changes ToString no longer boxes the value and doesn't create an empty array for `CustomAttributeRecords` when the enum is not flagged; also caches whether the enum is flagged.
It still boxes the enum to Enum to make the ToString virtual call however.
Using the @jkotas enummark :wink:
```csharp
enum MyEnum { One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten };
public static void Main(string[] args)
{
(MyEnum.Seven).ToString();
int start = Environment.TickCount;
for (int i = 0; i <
10000000; i++)
{
(MyEnum.Seven).ToString();
}
int end = Environment.TickCount;
Console.WriteLine((end - start).ToString());
}
```
Pre: 5828ms, 5828ms, 5829ms (1.7M/s)
Post: 828ms, 828ms, 828ms (12.1M/s)
Commit migrated from https://github.com/dotnet/coreclr/commit/
571b963cd4f7af8674d1031c4adefb3d8bc47618
Gaurav Khanna [Wed, 10 Aug 2016 14:32:05 +0000 (07:32 -0700)]
Merge pull request dotnet/coreclr#6678 from dotnet-bot/UpdateDependencies20160810052139
Updating External dependencies to beta-24410-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
3afa34a104960b5057b38e83724b79cacce41285