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
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
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
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
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
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
Joseph Tremoulet [Tue, 8 Aug 2017 21:09:25 +0000 (17:09 -0400)]
Add perf test
Commit migrated from https://github.com/dotnet/coreclr/commit/
8127531109f5137290f40eebbfbf4294e4034c89
Joseph Tremoulet [Thu, 17 Aug 2017 23:01:57 +0000 (19:01 -0400)]
Refactor loop identification into a class
This is mainly done to increase readability, as `optFindNaturalLoops`
had grown excessively large. It also facilitates re-using code to fix
up fallthrough, and skipping past CallFinally/BBJ_ALWAYS pairs rather
than aborting once they're found.
Commit migrated from https://github.com/dotnet/coreclr/commit/
99edc2b1231f94ca6d77249653d9dea47751c6ab
Joseph Tremoulet [Tue, 18 Jul 2017 14:32:54 +0000 (10:32 -0400)]
Lay out loop bodies contiguously
Rearrange basic blocks during loop identification so that loop bodies
are kept contiguous when possible. Blocks in the lexical range of the
loop which do not participate in the flow cycle (which typically
correspond to code associated with early exits using `break` or
`return`) are moved out below the loop when possible without breaking EH
region nesting. The target insertion point, when possible, is chosen to
be the first spot below the loop that will not break up fall-through.
Layout can significantly affect the performance of loops, particularly
small search loops, by avoiding the taken branch on the hot path,
improving the locality of the code fetched while iterating the loop, and
potentially aiding loop stream detection.
Resolves dotnet/coreclr#9692.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fd974d9a789a301f019ef2eba2c2045cacb02af5
Roman Artemev [Tue, 4 Jul 2017 19:53:31 +0000 (12:53 -0700)]
Fix legacy backend crash
Commit migrated from https://github.com/dotnet/coreclr/commit/
00fec7ce0d33b6d79bb91d689546baf8ee2b957f
Smile Wei [Thu, 17 Aug 2017 23:04:29 +0000 (16:04 -0700)]
Revert test part "Enable RedHat 6 in coreclr master (dotnet/coreclr#13315)" to unblock CI.
This reverts commit dotnet/coreclr@
b2b5fef27a4cb68571549f2e19660f39bd76467b.
Commit migrated from https://github.com/dotnet/coreclr/commit/
383a266b6a9c05a73f18ec00b807c841eb722d1d
Victor "Nate" Graf [Thu, 17 Aug 2017 21:48:28 +0000 (14:48 -0700)]
Revert PR 13375 (dotnet/coreclr#13436)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e28099ce9bc2762585577143c5b288a864ae9fd9
Roman Artemev [Thu, 17 Aug 2017 21:02:48 +0000 (14:02 -0700)]
Merge pull request dotnet/coreclr#13073 from rartemev/add_minopts_scenario
Added perf and perf_minopts scenarios for legacy backend
Commit migrated from https://github.com/dotnet/coreclr/commit/
ffe084ec621d2d2e48bd6170d286344247251ee9
Roman Artemev [Wed, 26 Jul 2017 23:07:24 +0000 (16:07 -0700)]
Add minopts scenario for Legacy backend
Commit migrated from https://github.com/dotnet/coreclr/commit/
e537b7e1db0dd0035dc7a892596c4417e5e43c31
Joseph Tremoulet [Thu, 17 Aug 2017 19:03:25 +0000 (15:03 -0400)]
Merge pull request dotnet/coreclr#13426 from JosephTremoulet/ConservativeConstant
Use conservative VN in CSE candidate const check
Commit migrated from https://github.com/dotnet/coreclr/commit/
23abbb6d2c4d6f9c370559a2666f81be0d0aa7ff
smile21prc [Thu, 17 Aug 2017 17:42:22 +0000 (10:42 -0700)]
Enable RedHat 6 in coreclr master (dotnet/coreclr#13315)
* Enable RedHat 6 in coreclr master
Enable RedHat 6 in coreclr master.
This is identical as the approved PR to enable RedHat 6 in coreclr
release/2.0.0:
https://github.com/dotnet/coreclr/pull/13301
* Correct Rid to match /src/.nuget/dirs.props
Correct Rid to match /src/.nuget/dirs.props
* Update dockertag and add logic to detect RHEL6 in init-tools.sh
Update dockertag and add logic to detect RHEL6 in init-tools.sh
* Port changes from Release/2.0.0 to fix coreclr RHEL 6 official runs.
Port changes from Release/2.0.0 to fix coreclr RHEL 6 official runs.
* Remove empty quotes.
Remove empty quotes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2b5fef27a4cb68571549f2e19660f39bd76467b
Bruce Forstall [Thu, 17 Aug 2017 17:39:22 +0000 (10:39 -0700)]
Merge pull request dotnet/coreclr#13419 from wateret/fix-arm-lea-needless-mov
[RyuJIT/arm32] Fix LEA codegen
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e01319382dff1a08412602df207a7d38ed61526
Carol Eidt [Thu, 17 Aug 2017 17:04:09 +0000 (10:04 -0700)]
Merge pull request dotnet/coreclr#13198 from CarolEidt/LowerContain
Move containment analysis to 1st phase of Lowering
Commit migrated from https://github.com/dotnet/coreclr/commit/
5dada64d4bc9eddb63579650e1fce4f5ffda0294
Jonghyun Park [Thu, 17 Aug 2017 16:01:26 +0000 (01:01 +0900)]
Support GDBJIT on NI/IL_STUBS (dotnet/coreclr#13417)
* Support GDBJIT on NI/IL_STUBS
* Move tls_isSymReaderInProgress into gdbjit.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/
1fbd304b5fef76d1d53ca5d886821ef334646b32
Carol Eidt [Thu, 17 Aug 2017 15:00:24 +0000 (08:00 -0700)]
Merge pull request dotnet/coreclr#13100 from sjsinju/currentInterval2
[RyuJIT/ARM32] Add additional unassigning if the currentInterval has TYP_DOUBLE
Commit migrated from https://github.com/dotnet/coreclr/commit/
82f487f94871c6fcc90f209d030eb8c0fc17bc00
Joseph Tremoulet [Thu, 17 Aug 2017 14:09:24 +0000 (10:09 -0400)]
Use conservative VN in CSE candidate const check
The check in CSE is supposed to leave code alone that constant prop
(done by VN-based Assertion Prop) is going to handle, but since that
constant prop code only propagates based on conservative VN, the check
in CSE needs to likewise use conservative VN to determine what to skip,
or else neither phase will eliminate the redundancy.
Fixes dotnet/coreclr#6234.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7350750c9eb3842b553d0b7c1ceb38da32263a02
Eric StJohn [Thu, 17 Aug 2017 13:38:50 +0000 (06:38 -0700)]
Merge pull request dotnet/coreclr#13406 from ericstj/updateDependencies
Update dependencies
Commit migrated from https://github.com/dotnet/coreclr/commit/
720800cb23024f36c3f281fb586107e028b14b75
Stephen Toub [Thu, 17 Aug 2017 13:33:26 +0000 (09:33 -0400)]
Add span-based Version methods
The span-based {Try}Parse is allocation-free, and as the string-based {Try}Parse uses it, it's also now allocation-free, rather than allocating a string[] from a split and a string for each component in the version.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2e3b1b0317dc48daab2d40d5911e28be42937fa
Koundinya Veluri [Thu, 17 Aug 2017 07:05:21 +0000 (00:05 -0700)]
Fix AssemblyName(string) constructor's version parsing (dotnet/coreclr#13373)
Fix AssemblyName(string) constructor's version parsing
Functional fix for https://github.com/dotnet/corefx/issues/22663
- Allow fewer version components
- Match .NET Framework behavior in several cases. Major and minor version must be specified for the version to be used.
- Used zero for unspecified build/revision. This is different from .NET Framework but the loader also behaves differently. Details are in code comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0825741447c14a6a70c60b7c429e16f95214e74e
Hanjoung Lee [Thu, 17 Aug 2017 02:55:43 +0000 (11:55 +0900)]
[RyuJIT/arm32] Fix LEA codegen
Do not generate `mov` when src and dst are the same
when we generate code for LEA node.
Fix dotnet/coreclr#13418
Commit migrated from https://github.com/dotnet/coreclr/commit/
92c3ea6000b37737a7caa5876a12a52d61198676
Stephen Toub [Thu, 17 Aug 2017 01:53:02 +0000 (21:53 -0400)]
Merge pull request dotnet/coreclr#13409 from stephentoub/encoder_span
Add span-based overloads to Encoder/Decoder
Commit migrated from https://github.com/dotnet/coreclr/commit/
0010efc91e3834affd878f122e44dc961e93f851
noahfalk [Thu, 17 Aug 2017 01:08:27 +0000 (18:08 -0700)]
Fixes for code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
af7f9e0e69365af2f7f2ca071248378ce5e76b75
Eric St. John [Wed, 16 Aug 2017 22:38:31 +0000 (15:38 -0700)]
Update coreclr tests to netcoreapp2.1
Commit migrated from https://github.com/dotnet/coreclr/commit/
bbce12bfb2c9e0b487d034d31fd552bc863cbad8
José Rivero [Thu, 17 Aug 2017 00:11:56 +0000 (17:11 -0700)]
`archiveSettings.addFiles` uses glob instead of path. (dotnet/coreclr#13403)
- Files were not being archived after last changes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6d48ec24038669423fd2abb3cfb6075649fbc4f
Stephen Toub [Wed, 16 Aug 2017 23:19:17 +0000 (19:19 -0400)]
Add span-based overloads to Encoder/Decoder
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d3442943b4fdf6a63ffe7782d938edff9a15277
jp2masa [Wed, 16 Aug 2017 22:53:56 +0000 (23:53 +0100)]
Added BinaryWriter Span-based APIs (dotnet/coreclr#13378)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ee6b8a33741cc5f3eb82e990646dd3a81de996a
dotnet-maestro-bot [Wed, 16 Aug 2017 13:37:35 +0000 (06:37 -0700)]
Update CoreClr, CoreFx to preview2-25616-01, preview2-25616-02, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
0791026228b6082a6f9137251f35aab81ba47b10
Mike McLaughlin [Wed, 16 Aug 2017 22:35:38 +0000 (15:35 -0700)]
Fixed Android AMD64 build. (dotnet/coreclr#13402)
Commit migrated from https://github.com/dotnet/coreclr/commit/
dcc56b31682b14ba432d689a979692cb848db1d6
Jonghyun Park [Wed, 16 Aug 2017 22:23:44 +0000 (07:23 +0900)]
Introduce FEATURE_GDBJIT_FRAME feature (dotnet/coreclr#13283)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d445122aad3b7c542f77b0b031cb9f205054a5c9
Stephen Toub [Wed, 16 Aug 2017 21:09:29 +0000 (17:09 -0400)]
Add Span-based {Try}Parse methods to primitive types (dotnet/coreclr#13389)
* Add Span-based {Try}Parse methods to primitive types
Adds Parse and TryParse methods to Boolean, Byte, Double, Int16, Int32, Int64, SByte, Single, UInt16, UInt32, UInt64, and Decimal.
* Address PR feedback
- Make delegation between overloads as consistent as possible across the primitive types: Boolean, SByte/Byte, Int16/UInt16, and Single/Double were doing it one way, whereas Decimal, Int32/UInt32, and Int64/UInt64 were doing it another way (most of this inconsistency was preexisting this PR, but my previous commit doubled-down on the inconsistency). Changed the former to be like the latter.
Commit migrated from https://github.com/dotnet/coreclr/commit/
12d5014ddefd7dab5d2dec23326080c114d1079d