Andy Ayers [Tue, 12 Jun 2018 16:49:36 +0000 (09:49 -0700)]
JIT: finally cloning -- handle fall through out of try (dotnet/coreclr#18416)
When searching for a handler to clone, handle the case where
control can fall out of the try into a callfinally pair.
Closes dotnet/coreclr#18353.
Commit migrated from https://github.com/dotnet/coreclr/commit/
065c9b33eba2894452624245689c194cd7879eb3
Carol Eidt [Tue, 12 Jun 2018 15:38:56 +0000 (08:38 -0700)]
Unify struct arg handling (dotnet/coreclr#18358)
* Unify struct arg handling
Eliminate unnecessary struct copies, especially on Linux, and reduce code duplication.
Across all targets, use GT_FIELD_LIST to pass promoted structs on stack, and avoid
requiring a copy and/or marking `lvDoNotEnregister` for those cases.
Unify the specification of multi-reg args:
- numRegs now indicates the actual number of reg args (not the size in pointer-size units)
- regNums contains all the arg register numbers
Commit migrated from https://github.com/dotnet/coreclr/commit/
d28957d9978ab8d2828286eeb99a4a919c462b70
Igor Kulaychuk [Tue, 12 Jun 2018 09:10:25 +0000 (12:10 +0300)]
Fix unwinding of funclet with no epilog on x86/Linux (dotnet/coreclr#17458)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b32b2b795d52bd4bc00fd37efd528ef56b9d7af
Tanner Gooding [Tue, 12 Jun 2018 02:58:34 +0000 (19:58 -0700)]
Adding containment support to more x86 HWIntrinsics (dotnet/coreclr#18349)
* Adding containment support for the Sse42.Crc32 intrinsic
* Adding containment support for the x86 Compare*OrderedScalar and Compare*UnorderedScalar HWIntrinsics
* Adding containment support to several intrinsics that were marked NoContainment
Commit migrated from https://github.com/dotnet/coreclr/commit/
7005f768866f3e0a2e7df3b67884bb5a98c92ef2
Pent Ploompuu [Tue, 12 Jun 2018 01:01:14 +0000 (04:01 +0300)]
Fix Decimal.NearNegativeZero/NearPositiveZero (dotnet/coreclr#18424)
Commit migrated from https://github.com/dotnet/coreclr/commit/
016a06d499ff6c009b53309c098f3e78344fca0c
Dan Moseley [Mon, 11 Jun 2018 21:42:35 +0000 (14:42 -0700)]
Reword invalid program exception message (dotnet/coreclr#18409)
* Reword invalid program exception message
* Reword
* Update msg
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b7d6a0e4f357e86e2092101acbe7b6458ee40af
Sergey Andreenko [Mon, 11 Jun 2018 21:29:17 +0000 (14:29 -0700)]
skip empty regMask in verifyRegistersUsed (dotnet/coreclr#18415)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c556d13b09e8f7c702da04d8ab2ece8ef9b71a6
Stephen Toub [Mon, 11 Jun 2018 19:41:49 +0000 (15:41 -0400)]
Standardize on PLATFORM_WINDOWS instead of PLATFORM_UNIX (dotnet/coreclr#18411)
There are a bunch of uses of PLATFORM_WINDOWS in System.Private.CoreLib, and just a few uses of PLATFORM_UNIX. Standardize on the former, removing all occurrences of the latter.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a07861b639667ce65d196ae1287df6fdb2a82d8b
Tarek Mahmoud Sayed [Mon, 11 Jun 2018 19:23:26 +0000 (12:23 -0700)]
Fix UTF8 encoding fallback index (dotnet/coreclr#18387)
* Fix UTF8 encoding fallback index
When falling back in UTF8 decoding, we’ll call the DecoderFallbackBuffer.InternalFallback method which takes a pointer to the source bytes pointer which point to where we have progressed inside the source bytes. The problem is before calling DecoderFallbackBuffer.InternalFallback we call GetBytesUnknown which can adjust the source byte pointer and DecoderFallbackBuffer.InternalFallback need to be called with the pointer before the adjustment. The fix is simply storing the original pointer value of the source byte pointer before calling GetBytesUnknown and then pass the stored original pointer to DecoderFallbackBuffer.InternalFallback instead of the adjusted source byte pointer
* Fix the comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
d093d9a9c83182f92a84c05af89e4859611d095a
Luqun Lou [Mon, 11 Jun 2018 19:22:50 +0000 (12:22 -0700)]
WinRT attribute Cleanup (dotnet/coreclr#18412)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2bfc551e240198d88d79f5425d783da31872e8f7
Luqun Lou [Mon, 11 Jun 2018 18:29:46 +0000 (11:29 -0700)]
Remove WinRTSynchronizationContextFactoryBase (dotnet/coreclr#18385)
Commit migrated from https://github.com/dotnet/coreclr/commit/
77a0f349aff937a8e16bc6fd1b52117d845e1fae
Jarret Shook [Mon, 11 Jun 2018 18:28:26 +0000 (11:28 -0700)]
(Re)Enable NativeVarargs for CoreCLR (dotnet/coreclr#18373)
* Enable NativeVarargs for CoreCLR
This will allow coreclr run programs which have native varargs.
It also re-enables the ArgIterator type for managed to managed native
vararg calls. This will allow the use of the __arglist keyword.
Limitations:
NYI statements have been added for all Unix Targets.
With this change __arglist (native varargs) will be supported, but not
yet tested on:
Amd64 Windows
x86 Windows
Arm32 Windows
Arm64 Windows
This change does not re-enable native vararg tests. This will be done
in a separate change.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6004705f3e14742e9dcdfce3d8d9caeada83451
Paulo Janotti [Mon, 11 Jun 2018 18:22:12 +0000 (11:22 -0700)]
Adds the CoreLib IL to packages (dotnet/coreclr#18372)
* Adds the CoreLib IL to packages
The purpose of this is to enable code coverage runs to include CoreLib in CI - for that it is necessary to make the IL version available.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8e47b640f17e1baae20d63e2ecc85b56415ec4e9
Chris Sienkiewicz [Mon, 11 Jun 2018 18:12:44 +0000 (11:12 -0700)]
Fix PCODE not having thumb bit set when comparing two addresses (dotnet/coreclr#18247)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ccf7bfc9a2e08178d30e9c1430755dc0ffd9b0a2
Anirudh Agnihotry [Mon, 11 Jun 2018 14:29:58 +0000 (07:29 -0700)]
Removed length restrictions on named synchronization primitives lengths on Windows (dotnet/coreclr#18402)
* Removed Path Length check
* waitHandleNameMax removed
Commit migrated from https://github.com/dotnet/coreclr/commit/
422b0e81797d5428812c6ef825e22565e2dc63f3
William Godbe [Sun, 10 Jun 2018 01:11:09 +0000 (18:11 -0700)]
Update Buildtools (dotnet/coreclr#18380)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7e215941c8d6a68fa52f98bb8fd2a419d8a1ef5d
Jan Kotas [Sat, 9 Jun 2018 20:39:58 +0000 (13:39 -0700)]
Avoid NativeOverlapped pinning by allocating unmanaged memory for it (dotnet/coreclr#18360)
It makes PinnableBufferCache unnecessary
Commit migrated from https://github.com/dotnet/coreclr/commit/
911d332c523848023e3c6564788b72b7f419fca1
Stephen Toub [Sat, 9 Jun 2018 20:34:46 +0000 (16:34 -0400)]
Use nameof of Encoding classes (dotnet/coreclr#18395)
Commit migrated from https://github.com/dotnet/coreclr/commit/
618f9c2d18e88566ac61f93529bac58123c50cba
Bruce Forstall [Sat, 9 Jun 2018 19:12:37 +0000 (12:12 -0700)]
Merge pull request dotnet/coreclr#18394 from BruceForstall/Fix10115
Re-enable tests for Windows arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
49fee7068c07c7eea2fa558a1fbcd7128a0e37fa
Bruce Forstall [Sat, 9 Jun 2018 06:08:54 +0000 (23:08 -0700)]
Merge pull request dotnet/coreclr#18363 from sdmaclea/PR-waitany-debug
Waitany test debug and cleanup
Commit migrated from https://github.com/dotnet/coreclr/commit/
e3a43269167dd7c5ec5b4e74458d6d5f045d3ced
Maryam Ariyan [Thu, 7 Jun 2018 21:24:29 +0000 (14:24 -0700)]
Some extra changes needed in shared
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
b5a5982eae7ea78b4bb5cc1c30637df412f82a0f
Eric Erhardt [Sat, 9 Jun 2018 03:09:04 +0000 (22:09 -0500)]
Remove Substring in TimeZoneInfo parsing (dotnet/coreclr#18378)
* Remove Substring in TimeZoneInfo parsing
Convert Substring to Slice to eliminate string allocations while parsing Posix daylight savings rules.
Commit migrated from https://github.com/dotnet/coreclr/commit/
91bd5a6a36be3949b879793cfca914e666d89845
Stephen Toub [Sat, 9 Jun 2018 02:53:52 +0000 (22:53 -0400)]
Use cached strings for values 0 to 9 (dotnet/coreclr#18383)
When doing ToString on single-digit integers, just return a cached string. This helps avoid string allocation/formatting costs for this very common case, while only costing one comparison for other cases.
Commit migrated from https://github.com/dotnet/coreclr/commit/
12f8a27b139777e8cee7ae924c0b71f5844f96f8
Stephen Toub [Sat, 9 Jun 2018 02:41:27 +0000 (22:41 -0400)]
Remove ConcurrentDictionary from CoreLib (dotnet/coreclr#18308)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b4617616dfc57d993f49e015cae45240f82f163b
Bruce Forstall [Sat, 9 Jun 2018 01:39:02 +0000 (18:39 -0700)]
Re-enable tests for Windows arm64
These tests don't fail anymore. Re-enable them.
Fixes dotnet/coreclr#10115
Commit migrated from https://github.com/dotnet/coreclr/commit/
67f1beabbdefe31254da090c1fa7f029b01441a4
Bruce Forstall [Sat, 9 Jun 2018 01:23:57 +0000 (18:23 -0700)]
Merge pull request dotnet/coreclr#18382 from BruceForstall/MakeArmGcStress3Clean
Disable 3 tests incompatible with GCStress=3
Commit migrated from https://github.com/dotnet/coreclr/commit/
850af7feda39f9653c0f2951d5027765d4a417f3
Brian Robbins [Sat, 9 Jun 2018 00:44:11 +0000 (17:44 -0700)]
Fix EventPipe EventHandle Caching for TraceLogging (dotnet/coreclr#18355)
Commit migrated from https://github.com/dotnet/coreclr/commit/
80f546fbd6161163a3383eb9574d653a768c3278
Russ Keldorph [Fri, 8 Jun 2018 17:58:18 +0000 (10:58 -0700)]
Fix coredistools download script now that Packages layout has changed
Fixes dotnet/coreclr#18321
Commit migrated from https://github.com/dotnet/coreclr/commit/
d2e2299a9ea141eaffc0f2c1bee0479e052dd7c7
Anirudh Agnihotry [Fri, 8 Jun 2018 21:51:10 +0000 (14:51 -0700)]
Moved Mutex.cs From src to shared (dotnet/coreclr#18320)
* Moved Mutex.cs to shared
* Reduced #ifdef in mutex.cs
* Moved windows specific Implementation and renamed mincore to kernal32
* safeWaitHandle changed to _waitHandle
* moved using statement out of buffer namespace
Commit migrated from https://github.com/dotnet/coreclr/commit/
65fc6e978fc21a05878b59ffc016613d9e34bcf6
Luqun Lou [Fri, 8 Jun 2018 21:41:24 +0000 (14:41 -0700)]
Expose public implementation AsyncCausalitySupport to S.R.WindowsRuntime (dotnet/coreclr#18376)
Commit migrated from https://github.com/dotnet/coreclr/commit/
960360f0f5cb0476172d29dcd8074dcc2833e8fa
Bruce Forstall [Fri, 8 Jun 2018 21:27:18 +0000 (14:27 -0700)]
Merge pull request dotnet/coreclr#18287 from sdmaclea/TryClearGCStressInstructionUpdate
Use atomic ops in CommitGCStressInstructionUpdate()
Commit migrated from https://github.com/dotnet/coreclr/commit/
22b18c598e93d85d012ac2d39f248acd09fec941
Bruce Forstall [Fri, 8 Jun 2018 20:50:16 +0000 (13:50 -0700)]
Disable 3 tests incompatible with GCStress=3
The following fail in CI with arm Windows GCStress=3, and are now marked
`GCStressIncompatible`.
1. GC\Coverage\smalloom\smalloom.cmd
2. Issue dotnet/coreclr#17480: tracing\tracevalidation\rundown\rundown\rundown.cmd, tracing\tracevalidation\jittingstarted\JittingStarted\JittingStarted.cmd
Commit migrated from https://github.com/dotnet/coreclr/commit/
a78688c7f915ee1539d7fbd2e73ecf6a6e29b0c7
Steve MacLean [Fri, 8 Jun 2018 19:46:31 +0000 (15:46 -0400)]
Fix threading gcStress fails
Mark GCStressIncompatible ond/or fix synchronization logic
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f64eb33fdec9ec6c5b5ae9cc212c13a5d1f375c
Amy [Fri, 8 Jun 2018 19:14:11 +0000 (12:14 -0700)]
Merge pull request dotnet/coreclr#18326 from acmyu/gc
R2RDump - GcInfo and slot table
Commit migrated from https://github.com/dotnet/coreclr/commit/
aabca8cdd994149eaadf41997b48faede9fa2de9
Sergey Andreenko [Fri, 8 Jun 2018 17:30:43 +0000 (10:30 -0700)]
Workaround for compiler.hpp (1848) - Assertion failed 'lvRefCnt' (dotnet/coreclr#18292)
* add test
* clean fgRemoveStmt a bit
* fix the issue (more like a workaround).
Commit migrated from https://github.com/dotnet/coreclr/commit/
16169a8738ab7332a0fc2f2e48937997932798ef
Egor Chesakov [Fri, 8 Jun 2018 16:32:32 +0000 (09:32 -0700)]
Disable failing CoreFx tests on Windows/arm and Linux/arm (dotnet/coreclr#18347)
* System.Dynamic.Runtime.Tests on Windows/arm and Linux/arm
* System.Linq.Expressions.Tests on Windows/arm (JitStress=2)
* System.Runtime.Numerics.Tests on Windows/arm (JitStress=1/JitStress=2)
Commit migrated from https://github.com/dotnet/coreclr/commit/
443597ff871c06354894a4efa8cd87cb870ceff0
Andy Ayers [Fri, 8 Jun 2018 06:16:56 +0000 (23:16 -0700)]
JIT: Fix bug in finally cloning caused by unsound callfinally reordering (dotnet/coreclr#18348)
We need to make sure that if we reorder a callfinally during finally cloning
that the callfinally is actually the one being targeted by the last block in
the try range.
Closes dotnet/coreclr#18332. Linked issue has some more detailed notes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
311322beb96c5475fd7030fcd2f6e7ff14918853
Pent Ploompuu [Fri, 8 Jun 2018 00:47:44 +0000 (03:47 +0300)]
Fixed and optimized Decimal.GetHashCode (dotnet/coreclr#18288)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b2040c880733c3d7735f9c9533e5a66fde8e13c
Brian Robbins [Thu, 7 Jun 2018 20:44:49 +0000 (13:44 -0700)]
Add missing #ifdef.
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
58998ff388c0f2c0e166ea47af94151fcf31ccbc
Aaron Robinson [Fri, 8 Jun 2018 00:23:08 +0000 (17:23 -0700)]
Interop Copy tests now all return 101 during fail rather than crash (dotnet/coreclr#18310)
* Interop Copy tests now all return 101 during fail rather than crash
* Remove unused Assert APIs
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4834d1b76eeff3025bd16f2d455e686ddeffb36
Bruce Forstall [Fri, 8 Jun 2018 00:03:30 +0000 (17:03 -0700)]
Merge pull request dotnet/coreclr#18354 from sdmaclea/PR-eventsourcetrace
Mark eventsourcetrace GCStressIncompatible
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f9a49bdb347528971b8e90b944cc475855ff805
Bruce Forstall [Thu, 7 Jun 2018 23:58:03 +0000 (16:58 -0700)]
Merge pull request dotnet/coreclr#18340 from mikedn/ins-desc
Increase instrDesc::_idIns width on XARCH
Commit migrated from https://github.com/dotnet/coreclr/commit/
e160fa0654165d2d6f4645e5a710ed6bb86e10fb
Carol Eidt [Thu, 7 Jun 2018 23:53:45 +0000 (16:53 -0700)]
Merge pull request dotnet/coreclr#18356 from CarolEidt/Fix_GT_START_NONGC
GT_START_NONGC has no kill set
Commit migrated from https://github.com/dotnet/coreclr/commit/
97c7d5af7a1cc3e0edba7cc7d0cf19d17e24c2b3
Amy Yu [Thu, 7 Jun 2018 23:38:10 +0000 (16:38 -0700)]
GcInfo belongs to method, not runtime function
Commit migrated from https://github.com/dotnet/coreclr/commit/
411399eb923190fe9080ed7dee7674329d0cd19d
Steve MacLean [Thu, 7 Jun 2018 22:59:31 +0000 (18:59 -0400)]
Waitany test debug and cleanup
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ed35ca1a13b8e810a69374d4f4cca1518058d69
Krzysztof Wicher [Thu, 7 Jun 2018 22:55:54 +0000 (15:55 -0700)]
Skip old time zones adjustments with offsets higher than 14h (dotnet/coreclr#18305)
* Skip old time zones with offsets higher than 14h
* apply offline feedback
* fix braces
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba12331656a1f80ef11acf53c24d18d3e5c66a9d
Carol Eidt [Thu, 7 Jun 2018 20:58:22 +0000 (13:58 -0700)]
GT_START_NONGC has no kill set
It was mistakenly added to the `GT_PROF_HOOK` case in the recent LSRA changes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b26c46411a2e8f55a4c2e695fd337f7df7d8e813
Steve MacLean [Thu, 7 Jun 2018 20:31:10 +0000 (16:31 -0400)]
Mark eventsourcetrace GCStressIncompatible
Commit migrated from https://github.com/dotnet/coreclr/commit/
c37ba42f8c23f4c8512884456cfb692c5b10fad8
Noah Falk [Thu, 7 Jun 2018 19:53:08 +0000 (12:53 -0700)]
Allow ILCodeVersion to fallback to default IL (dotnet/coreclr#18322)
For compat with profilers that used our APIs in unexpected ways we can allow
the ILCodeVersion to fallback to the default IL code when no IL was explicitly
given.
Commit migrated from https://github.com/dotnet/coreclr/commit/
435a69a9aca037f348a09e00dffef8a0888682a7
Maryam Ariyan [Thu, 7 Jun 2018 19:40:40 +0000 (12:40 -0700)]
Moves CurrentSystemTimeZone, ICastable, RegistryView and RegistryValueKind to shared (dotnet/coreclr#18337)
* Moves CurrentSystemTimeZone to shared completely
* Moves ICastable to shared
* Moves RegistryView and RegistryValueKind to shared
* Moves ICastableHelpers to its own file
Commit migrated from https://github.com/dotnet/coreclr/commit/
56fe6435387089b6b219c52096cafd3c277478c6
Tarek Mahmoud Sayed [Thu, 7 Jun 2018 18:01:26 +0000 (11:01 -0700)]
Force short date pattern to use yyyy on Linux (dotnet/coreclr#18316)
* Force short date pattern to use yyyy on Linux
The default pattern we get is using yy which causes the years to be displayed as 2 digits. This is not acceptable for many users. The fix here is to force 4-digit year as a default and still keep the original pattern which has 2-digits year in the optional list
* Address the review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
a51328304a95a1a5e0eb037883176dff248dc687
Stephen Toub [Thu, 7 Jun 2018 17:24:11 +0000 (13:24 -0400)]
Remove dead case from string.Compare (dotnet/coreclr#18345)
Commit migrated from https://github.com/dotnet/coreclr/commit/
33910ce097e4812d17edad61c88c9c348ed80fa8
Marek Safar [Thu, 7 Jun 2018 17:07:47 +0000 (10:07 -0700)]
Guard Windows code under PLATFORM_WINDOWS (dotnet/coreclr#18344)
Commit migrated from https://github.com/dotnet/coreclr/commit/
21c0aeb5e84cfb55c98fb447fbecb0d8c4f1ea22
Steve MacLean [Mon, 4 Jun 2018 17:55:34 +0000 (13:55 -0400)]
Use atomic ops in CommitGCStressInstructionUpdate()
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ba148b12b2d6c4ac8de448dfd0aafd97583d01c
Mike Danes [Thu, 7 Jun 2018 15:17:04 +0000 (18:17 +0300)]
Increase instrDesc::_idIns width on XARCH
XARCH exceeded the 512 instruction limit but it still has room for instruction formats (only 77 at the moment) so a bit was taken from _idInsFmt.
Also, cleaned up some tiny while instrDesc traces while trying to fix "Space taken up to here:" kind of comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
45686eb36289b5d45c4c99b0dfce4783b751a2d1
Alfred Myers [Thu, 7 Jun 2018 07:06:45 +0000 (04:06 -0300)]
Fixed a couple of comments about ArgumentException on timeout parameters (dotnet/coreclr#18335)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4e09d1898a8eb172e5c286102ef9d1269b38666
Stephen Toub [Thu, 7 Jun 2018 07:06:09 +0000 (03:06 -0400)]
Remove a dead branch from __DTString (dotnet/coreclr#18334)
All call sites to the ctor validate that the DateTimeFormatInfo has been created.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d8381936784f7819af9c19368cf18a97ca4ed191
Stephen Toub [Thu, 7 Jun 2018 07:04:30 +0000 (03:04 -0400)]
Delete FormatterConverter from CoreLib (dotnet/coreclr#18336)
It's not used in the library. The type is implemented/exposed from corefx.
Commit migrated from https://github.com/dotnet/coreclr/commit/
16a8fb3a707014ddebfb5ef34f1c7750f643f1c2
Egor Chesakov [Thu, 7 Jun 2018 06:49:48 +0000 (23:49 -0700)]
Cross-bitness support in JitInterface (dotnet/coreclr#18329)
* Replace sizeof(tailCallType) / sizeof(tailCallType[0]) with _countof(tailCallType)
* Remove TransparentProxyObject and RealProxyObject
* InlinedCallFrame::GetEEInfo should not be used for R2R compilation
* Hardcode constants used in CEEInfo::getEEInfo
* Thread fields should not be used for R2R compilation
* Zero pEEInfoOut->inlinedCallFrameInfo when compiling R2R code
* Rename OFFSETOF__PtrArray__m_Array to avoid compilation conflicts with asmconstants
* Add assertions enabled in every non-crossbitness scenario
* Define and use CROSSBITNESS_COMPILE macro
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef5b997e4649599e6ed678bba451a08a68c9ae04
mikedn [Thu, 7 Jun 2018 05:18:59 +0000 (08:18 +0300)]
Fix ARM cast codegen (dotnet/coreclr#18063)
* Fix ARM cast codegen
ARM cast codegen is rather convoluted and sometimes does the wrong thing by applying GTF_UNSIGNED to the destination type even though this flag is only about the source type.
* Add more conversion tests
These tests are intended to support casts with contained operands. They're also useful to catch issues caused by load nodes having small types and generally improve test coverage for casts.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4cdb8103d1d3dbc68577f22c73b1d8112e9706bc
Tanner Gooding [Thu, 7 Jun 2018 01:24:04 +0000 (18:24 -0700)]
Adding containment support for more x86 hardware intrinsics (dotnet/coreclr#18297)
* Adding containment support to one-operand scalar HWIntrinsics (x86)
* Adding containment support to two-operand imm HWIntrinsics (x86)
* Adding containment support to three-operand imm HWIntrinsics (x86)
* Updating hwintrinsiccodegenxarch to properly mask Sse41.Insert for TYP_FLOAT
* Updating the Sse41.Insert tests for TYP_FLOAT
* Adding containment support for Sse2.CompareLessThan and BlendVariable (Sse41/Avx/Avx2)
* Fixing `genHWIntrinsic_R_RM_I` to call `emitIns_SIMD_R_R_I`, rather than `emitIns_R_R_I`
* Updating emitOutputSV to not modify the code for IF_RWR_RRD_SRD_CNS
* Cleaning up some of the emitxarch code.
* Moving roundps and roundpd into the IsDstSrcImm check
Commit migrated from https://github.com/dotnet/coreclr/commit/
f7993ddfc19ccce311df69b32f675bd076935e7f
Amy Yu [Wed, 6 Jun 2018 23:57:33 +0000 (16:57 -0700)]
Refactoring gcInfo, added verbose option to cli
Commit migrated from https://github.com/dotnet/coreclr/commit/
df13a8e76ab279271607b38ed317ae290cc419bb
Amy Yu [Wed, 6 Jun 2018 22:05:46 +0000 (15:05 -0700)]
Fix error cause by merge
Commit migrated from https://github.com/dotnet/coreclr/commit/
c366fb2ada7a040c0e249277b18dae5481dfe940
Amy Yu [Wed, 6 Jun 2018 21:42:16 +0000 (14:42 -0700)]
Fix unwindInfo bug caused by missing alignmentPad, dump raw byes of unwindInfo and gcInfo
Commit migrated from https://github.com/dotnet/coreclr/commit/
cc49fa3d7402ab063fbb0ee3bc7c55238de448d6
Amy Yu [Wed, 6 Jun 2018 17:56:06 +0000 (10:56 -0700)]
Use single variable for multiple tabs
Commit migrated from https://github.com/dotnet/coreclr/commit/
e998b75407b2429715b8d34a3040b1700e939605
Amy Yu [Wed, 6 Jun 2018 17:38:57 +0000 (10:38 -0700)]
Read slot table, dump GcInfo
Commit migrated from https://github.com/dotnet/coreclr/commit/
fe757e679cc46abe0f67853eb2c42dd0c78035a6
Amy Yu [Tue, 5 Jun 2018 19:11:11 +0000 (12:11 -0700)]
Extract other fields from gcinfo
Commit migrated from https://github.com/dotnet/coreclr/commit/
22946565f3d32ac473cd054f549bcd19e9f32d90
Amy Yu [Mon, 4 Jun 2018 23:01:13 +0000 (16:01 -0700)]
Extract gcinfo header, return kind and code length. Use code length as size of the runtime function
Commit migrated from https://github.com/dotnet/coreclr/commit/
d9abe643288fa61ff19ec88c3e578c0632863b6c
Amy Yu [Sat, 2 Jun 2018 00:04:48 +0000 (17:04 -0700)]
Extract gcinfo from image
Commit migrated from https://github.com/dotnet/coreclr/commit/
ca03baab899ed3ece5fe308818cb97b8347b155f
Amy Yu [Mon, 4 Jun 2018 23:59:42 +0000 (16:59 -0700)]
Avoid passing R2RReader to R2RMethod and RuntimeFunction constructors
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c510164529851398b69a3b8bc3b7a7d4038830c
Amy Yu [Mon, 4 Jun 2018 20:49:13 +0000 (13:49 -0700)]
Use typeDef.Namespace to get full namespace, move to separate function
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6836fb9b7fe890df52c6ffb1a31ccef57fbea03
Amy [Wed, 6 Jun 2018 21:19:56 +0000 (14:19 -0700)]
R2RDump - Unwind Info (dotnet/coreclr#18248)
* Extract unwind info from image
* Use typeDef.Namespace to get full namespace, move to separate function
* Avoid passing R2RReader to R2RMethod and RuntimeFunction constructors
* Dump unwind info
* Changes to unwindInfo output format
Commit migrated from https://github.com/dotnet/coreclr/commit/
dce3234ecd057e7332140e137e23b0fe2aca9919
Jan Vorlicek [Wed, 6 Jun 2018 20:39:47 +0000 (22:39 +0200)]
Fix issue in Compiler::impImportStaticFieldAccess (dotnet/coreclr#18328)
When CORINFO_FIELD_STATIC_SHARED_STATIC_HELPER accessor is being processed for
structs, the method creates a GT_IND node instead of GT_OBJ node. For structs
that can be normalized to a specific type (like TYP_SIMD8), it causes an assert
in Compiler::impNormStructVal in the switch case for GT_IND.
This change modifies the node creation to work the same way as in the default
case for accessors, creating GT_OBJ for structs and GT_IND otherwise.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef8aebcb28e6b3e79ed95e95e6cdcf770e791238
Andy Ayers [Wed, 6 Jun 2018 19:37:09 +0000 (12:37 -0700)]
JIT: implement assembly name dissassembly filtering (dotnet/coreclr#18306)
Add `COMPlus_JitDisasmAssemblies` to specify a whitelist of assemblies
whose methods will be disassembled (also filters out order, EH, GC, and
unwind info dumps too).
Intended use is for PMI asm diffing. Since PMI runs in process, current
disassembly will dissassemble various methods in PMI itself as well
as framework methods that did not get prejitted.
With this new config option we can restrict disassembly to just the assemblies
that we're processing via PMI.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ec905298e9fa3bdc5500f7f25f65de49d3ede16
Maryam Ariyan [Wed, 6 Jun 2018 17:15:19 +0000 (10:15 -0700)]
Moves FastResourceComparer and TaskAwaiter to shared (dotnet/coreclr#18283)
* Reduces diff in BinaryReader
* Moves FastResourceComparer to shared
* Reduces diff in FileBasedResourceGroveler
* Minor comment diff in ManifestBasedResourceGroveler
* Reducing diff by removing extra blank lines in ResourceReader
* Reduces diff by renaming private fields in AssemblyName
* String to string and Object to object in AssemblyName
* Reduces diff in TaskAwaiter
* Moves TaskAwaiter to shared
* Apply code review feedback
* Fixes failure in corert
* Revert Renaming fields in AssemblyName
Commit migrated from https://github.com/dotnet/coreclr/commit/
39da0af098b86b55e44bd1e42fefb2b2b6a8ab67
Koundinya Veluri [Wed, 6 Jun 2018 17:09:29 +0000 (10:09 -0700)]
Increase timeout and log the result for some WaitAny tests that expect AbandonedMutexException (dotnet/coreclr#18312)
Follow-up to https://github.com/dotnet/coreclr/pull/13298, missed a few cases.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d12a99d4c4fc789ec40ab492e6625a9898fb711a
Noah Falk [Wed, 6 Jun 2018 03:40:12 +0000 (20:40 -0700)]
Add instructions for making idl file changes (dotnet/coreclr#18188)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff363a5bf4cfe4f749c4e4250531405eba86739a
Brian Sullivan [Wed, 6 Jun 2018 00:58:21 +0000 (17:58 -0700)]
Merge pull request dotnet/coreclr#18313 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
27ece206df495507544700fcf97e27deb6d66f66
Carol Eidt [Wed, 6 Jun 2018 00:31:31 +0000 (17:31 -0700)]
Merge pull request dotnet/coreclr#18303 from mikedn/lockadd4
Use the actual type of LOCKADD's data operand
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6a86921b65aadbc6154716c21a5fafd6c54175e
Brian Sullivan [Tue, 5 Jun 2018 22:11:08 +0000 (15:11 -0700)]
Fix a warning as error issue that causes a build break on the Desktop CLR
[tfs-changeset: 1702868]
Commit migrated from https://github.com/dotnet/coreclr/commit/
6407a2b7ddc6707130fab0a3af8389128e89a5e7
Egor Chesakov [Tue, 5 Jun 2018 18:38:56 +0000 (11:38 -0700)]
Use sysconf(_SC_NPROCESSORS_CONF) instead of sysconf(_SC_NPROCESSORS_ONLN) in PAL and GC ONLY on ARM and ARM64 (dotnet/coreclr#18289)
Commit migrated from https://github.com/dotnet/coreclr/commit/
79aadb8c6455e30065cbd817e3ec5b52d17f3dce
Mike Danes [Tue, 5 Jun 2018 16:29:22 +0000 (19:29 +0300)]
Use the actual type of LOCKADD's data operand
The data operand can theoretically be a small int so we need to use its actual type to determine instruction size.
In practice this issue does not seem to happen as the importer is pretty insistent in spilling interlocked arguments to lclvars that have the proper type. Even when the data argument is already a small int lclvar (e.g. short method argument) this still doesn't cause problems because there's a cast between the method argument and LOCKADD.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d4b0e61396a5f80d65555f7fd422a72b9762136c
Andy Ayers [Tue, 5 Jun 2018 14:52:35 +0000 (07:52 -0700)]
Update SDK used to build jitutils to 2.1 RC (dotnet/coreclr#18290)
In anticipation of taking a dependence on netcoreapp2.1 for the
forthcoming PMI work from jitutils.
Also make sure to shut down build servers before cleaning up the SDK.
Commit migrated from https://github.com/dotnet/coreclr/commit/
73369eb914dc7df2118727a36f23e8c5e5d119f5
Luqun Lou [Tue, 5 Jun 2018 13:40:34 +0000 (06:40 -0700)]
Use WChar instead of char (dotnet/coreclr#18294)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a81eea23a750425fad3c9593fcf6ec23aa0542fd
Andy Ayers [Mon, 4 Jun 2018 23:02:01 +0000 (16:02 -0700)]
JIT: tolerate byref/nint return type mismatches during inlining (dotnet/coreclr#18274)
Have the jit tolerate byref/nint return type mismatches for inlines
same way that it tolerates them for ret instructions.
Fixes dotnet/coreclr#18270.
Commit migrated from https://github.com/dotnet/coreclr/commit/
67f07aac0874294ee5c038fbc4b30736bbd1d8f3
Tanner Gooding [Sun, 3 Jun 2018 03:53:03 +0000 (20:53 -0700)]
Adding function headers to the 'emitIns_SIMD_*' methods and clarifying comments on related code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8214eaec8572966f24123d31ee8fc309ca570ac
Tanner Gooding [Sun, 3 Jun 2018 03:41:06 +0000 (20:41 -0700)]
Updating the x86 HWIntrinsics to support containment for most one-operand intrinsics.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b69128007a783429ae9113a9033fe48eba5570bc
Tanner Gooding [Sun, 3 Jun 2018 01:55:51 +0000 (18:55 -0700)]
Fixing up ContainCheckHWIntrinsic to use intrinsicId and to switch on the category for 1/3 arg intrinsics
Commit migrated from https://github.com/dotnet/coreclr/commit/
cdc42699de04995b5d1f3eedf20bf5ca6fc33267
Tanner Gooding [Sun, 3 Jun 2018 01:53:20 +0000 (18:53 -0700)]
Fixing the name of the paramters in the emitIns_SIMD_* methods.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c282f495e088788a5e8284eeb5b51db365e96551
Carol Eidt [Mon, 4 Jun 2018 21:57:09 +0000 (14:57 -0700)]
Merge pull request dotnet/coreclr#18267 from mikedn/lockadd3
Cleanup LOCKADD handling
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8661fec6458a0ab97acef007ae5222f580a58f1
Jan Kotas [Mon, 4 Jun 2018 20:09:29 +0000 (13:09 -0700)]
Make Encoding.Unicode.GetString faster on 64-bit platforms (dotnet/coreclr#18263)
UnicodeEncoding was taking fast path only when both source and destination were 8-byte aligned. It was not
the case for Unicode.GetString.
The fix is to just check the source alignment as fast path precondition, and use unaligned write for destination.
Also removed alternative fast path that is not needed anymore, tweaked local variable assignments for better
register allocation, and fixed performance issue introduced by recent big endian portability fix.
Commit migrated from https://github.com/dotnet/coreclr/commit/
27cd821920a69ea6456284654e8d2b5c24de6b15
Amy [Mon, 4 Jun 2018 18:40:58 +0000 (11:40 -0700)]
R2RDump - Dump AvailableTypes section contents (dotnet/coreclr#18227)
* Move R2RReader constructor to separate functions, parse READYTORUN_SECTION_AVAILABLE_TYPES
* Fix bug from merging, output formatting changes
* Rename availableTypes variables, save availableTypes as string instead of tuple
Commit migrated from https://github.com/dotnet/coreclr/commit/
613358db8c36ec5d564f2772de2d083c0f701754
Mike Danes [Sun, 3 Jun 2018 21:50:17 +0000 (00:50 +0300)]
Cleanup LOCKADD handling
LOCKADD nodes are generated rather early and there's no reason for that:
* The CORINFO_INTRINSIC_InterlockedAdd32/64 intrinsics are not actually used. Even if they would be used we can still import them as XADD nodes and rely on lowering to generate LOCKADD when needed.
* gtExtractSideEffList transforms XADD into LOCKADD but this can be done in lowering. LOCKADD is an XARCH specific optimization after all.
Additionally:
* Avoid the need for special handling in LSRA by making GT_LOCKADD a "no value" oper.
* Split LOCKADD codegen from XADD/XCHG codegen, attempting to use the same code for all 3 just makes things more complex.
* The address is always in a register so there's no real need to create an indir node on the fly, the relevant emitter functions can be called directly.
The last point above is actually a CQ issue - we always generate `add [reg], imm`, more complex address modes are not used. Unfortunately this problem starts early, when the importer spills the address to a local variable. If that ever gets fixed then we'll could probably generate a contained LEA in lowering.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9adb98520dbfd0e7790e232bd042799557b2c719
Alfred Myers [Mon, 4 Jun 2018 18:01:50 +0000 (15:01 -0300)]
Fixed a couple of comments on TimeSpan.SecondsPerTick and Thread.SleepInternal (dotnet/coreclr#18276)
* Fixed comment for TimeSpan.SecondsPerTick
* Fixed comment on Thread.SleepInternal
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4dc1cbf345b3eeb846cf7eeeffe6519f569ddff
Benjamin Hodgson [Mon, 19 Feb 2018 14:20:05 +0000 (14:20 +0000)]
Optimise HtmlEncode to produce less garbage
do the same optimisation for HtmlDecode
remove now-unneeded reference
Add tests for new ValueStringBuilder methods
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
29e58641048330e3ec577f731b5ece54fd3ff43f
Brian Robbins [Mon, 4 Jun 2018 17:26:53 +0000 (10:26 -0700)]
Flow EventSources to EventPipe on Windows (dotnet/coreclr#18217)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6238c4fffd9c47c8b917af611c6609ef160d7bf8
Egor Chesakov [Mon, 4 Jun 2018 17:08:22 +0000 (10:08 -0700)]
Work in VM towards cross-bitness crossgen (dotnet/coreclr#18245)
* Replace sizeof expressions with target-specific constants:
* sizeof(ObjHeader) -> OBJHEADER_SIZE
* sizeof(Object) -> OBJECT_SIZE
* ObjSizeOf(Object) -> OBJECT_BASESIZE
* sizeof(ArrayBase) -> ARRAYBASE_SIZE
* ObjSizeOf(ArrayBase) -> ARRAYBASE_BASESIZE
* Remove ObjSizeOf macro
* Use OBJECT_SIZE in ArrayBase::GetBoundsOffset
* Cast ppObj to CORCOMPILE_GCREFMAP_TOKENS* before dereferencing in FakePromote
* LOG2_PTRSIZE should depend on _TARGET_64BIT_
Commit migrated from https://github.com/dotnet/coreclr/commit/
de586767f51432e5d89f6fcffee07c488fdeeb7b
Andrey Kurdyumov [Mon, 4 Jun 2018 16:24:37 +0000 (22:24 +0600)]
Fix error during compilation with /permissive- (dotnet/coreclr#18272)
Commit migrated from https://github.com/dotnet/coreclr/commit/
da0a05431913dd5e3d65c5d3c74d7f12cf3f9ebb
Michelle McDaniel [Mon, 4 Jun 2018 16:06:09 +0000 (09:06 -0700)]
Be more aggressive with Partial NGen (dotnet/coreclr#18240)
* Be more aggressive with partial ngen
In partial ngen, we only compile those methods that both have profile
data and have the ReadMethodCode flag set in the profile flags. That
means that we miss some functions that do have counts, which affects the
performance of assemblies crossgened with partial ngen. This change
makes partial ngen more aggressive by, in the cold path, first checking
to see if we already considered this method in the hot section, which
means that it has profile data, and only rejecting those methods that
were not already considered.
Commit migrated from https://github.com/dotnet/coreclr/commit/
102ddee1c67ec45dfee101c0b57285b83dbe68ef
Carol Eidt [Mon, 4 Jun 2018 15:27:39 +0000 (08:27 -0700)]
Merge pull request dotnet/coreclr#18264 from luqunl/18192
Set GTF_RELOP_QMARK in gtNewQmarkNode
Commit migrated from https://github.com/dotnet/coreclr/commit/
a063e470985e007ddbe90e2d2ed035c96cfe283c