Carol Eidt [Fri, 18 Aug 2017 19:12:40 +0000 (12:12 -0700)]
Fix ARM issues with Containment
These are changes that should have been part of PR dotnet/coreclr#13198:
- Correctly contain struct arguments
- Correctly get number of source registers
- Clear register assignments on `GT_FIELD_LIST` nodes (thanks @hseok-oh).
- Remove now-redundant `ContainCheck` methods for armarch targets.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5495b89a1368ecb279f2d1b39e69fdab96b9faa4
Pat Gavlin [Thu, 24 Aug 2017 00:33:19 +0000 (17:33 -0700)]
Merge pull request dotnet/coreclr#13550 from pgavlin/DevDiv482577
Type `lea [this + delegateObject]` as `TYP_BYREF`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
90d0a3e00eab850b2bac5e685a6ce2aba96f290f
William Godbe [Thu, 24 Aug 2017 00:16:46 +0000 (17:16 -0700)]
Merge pull request dotnet/coreclr#13529 from wtgodbe/ParameterizeRids
Parameterize RIDs for package restore
Commit migrated from https://github.com/dotnet/coreclr/commit/
c486926a6a85bb61e516f69e900812d3294e69a0
Noah Falk [Thu, 24 Aug 2017 00:15:15 +0000 (17:15 -0700)]
Merge pull request dotnet/coreclr#13559 from noahfalk/add_ci_logging
Add more logging to corefx test CI runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
dac0a16bbc7fa9f3ceb1181c208ca27a9777678d
noahfalk [Thu, 24 Aug 2017 00:08:36 +0000 (17:08 -0700)]
Add more logging to corefx test CI runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c5830c5b64e132c136401ade41b8d9748fa3915
Roman Artemev [Thu, 24 Aug 2017 00:01:44 +0000 (17:01 -0700)]
Merge pull request dotnet/coreclr#13548 from rartemev/revert_12469_fix
Revert "Fixed misconception between FP register allocator and RyuJIT's CSE phase"
Commit migrated from https://github.com/dotnet/coreclr/commit/
2cb3585470b973fda3ba950e295cc3e936a71cde
William Godbe [Wed, 23 Aug 2017 23:23:10 +0000 (16:23 -0700)]
Merge pull request dotnet/coreclr#13533 from wtgodbe/buildNumber
Disable default BuildNumberMajor
Commit migrated from https://github.com/dotnet/coreclr/commit/
6aed5a155a60aafa591a7d9bbe9864074469f54a
Jim Ma [Wed, 23 Aug 2017 22:32:15 +0000 (10:32 +1200)]
Fixed Equals/GetHashCode bug for struct. (dotnet/coreclr#13164)
Other than `ContainsPointers` and `IsNotTightlyPacked`, added two new conditions for checking whether a valuetype can go to fast path or not. Following are the details of these 2 conditions:
- Check whether a valuetype contains a Single/Double field. If it does, we cannot go to fast path. Floating point numbers have special `Equals` and `GetHashCode` implementation. We cannot simply compare floating point numbers via bits (e.g. +0.0 should equal to -0.0, but their underlying bits are different).
- Check whether an user-defined valuetype overrides `Equals` or `GetHashCode`. If it does, we cannot go to fast path. Because `Equals` or `GetHashCode` result may be different to bit comparison.
To find Single/Double fields and overridden `Equals`/`GetHashCode`, we start a DFS to go through the whole hierachy of the source valuetype, and cache the result to `MethodTable`.
Fix dotnet/coreclr#11452
Commit migrated from https://github.com/dotnet/coreclr/commit/
495ece4abd2204e1fc79f34cf3ea7fe5ecf90ad3
Pat Gavlin [Wed, 23 Aug 2017 20:31:39 +0000 (13:31 -0700)]
Type `lea [this + delegateObject]` as `TYP_BYREF`.
This node was incorrectly typed as `TYP_GCREF`, which was causing an
assertion during GC stress in internal testing.
Fixes VSO 482577.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6025fd00f0c86359817d5b09470120c177e4a124
wtgodbe [Tue, 22 Aug 2017 21:20:01 +0000 (14:20 -0700)]
Parameterize RIDs for package restore
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c0e0abf7c7b2ab48671ec2e37ff925fb5ca9c80
Roman Artemev [Wed, 23 Aug 2017 19:49:50 +0000 (12:49 -0700)]
Revert "Fixed misconception between FP register allocator and RyuJIT's CSE phase"
This reverts commit dotnet/coreclr@
3f4ee3bed52291e592d7ab67da1fc0e39ee8a3b7.
Commit migrated from https://github.com/dotnet/coreclr/commit/
81c38cd7272d0cbb70885122b7350fedaf0fd3ba
Brian Sullivan [Wed, 23 Aug 2017 19:37:03 +0000 (12:37 -0700)]
Merge pull request dotnet/coreclr#13534 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
59da8574383d547a20dcae478b67ff458f6d71e6
Koundinya Veluri [Wed, 23 Aug 2017 18:01:31 +0000 (11:01 -0700)]
Improve ReaderWriterLockSlim scalability (dotnet/coreclr#13495)
* Improve ReaderWriterLockSlim scalability
Subset of dotnet/coreclr#13243, fixes dotnet/coreclr#12780
- Prevented waking more than one waiter when only one of them may acquire the lock
- Limited spinning in some cases where it is very unlikely that spinning would help
The _myLock spin lock runs into some bad scalability issues. For example:
1. Readers can starve writers for an unreasonable amount of time. Typically there would be more readers than writers, and it doesn't take many readers to starve a writer. On my machine with 6 cores (12 logical processors with hyperthreading), 6 to 16 reader threads attempting to acquire the spin lock to acquire or release a read lock can starve one writer thread from acquiring the spin lock for several or many seconds. The issue magnifies with more reader threads.
2. Readers and especially writers that hold the RW lock can be starved from even releasing their lock. Releasing an RW lock requires acquiring the spin lock, so releasers are easliy starved by acquirers. How badly they are starved depends on how many acquirers there are, and it doesn't take many to show a very noticeable scalability issue. Often, these acquirers are those that would not be able to acquire the RW lock until one or more releasers release their lock, so the acquirers effectively starve themselves.
This PR does not solve (1), but solves (2) to a degree that could be considered sufficient. dotnet/coreclr#13243 solves (1) and (2) and for (2) it is still better by order-of-magnitude compared with this PR in several cases that I believe are not extreme, but if the complexity of deprioritization is deemed excessive for the goals then of what I tried so far this is the perhaps simplest and most reasonable way to solve (2).
I believe this PR would also be a reasonably low-risk one to port back to .NET Framework.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e000977dc11feb3f7f7920a57f0e53f4749377e0
Jan Vorlicek [Wed, 23 Aug 2017 17:03:16 +0000 (19:03 +0200)]
Enable overriding default stack size on Unix (dotnet/coreclr#13517)
Alpine Linux has a very small default stack size limit, about 80kB.
This is not enough for running coreclr apps.
This change enables overriding the default stack size using the
COMPlus_DefaultStackSize env variable. For Alpine, it also sets
the default stack size to the same value we use for Windows, which
is 1.5MB.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f2d1ec0e50a3aceddcc75172021cea10677b354
Bruce Forstall [Wed, 23 Aug 2017 16:44:48 +0000 (09:44 -0700)]
Merge pull request dotnet/coreclr#13540 from wateret/fix-13423
[RyuJIT/arm32] Fix MultiReg flag setter
Commit migrated from https://github.com/dotnet/coreclr/commit/
8abfe25cbd02e07361301e0a5cadb6716b3c0cde
Andy Ayers [Wed, 23 Aug 2017 16:16:07 +0000 (09:16 -0700)]
JIT: refine types when creating arg temps to improve devirtualization (dotnet/coreclr#13530)
The jit will refine the types of temps used to pass arguments to inlinees
when it creates the assignments to these temps.
Unfortunately this is too late to drive devirtualization in the body of
the inlinee, as thes assignments are created after the inlinee body is
imported.
So, add similar refinement logic to the place where the temps are first
created.
Closes dotnet/coreclr#13520.
Commit migrated from https://github.com/dotnet/coreclr/commit/
85c59f9aa92092e72618df51879a9338ca9d4307
Jonghyun Park [Wed, 23 Aug 2017 15:39:13 +0000 (00:39 +0900)]
Add a regression test for dotnet/coreclr#13160 (dotnet/coreclr#13531)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f46134f56e408fc3e4cd14cd8ed43be90765f7fe
Carol Eidt [Wed, 23 Aug 2017 14:13:45 +0000 (07:13 -0700)]
Merge pull request dotnet/coreclr#13450 from sjsinju/genisvaliddoublereg
[RyuJIT/ARM32] Remove unnecessary genIsValidDoubleReg() assertion
Commit migrated from https://github.com/dotnet/coreclr/commit/
6fe0e8685e81099f5e1cf02504ddfe4ff183c750
Joseph Tremoulet [Wed, 23 Aug 2017 13:49:24 +0000 (09:49 -0400)]
Merge pull request dotnet/coreclr#13528 from JosephTremoulet/Iterate
Add InnerIterationCount to layout benchmarks
Commit migrated from https://github.com/dotnet/coreclr/commit/
c8ede5ad70ffa3bc34a522102b7646cae2bdebfd
Hanjoung Lee [Wed, 23 Aug 2017 08:47:03 +0000 (17:47 +0900)]
[RyuJIT/arm32] Fix MultiReg flag setter
Bitwise operation fix in `SetRegSpillFlagByIdx()`.
Fix dotnet/coreclr#13423
Commit migrated from https://github.com/dotnet/coreclr/commit/
7447d75d3027c4d01171ea46753d371fe7835a61
Stephen Toub [Wed, 23 Aug 2017 07:37:33 +0000 (03:37 -0400)]
Remove empty span check from Stream.Read/Write (dotnet/coreclr#13536)
When I added the base Stream.Read/Write(span) default implementations, I added a special-case check for if the span is empty, in which case it made the operation a nop. But various streams want to impose behavior even in the 0-byte case, e.g. throwing an ObjectDisposedException if the stream has been closed. This commit just removes the check and allows Read/Write to delegate for all sized spans.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9c4c6c6f85a26591c72983ea28eccb581eb9eca
Roman Artemev [Wed, 23 Aug 2017 06:54:26 +0000 (23:54 -0700)]
Merge pull request dotnet/coreclr#13535 from rartemev/issue_12467
Fixed assertion failure in legacy backend
Commit migrated from https://github.com/dotnet/coreclr/commit/
463a67316ef0187373a6d4c501aa913026ab6d88
Stephen Toub [Wed, 23 Aug 2017 03:40:10 +0000 (23:40 -0400)]
Merge pull request dotnet/coreclr#13522 from stephentoub/fsspan
Override Span-based Read/Write on FileStream
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa79179baa11923cba48e2cdd9c9bd723486a136
Roman Artemev [Wed, 23 Aug 2017 00:57:45 +0000 (17:57 -0700)]
Fixed assertion failure in legacy backend
Commit migrated from https://github.com/dotnet/coreclr/commit/
a88ac369ee776acafcaf1a39aeee93520b07b5f0
Andy Ayers [Wed, 23 Aug 2017 00:04:02 +0000 (17:04 -0700)]
JIT: don't self assign to temps (dotnet/coreclr#13484)
Modify gtNewTempAssign to more generally map self-assignment of temps
into nops.
We already were doing something similar over in `impAssignStruct`, and
now we catch non-struct cases too.
Commit migrated from https://github.com/dotnet/coreclr/commit/
637bfeffb0fd0378ff6d04d7bb845938b77bdade
dotnet-bot [Tue, 22 Aug 2017 23:12:08 +0000 (16:12 -0700)]
rollback Changeset 1671419: importCall
[tfs-changeset: 1671421]
Commit migrated from https://github.com/dotnet/coreclr/commit/
fd9dce46c1d441883bb38ca24554ce3f8224276e
dotnet-bot [Tue, 22 Aug 2017 23:05:26 +0000 (16:05 -0700)]
importCall
[tfs-changeset: 1671419]
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f0700214606bb9d922e686d9cca0c489379202d
wtgodbe [Tue, 22 Aug 2017 22:45:26 +0000 (15:45 -0700)]
Disable default BuildNumberMajor
Commit migrated from https://github.com/dotnet/coreclr/commit/
faa15fee64e8b702a4212e8081087ebcaa458fae
Sean Gillespie [Tue, 22 Aug 2017 21:37:53 +0000 (14:37 -0700)]
Remove macro definition checks that aren't useful and cause unnecessary build breaks (dotnet/coreclr#13523)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1eea080a7b3a13110975b92034a22e4fc473df46
Jonghyun Park [Tue, 22 Aug 2017 20:56:01 +0000 (05:56 +0900)]
Fix inconsistency between GetHasCode and Equals (dotnet/coreclr#13513)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b7dcb5900392f9e30a8aaabe11c89d470178322
Joseph Tremoulet [Tue, 22 Aug 2017 20:23:07 +0000 (16:23 -0400)]
Add InnerIterationCount to layout benchmarks
These tests were too short-running to measure effectively. Add an inner
iteration count that makes the running time around 1 second (measured
locally).
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad75eead4d663427381c103246c27c2e20587420
Jonghyun Park [Tue, 22 Aug 2017 19:31:26 +0000 (04:31 +0900)]
Introduce COMPlus_GDBJitEmitDebugFrame (dotnet/coreclr#13515)
* Introduce COMPlus_GDBJitEmitDebugFrame
* Use a proper #ifdef macro
Commit migrated from https://github.com/dotnet/coreclr/commit/
aed0665893b812eadd8be6362116285f59e27288
Stephen Toub [Tue, 22 Aug 2017 17:05:53 +0000 (13:05 -0400)]
Override Span-based Read/Write on FileStream
Adds overrides for the new Span-based Read/Write methods on FileStream.
A few notes:
- As with {Unmanaged}MemoryStream, FileStream isn't sealed, which means a derived type could have overridden all of the existing abstract/virtual methods, including Read(byte[],int,int). If a consumer then switched to using that stream with Read(Span), because we now override Read(Span), the consumer should get the same behavior intended by the stream developer. As such, since we have no good/efficient way to check whether Read(byte[],int,int) is overridden, we check whether the current stream is a concrete FileStream (rather than a derived type), and if it isn't we use the default base behavior, which will call the Read(byte[],int,int) method.
- FileStream is odd in that it has a dual nature around whether it was initialized for sync vs async, a setting that on Windows ends up configuring the native handle to operate in async mode. Sync operations on an async-configured FileStream end up delegating to the async methods and blocking, and async operations on a sync-configured FileStream end up using the synchronous behavior asynchronously. There were some inconsistencies around how this was handled between Windows and Unix, in particular around the ReadByte method, and as part of adding these overloads, I changed that as well, as doing so made the code simpler with the new Span-based support. Technically this is a breaking change on Unix, but it would be very niche, including calling ReadByte on an async stream while other async operations were in progress... in that case, the desktop and Windows core behavior was to allow direct access to any cached data in the buffer, whereas on Unix we would serialize the ReadByte call with other async operations in flight.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1cb3580858f3224f0e0981965a2da1fd61ba9e08
Steve MacLean [Tue, 22 Aug 2017 18:58:30 +0000 (14:58 -0400)]
[Arm64/Unix] Use portable MP optimized new/alloc (dotnet/coreclr#12333)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f0e86604cbc2e30889ec354423bb4478924ece29
Steve MacLean [Tue, 22 Aug 2017 18:58:04 +0000 (14:58 -0400)]
[Arm64] Fix RecycledListsWrapper cache guard (dotnet/coreclr#13397)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d5136b04cd19f35280949d078b5df19b99f0eb26
William Godbe [Tue, 22 Aug 2017 18:36:09 +0000 (11:36 -0700)]
Merge pull request dotnet/coreclr#12216 from ellismg/fix-warnings
Fix warnings when building SOS.NETCore.csproj
Commit migrated from https://github.com/dotnet/coreclr/commit/
246789d44abf75e6b945e4508ed25b9561d79adc
Sean Gillespie [Tue, 22 Aug 2017 17:20:36 +0000 (10:20 -0700)]
[Local GC] Enable building the GC as a shared library (dotnet/coreclr#13137)
* [Local GC] Build the GC using system headers
* Disable features to get the GC to build
* Get rid of the separate 'GC PAL' build
* Remove unused stuff
* Don't build gcenv.os.cpp when linking in a standalone gc
* Stub out CPUGroupInfo and NumaNodeInfo
* Stub out IsGCThread and friends
* Build the GC as a shared library :tada:
* Build, link, and run! :tada:
* Fix standalone GC build break
* Fixes where the GC's MethodTable and VM's MethodTable classes disagree
* Integrate a standalone GC into the CoreCLR build system (so it gets copied to the output folder). Re-enable some ifdef-ed out includes that are required for a non-standalone build of the GC.
* Bring changes to Unix and fix the Unix build. Implement some compiler intrinsic wrappers and alignment functions expected by the GC.
* Fix the Windows build
* 1. Code review feedback: use standard types for BitScanForward and
BitScanForward64
2. Delete FEATURE_COM stuff from the build system, not needed for this
PR
3. Fix the Unix build
* Fix the Windows x86 build - the _BitScanForward64 intrinsic is not available when targeting 32-bit platforms
* Remove a number of things from gcenv.base.h that are not used
* Remove a linker workaround now that we are not linking a standalone GC into the runtime
* Remove dead code, make the lack of GC_PROFILING for standalone gc not break profiling on the non-standalone build
* Code review feedback - use add_library_clr and other cmake-related fixes
* Fix include indentation
* Remove some extraneous parameters to cmake functions (cmake is remarkably lenient...)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8acf6c9f7e33b1bfe77205cd2e61f2c60e8c00ce
Joseph Tremoulet [Tue, 22 Aug 2017 17:04:42 +0000 (13:04 -0400)]
Merge pull request dotnet/coreclr#13461 from JosephTremoulet/TodoUpdate
Update JitOptimizerTodoAssessment.md
Commit migrated from https://github.com/dotnet/coreclr/commit/
2766385624a9c5b73d32bed85519c044447701ff
Victor "Nate" Graf [Tue, 22 Aug 2017 17:02:51 +0000 (10:02 -0700)]
Follow-up: Add enforce PGO to official builds (dotnet/coreclr#13437)
* Add variables to pipeline to enable enforcepgo for Release
* Address review
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce54898a65f89b95537a943a48bae1c60cd249ed
Joseph Tremoulet [Tue, 22 Aug 2017 16:39:54 +0000 (12:39 -0400)]
Merge pull request dotnet/coreclr#13487 from mikedn/switch-temp-type
Fix incorrect switch temp lcl type
Commit migrated from https://github.com/dotnet/coreclr/commit/
10c89f401b3b7cf4cc095649455ce4d2efd33b18
Justin Van Patten [Tue, 22 Aug 2017 14:09:08 +0000 (07:09 -0700)]
Delete some dead PAL code (dotnet/coreclr#13469)
* Delete some dead PAL code
GetComputerName and GetUserName are not used.
* HAVE_GETPWUID_R can now be deleted
Commit migrated from https://github.com/dotnet/coreclr/commit/
dfd90b728c3bc26c4e038a3dbd6075ce3f257d2b
Dan Moseley [Tue, 22 Aug 2017 05:25:35 +0000 (22:25 -0700)]
Remove empty try's (dotnet/coreclr#13493)
* Remove empty try's
* Remove some dead comments
* more
Commit migrated from https://github.com/dotnet/coreclr/commit/
469940932199d4f281896184c8fd49daffdd1a5d
Joseph Tremoulet [Tue, 22 Aug 2017 04:14:17 +0000 (00:14 -0400)]
Undo a few JIT layout workarounds (dotnet/coreclr#13505)
Remove some `goto`s that were added to work around dotnet/coreclr#9692 (poor code
layout for loop exit paths) -- the JIT's layout decisions were improved
in dotnet/coreclr#13314, and these particular `goto`s are no longer needed; crossgen
of System.Private.CoreLib now produces the same machine code with or
without this change.
Part of dotnet/coreclr#13466.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4bf9209719b4c356416cdeaf3aa57eba54c9206
Steve MacLean [Tue, 22 Aug 2017 03:10:01 +0000 (23:10 -0400)]
ThreadPool minimalistic thread request cap (dotnet/coreclr#13431)
Cap ThreadPool thread requests minimalistically
- Only request an additional thread on dequeue if enqueue request was suppressed, and if there are any work items left in the queues
- ThreadPool pad hot cache line
- Add ideas from dotnet/coreclr#13408
Commit migrated from https://github.com/dotnet/coreclr/commit/
99db31c41d5057e08cc4701c79f11246b9191a9b
Sergey Andreenko [Tue, 22 Aug 2017 01:04:29 +0000 (18:04 -0700)]
fix JitConfig initialize and destoy (dotnet/coreclr#13477)
fix JitConfig initialize and destoy.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8020aa727020c5a02e2c27ec4b07ee3ffbaf057d
Stephen Toub [Tue, 22 Aug 2017 00:27:13 +0000 (20:27 -0400)]
Merge pull request dotnet/coreclr#13496 from justinvp/version_parse
Avoid unnecessary intermediate Version allocation
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b802826b89b0cbd0a037255bb13a86f95bc4447
Mike Kaufman [Mon, 21 Aug 2017 23:30:34 +0000 (16:30 -0700)]
Fixing wcsstr function to account for cases where search string is longer than remaining target string. (dotnet/coreclr#13504)
Commit migrated from https://github.com/dotnet/coreclr/commit/
358826b58e1863857d110b30abb32257171d1009
Jeremy Kuhne [Mon, 21 Aug 2017 22:45:57 +0000 (15:45 -0700)]
Use CreateFile2FromApp if available (dotnet/coreclr#13410)
* Use CreateFile2FromApp if available
This is needed for F5 UAP brokering scenarios.
Remove check for handle type. Overzealous, doesn't apply to UAP scenarios.
* Address feedback
- Use CreateFile2 if Win8 or higher
- Always use CreateFile2FromApp if Appx
- Make DisableMediaInsertionPrompt a struct
- Push CreateFile2FromApp down to avoid JIT
* More feedback
Always use FromApp for WinRT.
* Conditionalize IsWindows8OrAbove check
* Always use FromApp if in AppX
* Address more feedback
- Fix Unix build by moving LoadString to shared
- Break out CREATEFILE2 struct
- Condition CreateFile2FromApp usage
* Move include
Commit migrated from https://github.com/dotnet/coreclr/commit/
41a2b788cb77668d397e372df40c5215bf61bfa7
Dan Moseley [Mon, 21 Aug 2017 22:18:28 +0000 (15:18 -0700)]
Clean up VS experience for s.p.corelib.csproj (dotnet/coreclr#13481)
* Remove bogus assembly warnings in VS
* Fix warnings about sharing files within the project tree
* Remove bogus lines
* Remove lines showing up as bogus source files
* Remove overridden target
* feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
151002c8814c2f9fdbc0979c6737f6a3e1878fba
Roman Artemev [Mon, 21 Aug 2017 19:30:36 +0000 (12:30 -0700)]
Merge pull request dotnet/coreclr#13482 from rartemev/issue_12469
Fixed misconception between FP register allocator and RyuJIT's CSE phase
Commit migrated from https://github.com/dotnet/coreclr/commit/
d99751c0dac420a2e9b0c52ea50d5d766e538d3b
Stephen Toub [Mon, 21 Aug 2017 19:04:17 +0000 (15:04 -0400)]
Merge pull request dotnet/coreclr#13424 from stephentoub/versionspan
Add span-based Version methods
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8993ecdc48e98b6e8ec4ee8d21d28f11e9e5f65
Tom Deseyn [Mon, 21 Aug 2017 18:56:32 +0000 (20:56 +0200)]
Support docker cgroup limits (dotnet/coreclr#13488)
* Fix cgroup mountinfo parsing
The parsing would find the wrong '-' in lines like this:
354 347 0:28 /system.slice/docker-654dd7b6b8bbfe1739ae3309b471e95ccc82b3a3f56b7879f0a811d68b5c4e1d.scope /sys/fs/cgroup/cpuacct,cpu ro,nosuid,nodev,noexec,relatime - cgroup cgroup rw,cpuacct,cpu
* cgroup: don't append cgroup relative path for reading docker limits
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa01b864246bb588e5088be36dbfe3af833b266f
Noah Falk [Mon, 21 Aug 2017 17:45:32 +0000 (10:45 -0700)]
Merge pull request dotnet/coreclr#13497 from noahfalk/tiered_jit_fix_tests
Enable by-request tiered compilation testing in CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
fca2b735f4b5193dfbf7f8b5b8d36060d73a9967
Stephen Toub [Mon, 21 Aug 2017 17:38:32 +0000 (13:38 -0400)]
Merge pull request dotnet/coreclr#13483 from dotnet-maestro-bot/master-UpdateDependencies
Update CoreClr, CoreFx to preview2-25621-02, preview2-25621-02, respectively (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
60cf3937ecc626118e4bf404ee5991e58e838855
Jarret Shook [Mon, 21 Aug 2017 16:10:57 +0000 (09:10 -0700)]
Merge pull request dotnet/coreclr#12489 from jashook/unix_x64_and_arm64_fasttailcall_fix
[Unix x64|Arm64] Correct canfastTailCall decisions
Commit migrated from https://github.com/dotnet/coreclr/commit/
fbc11ea6afdaa2fe7b9377446d6bb0bd447d5cb5
dotnet-maestro-bot [Mon, 21 Aug 2017 13:32:54 +0000 (06:32 -0700)]
Update CoreClr, CoreFx to preview2-25621-02, preview2-25621-02, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2d604447ed143e8fb8e483e58564468c28e0687
sjsujinkim [Mon, 21 Aug 2017 01:57:23 +0000 (10:57 +0900)]
Change the position of unassignPhysReg()
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a97aaf2cd3fafa049a9c672e232fac56fb2a6fa
noahfalk [Mon, 21 Aug 2017 00:21:57 +0000 (17:21 -0700)]
Fixing assert in groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
bd4395eef7ca10b9144092fa9bc4ea8148b6a015
noahfalk [Sun, 20 Aug 2017 23:43:23 +0000 (16:43 -0700)]
Enable by-request tiered compilation testing in CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
10f7815b5ecb0e8322834d3d9d82a1e0bb04077e
Justin Van Patten [Sun, 20 Aug 2017 19:37:18 +0000 (12:37 -0700)]
Avoid unnecessary intermediate Version allocation
`Version..ctor(string)` is implemented by calling `Version.Parse`, which
allocates an intermediate `Version` instance. Avoid the unnecessary
intermediate allocation by using `Version.Parse` directly.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6bffa568191ad1e539ffe6ff47ce2db5b017934d
Mike Danes [Sat, 19 Aug 2017 08:59:24 +0000 (11:59 +0300)]
Fix incorrect switch temp lcl type
Commit migrated from https://github.com/dotnet/coreclr/commit/
d93735c280e2f4d4444d4b385eca3fe9f3677761
Pat Gavlin [Sat, 19 Aug 2017 13:43:06 +0000 (06:43 -0700)]
Merge pull request dotnet/coreclr#12892 from pgavlin/LivenessDCE
Improve DCE in LIR liveness.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a6045809b3720833459c9247aeb4aafe281d7841
Sergey Andreenko [Sat, 19 Aug 2017 03:50:13 +0000 (20:50 -0700)]
delete unused return argument (dotnet/coreclr#13468)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3dd1c074f5d89533d8a8e13ea6143a4850752d3e
Andrew Au [Sat, 19 Aug 2017 03:04:37 +0000 (20:04 -0700)]
Rename System.Threading.Thread.m_ManagedThreadId to System.Threading.Thread._ManagedThreadId to align with CoreRT implementation (dotnet/coreclr#13473)
Rename System.Threading.Thread.m_ManagedThreadId to System.Threading.Thread._ManagedThreadId to align with CoreRT implementation
Commit migrated from https://github.com/dotnet/coreclr/commit/
6272a59534a9b4ed2717473a98b368726bebbb1a
Roman Artemev [Sat, 19 Aug 2017 01:20:06 +0000 (18:20 -0700)]
Fixed misconception between FP register allocator and RyuJIT's CSE phase
Commit migrated from https://github.com/dotnet/coreclr/commit/
3f4ee3bed52291e592d7ab67da1fc0e39ee8a3b7
Noah Falk [Sat, 19 Aug 2017 00:59:22 +0000 (17:59 -0700)]
Merge pull request dotnet/coreclr#13392 from noahfalk/tiered_jit_fix_tests
Make unit tests run clean with tiered compilation
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e5a7b0615b967040f67b131daf1ffc79f4eec2a
Wes Haggard [Fri, 18 Aug 2017 23:08:48 +0000 (16:08 -0700)]
Merge pull request dotnet/coreclr#13472 from dotnet/revert-13464-reimport_rhel6_test_change
Revert "Re-port test project changes from release/2.0.0 to master"
Commit migrated from https://github.com/dotnet/coreclr/commit/
312e4486adc4eb8062caa67d4aa9be5411524996
José Rivero [Fri, 18 Aug 2017 21:19:17 +0000 (14:19 -0700)]
`perf.groovy` updates. (dotnet/coreclr#13465)
- Increase how long performance artifacts are kept.
- Added an extra step to move files to be archived into a different folder.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ef633afa13a4dc1c4119489f14f77807d5daa28
Pat Gavlin [Mon, 17 Jul 2017 16:55:36 +0000 (09:55 -0700)]
Improve DCE in liveness.
In particular:
- Rather than only removing dead code as part of dead store removal,
remove all side-effect-free nodes that either do not produce a value
or produce a value that is unused.
- When optimizing, set `fgStmtRemoved` in order to indicate that tracked
lclVar uses or defs have been removed and liveness may need to be
recalculated. Previously this flag was only set upon eliminating a
dead store.
Commit migrated from https://github.com/dotnet/coreclr/commit/
717b11a2d1f9af5d8204ba179a67131fbdfd739a
Andy Ayers [Fri, 18 Aug 2017 20:46:32 +0000 (13:46 -0700)]
JIT: extend gc descriptor for ppp quirked local struct (dotnet/coreclr#13438)
When we expand the size of a local for the ppp quirk, also expand
the size of its gc descriptor, and mark the new "fields" as non-gc.
Fixes dotnet/coreclr#13407.
Commit migrated from https://github.com/dotnet/coreclr/commit/
00496534d69b603b724c17f51469554b1241bc6d
Wes Haggard [Fri, 18 Aug 2017 20:00:50 +0000 (13:00 -0700)]
Merge pull request dotnet/coreclr#13439 from dotnet-maestro-bot/master-UpdateDependencies
Update CoreClr, CoreFx to preview2-25618-04, preview2-25618-02, respectively (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ccc62dcf31af5edb7e7d17118fa870733002c06
Jan Kotas [Fri, 18 Aug 2017 19:54:02 +0000 (12:54 -0700)]
Revert "Re-port test project changes from release/2.0.0 to master (dotnet/coreclr#13464)"
This reverts commit dotnet/coreclr@
7a386da8fc7067978a880445555942ccc6343be8.
Commit migrated from https://github.com/dotnet/coreclr/commit/
52627ff32b8b9fa60fbd5be1299353053fc1e76a
smile21prc [Fri, 18 Aug 2017 17:49:52 +0000 (10:49 -0700)]
Re-port test project changes from release/2.0.0 to master (dotnet/coreclr#13464)
Re-port test project changes from release/2.0.0 to master
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a386da8fc7067978a880445555942ccc6343be8
Joseph Tremoulet [Fri, 18 Aug 2017 16:13:41 +0000 (12:13 -0400)]
Mention Byref Store/Load VN and Helper Call Kills
These are two more areas that have received recent scrutiny.
Commit migrated from https://github.com/dotnet/coreclr/commit/
73304d84c008380b1fed2d28bf48a16fdf3ec7b4
Joseph Tremoulet [Fri, 18 Aug 2017 16:25:31 +0000 (12:25 -0400)]
Merge pull request dotnet/coreclr#13314 from JosephTremoulet/loops
Lay out loop bodies contiguously
Commit migrated from https://github.com/dotnet/coreclr/commit/
46bfc276c9e8ac619d75e4b6a409c2427646639a
Joseph Tremoulet [Fri, 18 Aug 2017 16:09:56 +0000 (12:09 -0400)]
Categorize optimization ToDos
Commit migrated from https://github.com/dotnet/coreclr/commit/
7145b1e1ccf2d5d77138be9589e221b3e4e472ef
Joseph Tremoulet [Fri, 18 Aug 2017 15:58:33 +0000 (11:58 -0400)]
Update JitOptimizerTodoAssessment
Update notes on struct promotion, loop optimization, if-conversion, and
mulshift. Add notes about switch lowering and write barriers.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6202963ec81b240b4f88986647a65a14a13ff1a4
Michelle McDaniel [Fri, 18 Aug 2017 15:47:47 +0000 (08:47 -0700)]
Merge pull request dotnet/coreclr#13459 from adiaaida/updatePgoCounts
Update optdata in master to version
20170817-0120
Commit migrated from https://github.com/dotnet/coreclr/commit/
94231f05494cae4ffed1650748490948ccc22922
Michelle McDaniel [Fri, 18 Aug 2017 15:42:45 +0000 (08:42 -0700)]
Update optdata in master to version
20170817-0120
Commit migrated from https://github.com/dotnet/coreclr/commit/
5dd46a9d523fddb3e7e119008e237e9e7b9977c7
Michelle McDaniel [Fri, 18 Aug 2017 15:31:58 +0000 (08:31 -0700)]
Merge pull request dotnet/coreclr#13456 from adiaaida/revertPGO
Revert "Update optdata in master to version
20170817-0120"
Commit migrated from https://github.com/dotnet/coreclr/commit/
a7be12c11a66d104a465ed34618479f60d525ec4
Michelle McDaniel [Fri, 18 Aug 2017 15:31:19 +0000 (08:31 -0700)]
Revert "Update optdata in master to version
20170817-0120"
This reverts commit dotnet/coreclr@
694eb48ae21ae79ca745fa3448be87d144ff912d.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d5ad8be5b11dac8a43b3c6f322abd072ba12add4
Michelle McDaniel [Fri, 18 Aug 2017 15:24:28 +0000 (08:24 -0700)]
Merge pull request dotnet/coreclr#13455 from adiaaida/updatePgoCounts
Update optdata in master to version
20170817-0120
Commit migrated from https://github.com/dotnet/coreclr/commit/
42f15e84dce0f9261d1b1acda22dd3195ff7524f
Jonghyun Park [Fri, 18 Aug 2017 15:21:56 +0000 (00:21 +0900)]
Introduce COMPlus_GDBJitElfDump (dotnet/coreclr#13448)
* Add COMPlus_GDBJitElfDump
* Fix Release build error
* Add flags in EEConfig
Commit migrated from https://github.com/dotnet/coreclr/commit/
c40a59ba595ced53667333b017b30f4cdd05a55f
Michelle McDaniel [Fri, 18 Aug 2017 15:21:11 +0000 (08:21 -0700)]
Update optdata in master to version
20170817-0120
Commit migrated from https://github.com/dotnet/coreclr/commit/
694eb48ae21ae79ca745fa3448be87d144ff912d
Bruce Forstall [Fri, 18 Aug 2017 15:11:45 +0000 (08:11 -0700)]
Merge pull request dotnet/coreclr#13400 from sergign60/arm_build
[armel tizen] Fix for CoreRT issue https://github.com/dotnet/coreclr/issues/13195
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4b2e7063d285e76243e65ba84d1d45ab60abaca
jashook [Mon, 5 Jun 2017 21:48:51 +0000 (14:48 -0700)]
[Unix x64|Arm64] Correct canfastTailCall decisions
This will change how the fastTailCall decision is made for x64 unix and arm64.
Before this change the decision was based on the amount of incoming and outgoing
caller arguments like on Windows. This was incorrect on Unix x64 and Arm64
because one argument does not translate to one register or one stack slot use.
Before this change structs on Arm64 and Amd64 Unix could
pessimize when we could fastTailCall if they were engregisterable
and took more than one register.
This change also fixes several cases when determining to fastTailCall. It fixes
dotnet/coreclr#12479 and will cause a no fastTailCalls decisions for case dotnet/coreclr#12468.
In addition this change adds several regression cases for dotnet/coreclr#12479 and dotnet/coreclr#12468. It
includes more logging ofr fastTailCall decisions, including a new COMPlus
variable named COMPlus_JitReportFastTailCallDecisions, which can be toggled with
COMPlus_JitReportFastTailCallDecisions=1.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ee95d7c5f552dcfc1b69f8ac2567c4afda40695e
dotnet-maestro-bot [Fri, 18 Aug 2017 13:32:14 +0000 (06:32 -0700)]
Update CoreClr, CoreFx to preview2-25618-04, preview2-25618-02, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
0554200fee11465607042b9ce37932da8778577c
Sergey Ignatov [Wed, 16 Aug 2017 18:30:06 +0000 (21:30 +0300)]
Fix for CoreRT issue https://github.com/dotnet/coreclr/issues/13195
Commit migrated from https://github.com/dotnet/coreclr/commit/
d87aa73167e50e9692e64dc96635f7113d221c11
sjsujinkim [Fri, 18 Aug 2017 05:43:01 +0000 (14:43 +0900)]
Remove unnecessary genIsValidDoubleReg() assertion
Commit migrated from https://github.com/dotnet/coreclr/commit/
2012d9ee004539493ee10e83cfbccb578dde8976
Jan Kotas [Thu, 17 Aug 2017 21:22:32 +0000 (14:22 -0700)]
Merge pull request dotnet/corertdotnet/coreclr#4340 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
367d9b1dd1b542f3d391d0b9111d5914602db2d9
John Doe [Fri, 18 Aug 2017 04:41:54 +0000 (21:41 -0700)]
Typo (dotnet/coreclr#13444)
Commit migrated from https://github.com/dotnet/coreclr/commit/
bed0a5e263324d3e035a2140c24cc70f1e143d93
Bruce Forstall [Fri, 18 Aug 2017 04:36:56 +0000 (21:36 -0700)]
Merge pull request dotnet/coreclr#13445 from hseok-oh/ryujit/fix_13421
[RyuJIT/ARM32] Set carry bit: neg operation
Commit migrated from https://github.com/dotnet/coreclr/commit/
63411df7707e0636efca86f15280d961050d452a
Bruce Forstall [Fri, 18 Aug 2017 04:34:58 +0000 (21:34 -0700)]
Merge pull request dotnet/coreclr#13442 from BruceForstall/EnableSuperPmiCoreDisAsmDiffs2
Enable SuperPMI asm diffs using CoreDisTools
Commit migrated from https://github.com/dotnet/coreclr/commit/
47b8c44b36b6b7d13c1c7db940620cf648dc86fb
smile21prc [Fri, 18 Aug 2017 03:58:14 +0000 (20:58 -0700)]
Port fixes in DotNet-CoreClr-Trusted-Linux.json to unblock coreclr (dotnet/coreclr#13446)
* Port fixes in DotNet-CoreClr-Trusted-Linux.json to unblock coreclr official run.
Port this commit:
https://github.com/dotnet/coreclr/commit/dotnet/coreclr@
66d0fed853589e19336b6486f05f9218019ca4c9
* Remove extra new line at end of the file
Remove extra new line at end of the file
* Remove end line
Remove end line
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ab8def1e9692f3d620c92be415cd54572dd7f67
Pat Gavlin [Tue, 18 Jul 2017 22:17:46 +0000 (15:17 -0700)]
Split fgComputeLifeLocal's subcases into separate functions.
There are three cases that are relevant here:
- Defs of tracked locals
- Uses of tracked locals
- Appearances of untracked locals
Each of these cases has been moved into its own function.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8274c8cb7aebe9a8cc8527989fd8503ece28a246
Hyeongseok Oh [Fri, 18 Aug 2017 02:50:27 +0000 (11:50 +0900)]
[RyuJIT/ARM32] Set carry bit: neg operation
Set carry bit when we generate ARM32 code for neg operation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
770709d4161d5c5012fe1955df8a40d22daa4f03
Bruce Forstall [Fri, 18 Aug 2017 01:29:20 +0000 (18:29 -0700)]
Enable SuperPMI asm diffs using CoreDisTools
Change SuperPMI to dynamically load coredistools.dll on demand.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c024d72af6e7110dab147b2ed3bd3808bacf9fe6
Roman Artemev [Fri, 18 Aug 2017 01:34:37 +0000 (18:34 -0700)]
Merge pull request dotnet/coreclr#12632 from rartemev/issue_12464
Fix legacy backend crash on assert dotnet/coreclr#12464
Commit migrated from https://github.com/dotnet/coreclr/commit/
e1f2b4c7abc456d92046a8708de7a40a22bc6311
smile21prc [Fri, 18 Aug 2017 01:24:22 +0000 (18:24 -0700)]
Migrate Git clone from GitHub to VSO (dotnet/coreclr#13430)
* Migrate Git clone from GitHub to VSO
Migrate Git clone from GitHub to VSO
* Correct var name
Correct var name
* Remove PB_ as they are unnecessary and confusing.
Remove PB_ as they are unnecessary and confusing.
* Add dependent vars.
Add dependent vars.
* Fix repo name.
Fix repo name.
Commit migrated from https://github.com/dotnet/coreclr/commit/
66d0fed853589e19336b6486f05f9218019ca4c9
noahfalk [Fri, 18 Aug 2017 00:39:49 +0000 (17:39 -0700)]
Fix more contract violations
Commit migrated from https://github.com/dotnet/coreclr/commit/
4a5384a805a2c84ce4c1111d10a03fe308d3ecea