Rama krishnan Raghupathy [Tue, 25 Oct 2016 22:36:23 +0000 (15:36 -0700)]
Merge pull request dotnet/coreclr#7751 from ramarag/MemFailPoint
Making MemoryFailPoint functional on xplat
Commit migrated from https://github.com/dotnet/coreclr/commit/
5fd9f5bc1ee7ae53651ef97db9f85fd468c4b1c9
Bruce Forstall [Tue, 25 Oct 2016 22:03:15 +0000 (15:03 -0700)]
Merge pull request dotnet/coreclr#7800 from BruceForstall/ChangeJITGuid
Change JIT-EE interface GUID
Commit migrated from https://github.com/dotnet/coreclr/commit/
5672210ce21ec07711151822a2f2d4e9eed0bebd
Rama Krishnan Raghupathy [Fri, 7 Oct 2016 23:55:19 +0000 (16:55 -0700)]
Making MemoryFailPoint functional on xplat
Expose GlobalMemoryStatusEx on Xplat
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2ac449d96ae21abf5b458645ff79ed328fe4ebc
Rahul Kumar [Tue, 25 Oct 2016 21:43:04 +0000 (14:43 -0700)]
Merge pull request dotnet/coreclr#7786 from rahku/_appdomain
Add implementation of AppDomain.GetAssemblies
Commit migrated from https://github.com/dotnet/coreclr/commit/
e90db7bdfde00932d04188aa9eb105442a3fa294
Rahul Kumar [Mon, 24 Oct 2016 21:46:40 +0000 (14:46 -0700)]
Add implementation of AppDomain.GetAssemblies
Commit migrated from https://github.com/dotnet/coreclr/commit/
3556e1210f50975515ceec5abe306cb805587b51
Michelle McDaniel [Tue, 25 Oct 2016 19:24:21 +0000 (12:24 -0700)]
Merge pull request dotnet/coreclr#7799 from adiaaida/fixRotateFlagCheck
Fix flag check when morphing into rotate
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f351fab54563573b14a96a52290f6fa77face53
Andy Ayers [Tue, 25 Oct 2016 18:57:54 +0000 (11:57 -0700)]
Merge pull request dotnet/coreclr#7798 from AndyAyersMS/FixObservationImpact
Inliner: fix RARE_GC_STRUCT observation impact
Commit migrated from https://github.com/dotnet/coreclr/commit/
3638d5cc8c9df1f37560a237c2897bcf60a99763
Bruce Forstall [Tue, 25 Oct 2016 18:39:54 +0000 (11:39 -0700)]
Change JIT-EE interface GUID
This should have been changed with dotnet/coreclr#7672. However, changing it now
will help prevent unexpected bad interactions with SuperPMI and other
tools that expect the old interface.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c949346dd2ce4dd02f844b6eed8fd7fab9f58186
Michelle McDaniel [Tue, 25 Oct 2016 17:09:06 +0000 (10:09 -0700)]
Fix flag check when morphing into rotate
When we morphed a tree into a rotate, we assumed that the parent's flags
would be the same as its operands' flags, when in actuality, the parent's
flags should be a superset of its operands' flags. This change fixes the
flag check.
Fixes VSO 278374.
Commit migrated from https://github.com/dotnet/coreclr/commit/
650358779c1d0f3cca92bf599aaf249773a9b554
Dmitry-Me [Tue, 25 Oct 2016 17:02:55 +0000 (20:02 +0300)]
Check index before access (dotnet/coreclr#7795)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e9e1eb2666d4f79d8d02168375219426460c2bae
Ivan Baravy [Tue, 25 Oct 2016 16:32:15 +0000 (20:32 +0400)]
Add more lldbplugin/libsosplugin tests (dotnet/coreclr#5606)
* Add more libsosplugin tests, update framework
+ Introduce test.assert* functions in testutils.py
+ Print test results as a table with failed assertions highlighted
+ PEP8!
* Add more lldbplugin/libsosplugin tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
f6b0056c819b07ae053d3112299ade0990144d00
Andy Ayers [Tue, 25 Oct 2016 16:31:47 +0000 (09:31 -0700)]
Inliner: fix RARE_GC_STRUCT observation impact
Closes dotnet/coreclr#7792.
Since this observation isn't always fatal, change its impact to INFORMATION.
Also, refresh the assertion checking around fatal observations so that the
EnhancedLegacyPolicy (which is the current default) will catch this kind of
error going forward.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ee0344e285c1c9727e35e16ff2502a8e4937a96e
Jan Kotas [Tue, 25 Oct 2016 16:02:38 +0000 (09:02 -0700)]
Do not materialize CAS PseudoCustomAttribute (dotnet/coreclr#7794)
Do not materialize CAS permissionsets as custom attributes in reflection. We are just providing the CAS types in corefx to make things compile, but nothing else.
Fix https://github.com/dotnet/corefx/issues/12759
Commit migrated from https://github.com/dotnet/coreclr/commit/
565efeadebc4e57adda634396933e958ffd51bb0
Faizur Rahman [Tue, 25 Oct 2016 04:21:29 +0000 (21:21 -0700)]
Add few Interop Marshal APIs (dotnet/coreclr#7742)
Add the following interop Marshal APIs:
M:System.Runtime.InteropServices.Marshal.GenerateGuidForType(System.Type)
M:System.Runtime.InteropServices.Marshal.GenerateProgIdForType(System.Type)
M:System.Runtime.InteropServices.Marshal.GetComObjectData(System.Object,System.Object)
M:System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Module)
M:System.Runtime.InteropServices.Marshal.GetIDispatchForObject(System.Object)
M:System.Runtime.InteropServices.Marshal.GetTypedObjectForIUnknown(System.IntPtr,System.Type)
M:System.Runtime.InteropServices.Marshal.PtrToStringAuto(System.IntPtr)
M:System.Runtime.InteropServices.Marshal.SetComObjectData(System.Object,System.Object,System.Object)
M:System.Runtime.InteropServices.Marshal.StringToCoTaskMemAuto(System.String)
M:System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(System.String)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3103a70d1fbe733d2b4e7ed9e2ff795b888b8b79
Daniel Podder [Tue, 25 Oct 2016 04:14:54 +0000 (21:14 -0700)]
Fix typos in windows build instructions (dotnet/coreclr#7789)
Commit migrated from https://github.com/dotnet/coreclr/commit/
47cc5df947ee03dc83c28ee243129e10e5683675
Mike McLaughlin [Tue, 25 Oct 2016 01:59:13 +0000 (18:59 -0700)]
Fix performance problem introduced in previous change. (dotnet/coreclr#7783)
Commit migrated from https://github.com/dotnet/coreclr/commit/
35989ce51b8f60670186b80eef5fb9dba6127fd2
sandreenko [Mon, 24 Oct 2016 23:54:56 +0000 (16:54 -0700)]
Merge pull request dotnet/coreclr#7782 from sandreenko/fix-tfs-build
fix tfs build crash
Commit migrated from https://github.com/dotnet/coreclr/commit/
9735854c9e1222ba63340b0c62afefebd779ee66
Sergey Andreenko [Mon, 24 Oct 2016 21:33:13 +0000 (14:33 -0700)]
fix tfs build crash
ifdef EE version statements were forgotten in two files.
Braket was on the wrong line.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c6fb3aa1f117d0c101bafa1f9af54062f193d6e
Ian Hays [Mon, 24 Oct 2016 22:23:03 +0000 (15:23 -0700)]
Merge pull request dotnet/coreclr#7778 from ianhays/binaryreadwrite_buffers
Add some extra checks to BinaryReader/Writer buffers
Commit migrated from https://github.com/dotnet/coreclr/commit/
5b29c2bb29039054638e51ef80e14aa75d3cd421
Jan Kotas [Mon, 24 Oct 2016 22:16:12 +0000 (15:16 -0700)]
Add back call to BitArray::ClearAll (dotnet/coreclr#7779)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d2c2040cddb8789fb1d20df3c729cbed0d3997e
noahfalk [Mon, 24 Oct 2016 21:51:12 +0000 (14:51 -0700)]
Merge pull request dotnet/coreclr#7706 from mjsabby/lcgjitprofcallbacks
Add LCG JIT Compilation Profiler Callbacks
Commit migrated from https://github.com/dotnet/coreclr/commit/
77140bcef2d3e21398360cda1c852a67026a7885
Sivarv [Mon, 24 Oct 2016 20:44:43 +0000 (13:44 -0700)]
Merge pull request dotnet/coreclr#7776 from sivarv/lsraStatFix
Fix the condition to dump a basic block stats.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c537c3f54282fae452f85a3975a39a7ec1c35bba
Ian Hays [Mon, 24 Oct 2016 20:26:42 +0000 (13:26 -0700)]
PR feedback for BinaryReader/Writer buffers
Commit migrated from https://github.com/dotnet/coreclr/commit/
e807e3de05ef0434fec600f3cda8ca8461d3b947
Ian Hays [Mon, 24 Oct 2016 20:09:36 +0000 (13:09 -0700)]
Add some extra checks to BinaryReader/Writer buffers
Commit migrated from https://github.com/dotnet/coreclr/commit/
418ed80c623e676eb2680011f5b3f02b22a9b89e
Ian Hays [Mon, 24 Oct 2016 19:58:19 +0000 (12:58 -0700)]
Merge pull request dotnet/coreclr#7775 from ianhays/cfg_arm64
Add CFG flag to ARM64 build
Commit migrated from https://github.com/dotnet/coreclr/commit/
31d3cf041eff655d92a9a4925e1e8b1f7cc7f11e
Jan Kotas [Mon, 24 Oct 2016 18:51:06 +0000 (11:51 -0700)]
Merge pull request dotnet/coreclr#7772 from jkotas/gcinfo-cleanup
GCInfoDecoder cleanup
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c4d3ac8536912009cc6b64ed580a1bc8420f0e5
sivarv [Mon, 24 Oct 2016 18:42:03 +0000 (11:42 -0700)]
Fix the condition to dump a basic block stats.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dadc45fdf8fe0a61b0f020046ebfa62485d960f2
Ian Hays [Mon, 24 Oct 2016 18:04:03 +0000 (11:04 -0700)]
Add CFG flag to ARM64 build
Commit migrated from https://github.com/dotnet/coreclr/commit/
df09c7b50a0d8f112b67f0525b0620a7dc00355f
Pat Gavlin [Mon, 24 Oct 2016 15:54:25 +0000 (08:54 -0700)]
Merge pull request dotnet/coreclr#7720 from Dmitry-Me/fixBrokenComparison
Fix broken range check
Commit migrated from https://github.com/dotnet/coreclr/commit/
de41f232a5e90c2a0d663d9f1eb8d3abe7117188
Jan Kotas [Mon, 24 Oct 2016 14:59:16 +0000 (07:59 -0700)]
Replace LPVOID with void*
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ad166a44d54c2d9a9ef8b7629f361a05bb364dc
Jan Kotas [Mon, 24 Oct 2016 04:31:29 +0000 (21:31 -0700)]
Simplify GCINFODECODER_CONTRACT
Commit migrated from https://github.com/dotnet/coreclr/commit/
c490aa1355fc4db332124c089d787d673cfae9bc
Jan Kotas [Mon, 24 Oct 2016 04:11:49 +0000 (21:11 -0700)]
Delete DISABLE_EH_VECTORS
Commit migrated from https://github.com/dotnet/coreclr/commit/
3e71169287f5f4deae73151aea0567148a15062a
Jan Kotas [Mon, 24 Oct 2016 01:21:22 +0000 (18:21 -0700)]
Delete _TARGET_SET_ macro
Commit migrated from https://github.com/dotnet/coreclr/commit/
2d07bf2e857f22b8303edbd06c545790039a8f3e
Jim Ma [Sat, 22 Oct 2016 16:19:57 +0000 (00:19 +0800)]
Fixed month calculating issue of calendars(dotnet/coreclr#7666) (dotnet/coreclr#7769)
Fixed the issue introduced by misunderstanding the precedence of '+' and
'>>'.
fix dotnet/coreclr#7666
Commit migrated from https://github.com/dotnet/coreclr/commit/
817c8397e5bcd4592dfaaaea3a03714ba5c3d3d8
Gaurav Khanna [Sat, 22 Oct 2016 16:18:26 +0000 (09:18 -0700)]
Fix Binder based PInvoke resolution for dynamic assembly (dotnet/coreclr#7770)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ff10a5b41d5481e21df9bbf5a4e8b419895530d
Vijay Ramakrishnan [Sat, 22 Oct 2016 11:51:20 +0000 (04:51 -0700)]
Fixing the StackOverflowException error message. (dotnet/coreclr#4786)
Commit migrated from https://github.com/dotnet/coreclr/commit/
24a6c7908f2582fb8628e53fe3d02306f6fba43c
Jim Ma [Sat, 22 Oct 2016 11:13:17 +0000 (19:13 +0800)]
Fixed typos and format issues on clr-code-guide doc(dotnet/coreclr#7767) (dotnet/coreclr#7768)
There're several typos and format issues. Just fixed them.
Fix issue dotnet/coreclr#7767
Commit migrated from https://github.com/dotnet/coreclr/commit/
73b4f008866b153a4d86785b648de4a281981c9e
Jan Kotas [Sat, 22 Oct 2016 05:07:29 +0000 (22:07 -0700)]
Port GC changes from CoreRT (dotnet/coreclr#7764)
https://github.com/dotnet/corert/pull/2064: Add back limit for maximum object size
https://github.com/dotnet/corert/pull/2061: Fix retail build break
Commit migrated from https://github.com/dotnet/coreclr/commit/
a0ae251eed00dfb5f5dc8dd3769c15c300c7502c
Dmitry-Me [Sat, 22 Oct 2016 04:05:09 +0000 (07:05 +0300)]
Fix broken #elif (dotnet/coreclr#7756)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c7bcaf51c9ed8fdf1253e05429291d56fc56509
Mukul Sabharwal [Sat, 22 Oct 2016 02:45:06 +0000 (19:45 -0700)]
Add Profiling API callbacks for R2R methods (dotnet/coreclr#7732)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac0cb2fb119f45bd653d44ba9e4a2abed6a23000
Sivarv [Sat, 22 Oct 2016 02:36:25 +0000 (19:36 -0700)]
Merge pull request dotnet/coreclr#7749 from sivarv/VectorIntDot
Recognize Vector<int>.Dot on AVX as a JIT intrinsic.
Commit migrated from https://github.com/dotnet/coreclr/commit/
437b45edab4d07adc220607a3448624ccfcdab9f
James Ko [Sat, 22 Oct 2016 01:21:27 +0000 (21:21 -0400)]
Improve ArraySegment's override of GetHashCode (dotnet/coreclr#4654)
* Improve ArraySegment's override of GetHashCode
* Use new implementation suggested by @VSadov
* Respond to PR feedback
* Remove the workaround for object.GetHashCode
* Respond to HashHelpers changes
* Fix compile errors.
Commit migrated from https://github.com/dotnet/coreclr/commit/
15ea0086a7e6f87e8237923684e100e3e1f44698
Pat Gavlin [Sat, 22 Oct 2016 01:21:01 +0000 (18:21 -0700)]
Merge pull request dotnet/coreclr#7739 from pgavlin/DisableGCStressIncompatibleTests
Mark tests GCStress-incompatible for x86.
Commit migrated from https://github.com/dotnet/coreclr/commit/
940a6f0d7277f368fc2e3d25b527e27242639141
Pat Gavlin [Sat, 22 Oct 2016 00:24:17 +0000 (17:24 -0700)]
Merge pull request dotnet/coreclr#7760 from pgavlin/VSO279832
Properly initialize the varargs base lclVar.
Commit migrated from https://github.com/dotnet/coreclr/commit/
eb6b52c30d616eb1378f30138c0b5115e69515fb
Pat Gavlin [Sat, 22 Oct 2016 00:22:49 +0000 (17:22 -0700)]
Merge pull request dotnet/coreclr#7759 from pgavlin/VSO278367
Initialize long return type descs in `gtNewCallNode`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf708032c8c6d4463e3db204d1780700554c43b6
Dmitry-Me [Fri, 21 Oct 2016 23:38:45 +0000 (02:38 +0300)]
Initialize member variable (dotnet/coreclr#7737)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5738641d34502b0206c3c09cf85aae75e632994a
sivarv [Thu, 20 Oct 2016 21:46:00 +0000 (14:46 -0700)]
Optimize Vector<int>.Dot on AVX.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1c8f29584f5ddebc4ea412283ca3811a0932ed22
Bruce Forstall [Fri, 21 Oct 2016 22:50:36 +0000 (15:50 -0700)]
Merge pull request dotnet/coreclr#7755 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
91dcfe1d0b529e3999e44029fe14ac428f705fe9
Rama krishnan Raghupathy [Fri, 21 Oct 2016 22:40:14 +0000 (15:40 -0700)]
Merge pull request dotnet/coreclr#7754 from ramarag/Threading
Exposing Some Threading Apis
Commit migrated from https://github.com/dotnet/coreclr/commit/
0a972deb9e3ea53e52e06dbaeb19b95be0879cc2
Rama Krishnan Raghupathy [Fri, 21 Oct 2016 22:25:49 +0000 (15:25 -0700)]
Adding Isafeserializationdata interface
Commit migrated from https://github.com/dotnet/coreclr/commit/
0bd8f2a02da9092919592231c5bb170f72181864
Mukul Sabharwal [Fri, 21 Oct 2016 22:20:02 +0000 (15:20 -0700)]
Address CR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
aac02c9ceb7f41ffed1353759e079f063fc953f9
Pat Gavlin [Fri, 21 Oct 2016 21:39:18 +0000 (14:39 -0700)]
Properly initialize the varargs base lclVar.
The code that initializes this lclVar was not using the correct helper
to determine whether or not a lclVar was enregistered at the beginning
of a method.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dc593b5fc380ef1477ed33ba0356792c3dc5e1b6
sandreenko [Fri, 21 Oct 2016 21:19:18 +0000 (14:19 -0700)]
Merge pull request dotnet/coreclr#7672 from sandreenko/helper-for-corert
Ready to run helper for static base lookups in shared generic code
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c77118cb8825163eaa60c9df3e460b9901ebd8b
sandreenko [Fri, 21 Oct 2016 21:09:30 +0000 (14:09 -0700)]
Merge pull request dotnet/coreclr#7743 from sandreenko/frozen_strings
fix value numbering for frozen strings.
Commit migrated from https://github.com/dotnet/coreclr/commit/
65556875ba1c7cb07360bbbee0008556fd51572a
Pat Gavlin [Fri, 21 Oct 2016 21:03:58 +0000 (14:03 -0700)]
Initialize long return type descs in `gtNewCallNode`.
All long-returning calls (including helper calls) must have a properly
initialized ReturnTypeDesc. Previously, this ReturnTypeDesc was only
initialized by the importer for a subset of long-returning calls
(essentially user calls), which caused asserts whenother long-returning
calls were created by the compiler (e.g. for field accessors). This
change moves the necessary ReturnTypeDesc initialization into
`gtNewCallNode`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2b0b914a68a9a74c8b8685851afb2f874246428
Mukul Sabharwal [Fri, 21 Oct 2016 16:24:21 +0000 (09:24 -0700)]
Add LCG JIT Compilation Profiler Callbacks
Methods that contain no metadata (e.g. of sources are IL Stubs,
DynamicMethod, Expression Trees, etc.) also known as LCG methods are not
reported to profilers via the Profiling API. LCG, introduced in .NET 2.0
timeframe is unique in that it doesn't require the method to be hosted
in an assembly > module > type heirarchy and is GCable in of itself.
This change adds new APIs that notify the profiler of such methods but
since there is no metadata to go lookup, it provides some useful pieces
of information that the profiler author may want to expose to the
profiler user.
In the compilation start method we provide a className (always
dynamicClass), a methodName that can be a set of few predetermined names
like (ILStub_COMToCLR, etc.) or if the user has set the name for the LCG
method that can show up here. For example, when using the Expression
Trees API, the user can specify a friendly name which would be returned
here.
In the jit completed callback we provide information for the native code
start address and size. This is particularly useful to get more accurate
accounting of what the (previously unidentified) code is. At least the
user would know it is JITTed if nothing more (but most likely more
information like what kind of stub).
Furthermore, since this is going to be a profiler callback, the profiler
can initiate a stackwalk and give more contextual information to its
users beyond the pieces of information we can provide here that could
identify what they're encountering.
Finally, there is also the case that today the profiling APIs
underreport JITTed code in the process. Considerable amount of LCG code
can now be present in the program and in security-sensitive environments
where tracking JITTed code for security reasons is important the
profiling apis fall short. In such environments there is also often
restrictions on running with elevated privileges, so procuring this data
through other means (like ETW) may pose a challenge.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b1f9f8315e011a693eab1f0bc7fb8f1a9c91350d
kvochko [Fri, 21 Oct 2016 09:17:38 +0000 (12:17 +0300)]
[GDBJIT] Generate more complete debug information (dotnet/coreclr#7617)
* Implement support for classes
* Add support for 'this' argument type
* System.String debug info
* Functions are generated as class members in DWARF, use TypeKey as type key.
* Initial support of references
* Support 'this' artificial argument in gdbjit
* Resolve issue with recursive types in gdbjit
* DWARF classes are terminated even if they don't have children
* Fix System.Char encoding.
* Add support static fields for classes
* Add support for single dimension arrays.
* Simplify signature parsing.
* Preliminary support for multidimensional arrays.
* Add support of value types
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a9ee939d1043f8347ce94a49bb38d517e3bb52d
Maoni Stephens [Fri, 21 Oct 2016 04:47:19 +0000 (21:47 -0700)]
Merge pull request dotnet/coreclr#7736 from hseok-oh/fix_7649
GC for large object allocation when fail to get new segment
Commit migrated from https://github.com/dotnet/coreclr/commit/
59c8c059bd474bf8105059de86bd3b22d92bc5c0
Michelle McDaniel [Fri, 21 Oct 2016 03:50:23 +0000 (23:50 -0400)]
Merge pull request dotnet/coreclr#7724 from adiaaida/implementDecomposeRotate
Implement DecomposeRotate
Commit migrated from https://github.com/dotnet/coreclr/commit/
fd13c8956ac768649b41f50fd046dbc3547d36a4
Jan Kotas [Fri, 21 Oct 2016 03:45:43 +0000 (20:45 -0700)]
Merge pull request dotnet/coreclr#7745 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
21f4c8f7440fc2dddca366206356f3b9d57daf79
Rama Krishnan Raghupathy [Fri, 21 Oct 2016 02:51:47 +0000 (19:51 -0700)]
Exposing Some Threading Apis
Commit migrated from https://github.com/dotnet/coreclr/commit/
c18542c420e2b095bf6e90643bc1738974217d8f
Andy Ayers [Fri, 21 Oct 2016 01:47:38 +0000 (18:47 -0700)]
Merge pull request dotnet/coreclr#7727 from AndyAyersMS/LateGCStructBailOut
Inliner: avoid inlining callees with GC structs on cold paths
Commit migrated from https://github.com/dotnet/coreclr/commit/
e70eadba0eb182f046f9be85833a23784c6d675f
Hyeongseok Oh [Thu, 20 Oct 2016 10:23:53 +0000 (19:23 +0900)]
GC for large object allocation when fail to get new segment
Delete unnecessary line
Commit migrated from https://github.com/dotnet/coreclr/commit/
6f09643f0a8d550eaa6e4f5ad131955b6eefdab9
dotnet-bot [Thu, 20 Oct 2016 23:18:59 +0000 (16:18 -0700)]
Updating the macro redefinition for _isnanf and _copysignf in floatsingle.cpp. This is required for the scenario when the system CRT header files are used instead of the newer MSVCRT header files.
[tfs-changeset: 1634419]
Commit migrated from https://github.com/dotnet/coreclr/commit/
890e5f93914396ac2cdd502809d15984d2d4db15
Jan Kotas [Thu, 20 Oct 2016 22:55:30 +0000 (15:55 -0700)]
Fix build break
[tfs-changeset: 1634415]
Commit migrated from https://github.com/dotnet/coreclr/commit/
347cc35af5e5676ab57ba23a16624a6d6ce002d6
Sergey Andreenko [Thu, 20 Oct 2016 22:49:08 +0000 (15:49 -0700)]
fix value numbering for frozen strings
As Pat found it was value numbering issue.
Commit migrated from https://github.com/dotnet/coreclr/commit/
953b945d2d5dac2821e76a59b5ffb5e8fe89d2ad
Pat Gavlin [Thu, 20 Oct 2016 22:30:29 +0000 (15:30 -0700)]
Add comments describing why these tests are disabled.
Commit migrated from https://github.com/dotnet/coreclr/commit/
247d956f4e6231fcda23210feeb0c86d1690c485
Michelle McDaniel [Wed, 19 Oct 2016 17:43:15 +0000 (10:43 -0700)]
Implement DecomposeRotate
fgRecognizeAndMorphBitwiseRotation can potentially morph a tree with a
TYP_LONG return type on x86 if the rotate amount is a GT_CNS_INT. This
change implements DecomposeRotate for those rotate instructions. There are
5 cases:
1) Rotate by 0: do nothing.
2) Rotate by 32: swap hi and lo.
3) Rotate by < 32: produce a shld/shld (for GT_ROL) or a shrd/shrd (for
GT_ROR).
4) Rotate by >= 32: swap hi and lo, subtract from the rotate amount 32, and
do option 3.
5) Rotate by >= 64: do rotateAmount % 64 to get the rotate amount between
0 and 63, then do one of options 1-4.
This change also updates CodegenBringUpTests\Rotate.cs to exercise these
paths.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d24a3008cd1bbed78dd4e82414228da6e21361d2
Jeremy Kuhne [Thu, 20 Oct 2016 18:48:53 +0000 (11:48 -0700)]
Merge pull request dotnet/coreclr#7734 from JeremyKuhne/ArrayPool
Move ArrayPool to System.Private.CoreLib
Commit migrated from https://github.com/dotnet/coreclr/commit/
74cbc9e2c42ffb01c84a68adb59a2ff35ae23333
Bruce Forstall [Thu, 20 Oct 2016 18:30:34 +0000 (11:30 -0700)]
Merge pull request dotnet/coreclr#7730 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ea3efb93bf965148957274dc3af8bee9a218292
Pat Gavlin [Thu, 20 Oct 2016 18:29:37 +0000 (11:29 -0700)]
Mark tests GCStress-incompatible for x86.
These tests time out when GC stress is enabled on x86.
Fixes dotnet/coreclr#7692 and dotnet/coreclr#7695.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7862e2c3c090454344e5047f7e5250a81c375d9a
Sergey Andreenko [Thu, 20 Oct 2016 17:38:15 +0000 (10:38 -0700)]
return add with offset, add version if-defs
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab97fb505212ee3d22ec6e5b7e6885040bd6b753
Llewellyn Pritchard [Thu, 20 Oct 2016 17:32:02 +0000 (19:32 +0200)]
Fix Attribute implementations of Equals and GetHashCode to properly deal with derived types. dotnet/coreclr#6232 (dotnet/coreclr#6240)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9463e5d384c09fcc0c17a71c616b2bcb3d633c8a
Andy Ayers [Thu, 20 Oct 2016 17:24:54 +0000 (10:24 -0700)]
Add cross-reference from test case to inspiring issue
Commit migrated from https://github.com/dotnet/coreclr/commit/
f6a14f199e22c657f394f4dd8c9325e77fffe7a8
Tanner Gooding [Thu, 20 Oct 2016 09:04:15 +0000 (02:04 -0700)]
Fixing the reference declarations for System.MathF. (dotnet/coreclr#7735)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e66fca59b40409829eec5dca5da827843dabaeff
Dmitry-Me [Thu, 20 Oct 2016 00:25:48 +0000 (03:25 +0300)]
Remove misleading check (dotnet/coreclr#7654)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0e798126fc5c5d5cf045530c73d296e5aacc8b5d
Peter Kukol [Wed, 19 Oct 2016 23:28:20 +0000 (17:28 -0600)]
Call JIT compiler's shutdown logic from crossgen. (dotnet/coreclr#7663)
* Call JIT compiler's shutdown logic from crossgen.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dcce190472393d828d3fb364e9e5fe5906c42822
Rahul Kumar [Wed, 19 Oct 2016 23:16:09 +0000 (16:16 -0700)]
Merge pull request dotnet/coreclr#7733 from rahku/_appdomain
fix assembly.Load bug
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6dcbb66bace9a1f3fc081ec0740258b0c9358ea
Jeremy Kuhne [Wed, 19 Oct 2016 23:02:52 +0000 (16:02 -0700)]
Move ArrayPool to System.Private.CoreLib
Copy ArrayPool source from CoreFX and expose in System.Private.CoreLib.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6eecf7f7848d23f99ebc9d7312a59a7f12d2f16
Rahul Kumar [Wed, 19 Oct 2016 22:09:16 +0000 (15:09 -0700)]
fix assembly.Load bug
Commit migrated from https://github.com/dotnet/coreclr/commit/
b3e39e95a917decaf586f325ae66e387a298b50a
Carol Eidt [Wed, 19 Oct 2016 21:38:57 +0000 (14:38 -0700)]
Merge pull request dotnet/coreclr#7725 from CarolEidt/Fix278372
RyuJIT/x86: handle must-init multi-reg vars
Commit migrated from https://github.com/dotnet/coreclr/commit/
a410ded42ba14ae87efa5e9627a5d300cc9aadc1
Bruce Forstall [Wed, 19 Oct 2016 21:10:41 +0000 (14:10 -0700)]
Merge pull request dotnet/coreclr#7726 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
f18e23891aa657d849d7a30f6d4e423c97c3835c
Andy Ayers [Wed, 19 Oct 2016 20:51:34 +0000 (13:51 -0700)]
Add comment to test case and run it through codeformatter.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6bf79f0f1edf2de19175c1275372e782916f56a2
AlexGhiondea [Wed, 19 Oct 2016 20:24:40 +0000 (13:24 -0700)]
Remove the UseLatestBehaviorWhenTFMNotSpecified compat switch (dotnet/coreclr#5708)
* Default to latest behavior when a TFM is not specified
Instead of requiring that a compatibility switch is set in order to get the
latest behavior for all AppContext switches that are based on TFM, have that
behavior on by default.
* Remove the UseLatestBehaviorWhenTFMNotSpecified compat switch
Commit migrated from https://github.com/dotnet/coreclr/commit/
0e4869a6930cfb6278b51130bbccfc323ef61053
James Ko [Wed, 19 Oct 2016 20:24:01 +0000 (16:24 -0400)]
Better Tuple hashing, avoid boxing in Equals/GetHashCode (dotnet/coreclr#6767)
Commit migrated from https://github.com/dotnet/coreclr/commit/
361e6eb85c74b57691955d97dda801d725cd2a59
Bruce Forstall [Wed, 19 Oct 2016 20:14:54 +0000 (13:14 -0700)]
Merge pull request dotnet/coreclr#7612 from BruceForstall/ELT
Enable Enter/Leave/Tailcall hooks for RyuJIT/x86
Commit migrated from https://github.com/dotnet/coreclr/commit/
a6c000b2890e28dd3f6a4b1afa30b035b3d2e47a
Rahul Kumar [Wed, 19 Oct 2016 20:03:43 +0000 (13:03 -0700)]
Fix arm32 build break
[tfs-changeset: 1634155]
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6de1c286130035629e6554ddb2ac2004abc4aad
Steve Desmond [Wed, 19 Oct 2016 19:33:49 +0000 (15:33 -0400)]
cross/build-rootfs.sh: fix default UbuntuPackages for default BuildArch (dotnet/coreclr#7644)
* better default UbuntuPackages for default BuildArch
* Remove multiple sets of _UbuntuPackages to default
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f572b68ebbcedfebd05c956c2137492cc403253
Andy Ayers [Thu, 13 Oct 2016 01:00:13 +0000 (18:00 -0700)]
Inliner: avoid inlining callees with GC structs on cold paths
If an inline introduces a local or temp GC struct, the initialization
of that struct is done in the root method prolog. This can hurt
performance if the inline call site is cold. Detect this during
importation and update the inline policy to back out of the inline if
the inline is an always or discretionary candidate.
Jit diffs shows size wins in the core library with no regressions.
```
Total bytes of diff: -8789 (-0.29 % of base)
diff is an improvement.
Total byte diff includes 0 bytes from reconciling methods
Base had 0 unique methods, 0 unique bytes
Diff had 0 unique methods, 0 unique bytes
Top file improvements by size (bytes):
-8789 : System.Private.CoreLib.dasm (-0.29 % of base)
1 total files with size differences.
Top method improvements by size (bytes):
-320 : System.Private.CoreLib.dasm - FrameSecurityDescriptor:CheckDemand2(ref,ref,long,bool):bool:this
-224 : System.Private.CoreLib.dasm - RuntimeConstructorInfo:CheckCanCreateInstance(ref,bool)
-214 : System.Private.CoreLib.dasm - RuntimeType:GetMethodBase(ref,long):ref
-150 : System.Private.CoreLib.dasm - CultureInfo:GetCultureInfoByIetfLanguageTag(ref):ref
-146 : System.Private.CoreLib.dasm - GC:RegisterForFullGCNotification(int,int)
103 total methods with size differences.
```
Desktop testing shows similar wins in a number of places and only
a few sparse small regressions.
Added a perf test. Thanks to @hypersw for noticing this.
Closes dotnet/coreclr#7569.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1e0359ce3e5d25ba4dbbe72336653ea1c94113ac
Tanner Gooding [Wed, 19 Oct 2016 19:15:21 +0000 (12:15 -0700)]
Updating the new `System.MathF` calls which already existed in `System.Math` to call the `System.Math` implementation. (dotnet/coreclr#7721)
* Updating the new `System.MathF` calls which already existed in `System.Math` to call the `System.Math` implementation.
* Removing the FCALL entry for MathF.Abs
Commit migrated from https://github.com/dotnet/coreclr/commit/
841155bca0f1fe0202fd53833e476980e398dab7
Carol Eidt [Wed, 19 Oct 2016 18:28:22 +0000 (11:28 -0700)]
RyuJIT/x86: handle must-init multi-reg vars
In the RyuJIT backend, lclVars can occupy multiple registers, and not have a stack location. These should be handled for must-init as for lvRegister. The existing code was doing this oinly for _TARGET_64_BIT_ when it should be !LEGACY_BACKEND.
This fixes DevDiv VSO bug 278372
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ed511b7d60853fb32938d9cab252fbfeafce85e
Pat Gavlin [Wed, 19 Oct 2016 18:23:10 +0000 (11:23 -0700)]
Merge pull request dotnet/coreclr#7708 from pgavlin/StackParamUntracked
Always treat incoming on-stack parameters as GC-untracked.
Commit migrated from https://github.com/dotnet/coreclr/commit/
38495badc123a9d9a2d0e1640f5bf23da40d13f7
Jan Kotas [Wed, 19 Oct 2016 18:17:40 +0000 (11:17 -0700)]
Merge pull request dotnet/coreclr#7718 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
59e73762ca23c6d34036ce8b06643efaa47333ed
Bruce Forstall [Fri, 14 Oct 2016 01:10:33 +0000 (18:10 -0700)]
Enable Enter/Leave/Tailcall hooks for RyuJIT/x86
Commit migrated from https://github.com/dotnet/coreclr/commit/
fba86f9b18cb39195aea1465beed3df90f004524
Sergey Andreenko [Wed, 19 Oct 2016 16:37:55 +0000 (09:37 -0700)]
fix compilation compilation error without ready to run.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7e51701cf141dacd8e1426dfc1b90118fedb5d39
Gaurav Khanna [Wed, 19 Oct 2016 16:35:54 +0000 (09:35 -0700)]
Merge pull request dotnet/coreclr#7714 from gkhanna79/CleanupArm32
Cleanup arm32
Commit migrated from https://github.com/dotnet/coreclr/commit/
2eefb2d2e64caec9e4c4bbbe805495109e35a1c3
Rahul Kumar [Wed, 19 Oct 2016 16:12:10 +0000 (09:12 -0700)]
fix arm64 build break
[tfs-changeset: 1634120]
Commit migrated from https://github.com/dotnet/coreclr/commit/
43a39ebe216b36b16edc11275c9bfa5bac2679c8
Stephen Toub [Wed, 19 Oct 2016 12:27:47 +0000 (08:27 -0400)]
Merge pull request dotnet/coreclr#7709 from wtgodbe/publishProj
Only build TargetingPack when building on Windows
Commit migrated from https://github.com/dotnet/coreclr/commit/
d8b86d144d337f0f0d698ac1c60cf87e1b9c1011
Dmitry-Me [Wed, 19 Oct 2016 11:55:23 +0000 (14:55 +0300)]
Fix broken range check
Commit migrated from https://github.com/dotnet/coreclr/commit/
26b030d304fc9175317047cbe1a6eb4dc02d7e38
Matt Ellis [Wed, 19 Oct 2016 08:42:45 +0000 (01:42 -0700)]
Support "offline" initializtion of Tools (dotnet/coreclr#7715)
This change allows init-tools to function in an "offline" mode where
tools are picked up from standalone folders. Specifically, it introduces
support for two new environment variables:
- DOTNET_TOOLSET_DIR
- BUILD_TOOLS_TOOLSET_DIR
If either is set, instead of downloading toolsets, we copy an already
existing one from the folder. The TOOLSET_DIR is a folder with sub
directories for every version of the tool in question.
For buildtools, we expect a published toolset (sans the "dotnetcli"
folder) not just a set of nuget packages (i.e. the layout of Tools/
after running ./init-tools.sh in "online" mode).
The above varibles are useful for situations where we want to carry
multiple toolsets with us, but are less helpful for places where a
developer has produced their own toolset by hand (since the resulting
folder structure contains extra version information). For these cases,
I've added
- DOTNET_TOOL_DIR
- BUILD_TOOLS_TOOL_DIR
Which work like the above but don't require the nested folder structure.
Commit migrated from https://github.com/dotnet/coreclr/commit/
380dd6d4aad88103efa6ae58830be356d20e742d