platform/upstream/dotnet/runtime.git
7 years agoMerge pull request dotnet/coreclr#7751 from ramarag/MemFailPoint
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

7 years agoMerge pull request dotnet/coreclr#7800 from BruceForstall/ChangeJITGuid
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

7 years agoMaking MemoryFailPoint functional on xplat
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

7 years agoMerge pull request dotnet/coreclr#7786 from rahku/_appdomain
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

7 years agoAdd implementation of AppDomain.GetAssemblies
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

7 years agoMerge pull request dotnet/coreclr#7799 from adiaaida/fixRotateFlagCheck
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

7 years agoMerge pull request dotnet/coreclr#7798 from AndyAyersMS/FixObservationImpact
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

7 years agoChange JIT-EE interface GUID
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

7 years agoFix flag check when morphing into rotate
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

7 years agoCheck index before access (dotnet/coreclr#7795)
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

7 years agoAdd more lldbplugin/libsosplugin tests (dotnet/coreclr#5606)
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

7 years agoInliner: fix RARE_GC_STRUCT observation impact
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

7 years agoDo not materialize CAS PseudoCustomAttribute (dotnet/coreclr#7794)
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

7 years agoAdd few Interop Marshal APIs (dotnet/coreclr#7742)
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

7 years agoFix typos in windows build instructions (dotnet/coreclr#7789)
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

7 years agoFix performance problem introduced in previous change. (dotnet/coreclr#7783)
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

7 years agoMerge pull request dotnet/coreclr#7782 from sandreenko/fix-tfs-build
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

7 years agofix tfs build crash
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

7 years agoMerge pull request dotnet/coreclr#7778 from ianhays/binaryreadwrite_buffers
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

7 years agoAdd back call to BitArray::ClearAll (dotnet/coreclr#7779)
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

7 years agoMerge pull request dotnet/coreclr#7706 from mjsabby/lcgjitprofcallbacks
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

7 years agoMerge pull request dotnet/coreclr#7776 from sivarv/lsraStatFix
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

7 years agoPR feedback for BinaryReader/Writer buffers
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

7 years agoAdd some extra checks to BinaryReader/Writer buffers
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

7 years agoMerge pull request dotnet/coreclr#7775 from ianhays/cfg_arm64
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

7 years agoMerge pull request dotnet/coreclr#7772 from jkotas/gcinfo-cleanup
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

7 years agoFix the condition to dump a basic block stats.
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

7 years agoAdd CFG flag to ARM64 build
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

7 years agoMerge pull request dotnet/coreclr#7720 from Dmitry-Me/fixBrokenComparison
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

7 years agoReplace LPVOID with void*
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

7 years agoSimplify GCINFODECODER_CONTRACT
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

7 years agoDelete DISABLE_EH_VECTORS
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

7 years agoDelete _TARGET_SET_ macro
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

7 years agoFixed month calculating issue of calendars(dotnet/coreclr#7666) (dotnet/coreclr#7769)
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

7 years agoFix Binder based PInvoke resolution for dynamic assembly (dotnet/coreclr#7770)
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

7 years agoFixing the StackOverflowException error message. (dotnet/coreclr#4786)
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

7 years agoFixed typos and format issues on clr-code-guide doc(dotnet/coreclr#7767) (dotnet...
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

7 years agoPort GC changes from CoreRT (dotnet/coreclr#7764)
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

7 years agoFix broken #elif (dotnet/coreclr#7756)
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

7 years agoAdd Profiling API callbacks for R2R methods (dotnet/coreclr#7732)
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

7 years agoMerge pull request dotnet/coreclr#7749 from sivarv/VectorIntDot
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

7 years agoImprove ArraySegment's override of GetHashCode (dotnet/coreclr#4654)
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

7 years agoMerge pull request dotnet/coreclr#7739 from pgavlin/DisableGCStressIncompatibleTests
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

7 years agoMerge pull request dotnet/coreclr#7760 from pgavlin/VSO279832
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

7 years agoMerge pull request dotnet/coreclr#7759 from pgavlin/VSO278367
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

7 years agoInitialize member variable (dotnet/coreclr#7737)
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

7 years agoOptimize Vector<int>.Dot on AVX.
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

7 years agoMerge pull request dotnet/coreclr#7755 from dotnet-bot/from-tfs
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

7 years agoMerge pull request dotnet/coreclr#7754 from ramarag/Threading
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

7 years agoAdding Isafeserializationdata interface
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

7 years agoAddress CR feedback
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

7 years agoProperly initialize the varargs base lclVar.
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

7 years agoMerge pull request dotnet/coreclr#7672 from sandreenko/helper-for-corert
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

7 years agoMerge pull request dotnet/coreclr#7743 from sandreenko/frozen_strings
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

7 years agoInitialize long return type descs in `gtNewCallNode`.
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

7 years agoAdd LCG JIT Compilation Profiler Callbacks
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

7 years ago[GDBJIT] Generate more complete debug information (dotnet/coreclr#7617)
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

7 years agoMerge pull request dotnet/coreclr#7736 from hseok-oh/fix_7649
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

7 years agoMerge pull request dotnet/coreclr#7724 from adiaaida/implementDecomposeRotate
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

7 years agoMerge pull request dotnet/coreclr#7745 from dotnet-bot/from-tfs
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

7 years agoExposing Some Threading Apis
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

7 years agoMerge pull request dotnet/coreclr#7727 from AndyAyersMS/LateGCStructBailOut
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

7 years agoGC for large object allocation when fail to get new segment
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

7 years agoUpdating the macro redefinition for _isnanf and _copysignf in floatsingle.cpp. This...
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

7 years agoFix build break
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

7 years agofix value numbering for frozen strings
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

7 years agoAdd comments describing why these tests are disabled.
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

7 years agoImplement DecomposeRotate
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

7 years agoMerge pull request dotnet/coreclr#7734 from JeremyKuhne/ArrayPool
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

7 years agoMerge pull request dotnet/coreclr#7730 from dotnet-bot/from-tfs
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

7 years agoMark tests GCStress-incompatible for x86.
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

7 years agoreturn add with offset, add version if-defs
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

7 years agoFix Attribute implementations of Equals and GetHashCode to properly deal with derived...
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

7 years agoAdd cross-reference from test case to inspiring issue
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

7 years agoFixing the reference declarations for System.MathF. (dotnet/coreclr#7735)
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

7 years agoRemove misleading check (dotnet/coreclr#7654)
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

7 years agoCall JIT compiler's shutdown logic from crossgen. (dotnet/coreclr#7663)
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

7 years agoMerge pull request dotnet/coreclr#7733 from rahku/_appdomain
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

7 years agoMove ArrayPool to System.Private.CoreLib
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

7 years agofix assembly.Load bug
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

7 years agoMerge pull request dotnet/coreclr#7725 from CarolEidt/Fix278372
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

7 years agoMerge pull request dotnet/coreclr#7726 from dotnet-bot/from-tfs
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

7 years agoAdd comment to test case and run it through codeformatter.
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

7 years agoRemove the UseLatestBehaviorWhenTFMNotSpecified compat switch (dotnet/coreclr#5708)
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

7 years agoBetter Tuple hashing, avoid boxing in Equals/GetHashCode (dotnet/coreclr#6767)
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

7 years agoMerge pull request dotnet/coreclr#7612 from BruceForstall/ELT
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

7 years agoFix arm32 build break
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

7 years agocross/build-rootfs.sh: fix default UbuntuPackages for default BuildArch (dotnet/corec...
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

7 years agoInliner: avoid inlining callees with GC structs on cold paths
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

7 years agoUpdating the new `System.MathF` calls which already existed in `System.Math` to call...
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

7 years agoRyuJIT/x86: handle must-init multi-reg vars
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

7 years agoMerge pull request dotnet/coreclr#7708 from pgavlin/StackParamUntracked
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

7 years agoMerge pull request dotnet/coreclr#7718 from dotnet-bot/from-tfs
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

7 years agoEnable Enter/Leave/Tailcall hooks for RyuJIT/x86
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

7 years agofix compilation compilation error without ready to run.
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

7 years agoMerge pull request dotnet/coreclr#7714 from gkhanna79/CleanupArm32
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

7 years agofix arm64 build break
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

7 years agoMerge pull request dotnet/coreclr#7709 from wtgodbe/publishProj
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

7 years agoFix broken range check
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

7 years agoSupport "offline" initializtion of Tools (dotnet/coreclr#7715)
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