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: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
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
Carol Eidt [Tue, 1 Aug 2017 00:41:13 +0000 (17:41 -0700)]
Move Containment Analysis to Lowering
- Ensure that the only changes to child nodes are the specification of srcCandidates
(i.e. the register requirements of the parent/consumer)
- Since this now occurs before redoing dataflow, we don't have complete information on
what lclVars are containable. To mitigate this:
- In `TreeNodeInfoInit()`, if a lclVar is marked `isRegOptional` but is now untracked,
change it to be contained.
- Mark decomposed/promoted fields of long params as `lvDoNotEnregister`
- Ensure that any new code added after `Lowering` is analyzed as necessary.
- When a value becomes unused, it is no longer contained. (This is needed now because liveness runs after containment analysis)
- Add dumping of nodes deleted as unused.
- Need to set byteable regs, as needed on contained RMW memory ops.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ad49b141f1d06c5e83ec58fa7f21c7d2f3714d3
Jarret Shook [Wed, 16 Aug 2017 18:13:13 +0000 (11:13 -0700)]
Merge pull request dotnet/coreclr#13208 from jashook/add_gc_stress_arm_metadata
Add arm32 GCStress excludes
Commit migrated from https://github.com/dotnet/coreclr/commit/
89d8be12677a5d395d1ec7e62874a4476ea5d4d6
Jarret Shook [Wed, 16 Aug 2017 18:10:37 +0000 (11:10 -0700)]
Merge pull request dotnet/coreclr#13377 from jashook/arm64_alignment
Restrict alignment assert to only if volatile
Commit migrated from https://github.com/dotnet/coreclr/commit/
39200ccefec0f56705f0d6a05ce0cd646c2ce1fe
jashook [Tue, 15 Aug 2017 15:57:54 +0000 (08:57 -0700)]
Restrict alignment assert to only if volatile
Commit migrated from https://github.com/dotnet/coreclr/commit/
814bf42315bb024046e43621e3cad3d488d783cb
Stephen Toub [Wed, 16 Aug 2017 17:54:51 +0000 (13:54 -0400)]
Fix AsyncValueTaskMethodBuilder.Create for corert (dotnet/coreclr#13396)
I changed AsyncValueTaskMethodBuilder.Create to avoid calling the nop AsyncTaskMethodBuilder.Create, but it turns out on corert that AsyncTaskMethodBuilder.Create actually does additional work if the debugger is attached, so we should still call it there.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a8f280856243b8eb48729a2616f06824b67f1f4
Matt Mitchell [Wed, 16 Aug 2017 16:08:28 +0000 (09:08 -0700)]
Don't run arm64 on every commit (dotnet/coreclr#13384)
We cannot keep up currently
@jashook PTAL
Commit migrated from https://github.com/dotnet/coreclr/commit/
633f4ed3231fd3977976fa974d13038b338be325
jashook [Thu, 3 Aug 2017 18:29:32 +0000 (11:29 -0700)]
Add arm32 GCStress excludes
Commit migrated from https://github.com/dotnet/coreclr/commit/
2fdf0aaa48376d6227b247f97709582aeaa00ea6
Stephen Toub [Wed, 16 Aug 2017 14:25:16 +0000 (10:25 -0400)]
Merge pull request dotnet/coreclr#13390 from stephentoub/avtmbcreate
Remove overhead from AsyncValueTaskMethodBuilder.Create
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c96b7bb97cd4b746dce93bada1ff79ac59fbb23
noahfalk [Wed, 16 Aug 2017 05:13:01 +0000 (22:13 -0700)]
Make unit tests run clean with tiered compilation
A handful of tests are optimization sensitive and needed to be disabled because tiered jitting doesn't optimize right away.
There was also a shutdown timing issue where the tiered jitting background compilation thread would continue calling into the JIT after the JIT was shutdown. This manifested as an error writing to the jit log after the stream had been closed.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3f6b572942f6a3c6297ded77de3d3c0634c9bfdc
José Rivero [Wed, 16 Aug 2017 04:11:36 +0000 (21:11 -0700)]
Small perf infrastructure changes (dotnet/coreclr#13325)
- Move xUnit Perf Api output files to a folder `Logs` under sandbox
- Made necessary changes to `perf.groovy` to archive artifacts
- Added a switch -outputdir to the run-xunit-perf* scripts
- Enable running all CoreClr scenarios (JitBench & IlLink) despite failure
- Move sandbox to bin folder
- Use the default output dir: `.\bin\sandbox`
Commit migrated from https://github.com/dotnet/coreclr/commit/
d92c1e0bc61bab5cd6b6c9b3d4fc67036c473c6c
Stephen Toub [Wed, 16 Aug 2017 02:56:24 +0000 (22:56 -0400)]
Remove overhead from AsyncValueTaskMethodBuilder.Create
AsyncValueTaskMethodBuilder.Create wraps an AsyncTaskMethodBuilder and thus initializes its _methodBuilder field to AsyncTaskMethodBuilder.Create. But even though AsyncTaskMethodBuilder.Create just returns default(AsyncTaskMethodBuilder), a non-trivial amount of code is being generated into AsyncValueTaskMethodBuilder.Create, even though it's really just returning default(AsyncValueTaskMethodBuilder). So while the "right" thing to do is to call Create, this commit just skips it and adds a comment that if AsyncTaskMethodBuilder.Create ever becomes more than a nop, various callers would need to be updated as well (though I doubt we'd ever change it).
This reduces the overhead of a nop ValueTask-returning async method by ~30%.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5dcf28bdc76c3504182d3d3d6b6cfd33df55ddae
sjsujinkim [Wed, 16 Aug 2017 02:00:10 +0000 (11:00 +0900)]
Fix formatting
Commit migrated from https://github.com/dotnet/coreclr/commit/
7ba3c69823654529949606b47af38ea2972eeec9
Tarek Mahmoud Sayed [Wed, 16 Aug 2017 01:49:16 +0000 (18:49 -0700)]
Get sort version dynamically and expose ICU version from native component (dotnet/coreclr#13382)
* Support ICU Version
* Add the assert
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce9bc942510fc9608c24e938f6d043c39fd0085d
sjsujinkim [Wed, 16 Aug 2017 01:44:08 +0000 (10:44 +0900)]
Fix genIsValidDoubleReg not found
Commit migrated from https://github.com/dotnet/coreclr/commit/
f40f640cd0761d89c24f9efb88c6d1ab3dc84537
sjsujinkim [Fri, 28 Jul 2017 08:56:12 +0000 (17:56 +0900)]
[RyuJIT/ARM32] Add additional unassignToInterval if the currentInterval is TYP_DOUBLE
Commit migrated from https://github.com/dotnet/coreclr/commit/
62ef107532203badddded0cc7f7a06765afffa7a