platform/upstream/coreclr.git
5 years agoDisplay the arm instruction size
Bruce Forstall [Fri, 12 Apr 2019 20:19:14 +0000 (13:19 -0700)]
Display the arm instruction size

When dumping an arm instruction, and when we don't have the actual
code bytes (such as during code generation, as opposed to emission),
display the (current) instruction size, either 2 bytes (2B),
4 bytes (4B), or 6 bytes (6B).

5 years agoUpdate maximum allowed arm prolog size
Bruce Forstall [Fri, 12 Apr 2019 20:15:42 +0000 (13:15 -0700)]
Update maximum allowed arm prolog size

Change #23715 changed the localloc stack probe loop to load a
negative constant instead of zero to start the probing loop.
This increased the size of the probing loop, and hence the
size of the maximum prolog, by 4 bytes. Bump the assert on
the maximum size to match.

Note that as the comment says, the maximum size there is not
actually a maximum (it was originally), it is just to alert
us when the maximum generated prolog size has gone up.

Fixes #23920

5 years agoMove TimerQueue.TickCount Windows implementation to shared CoreLib (#23838)
Filip Navara [Wed, 10 Apr 2019 23:04:38 +0000 (01:04 +0200)]
Move TimerQueue.TickCount Windows implementation to shared CoreLib (#23838)

5 years agoMake GC.GetGCMemoryInfo public (#23779)
Ludovic Henry [Wed, 10 Apr 2019 22:57:00 +0000 (15:57 -0700)]
Make GC.GetGCMemoryInfo public (#23779)

* Make GC.GetGCMemoryInfo public

This is to be used to allow users to optimize memory consumption based
on what's available to the GC and on the system.

This is based on https://github.com/dotnet/corefx/issues/34631

* Address reviews

- Pass GCMemoryInfo struct to native in place of many arguments
- Make GCMemoryInfo.HeapSize and GCMemoryInfo.Fragmentation long in place of IntPtr

* Address reviews

- Mark GCMemoryInfo readonly

* Rearrange fields and match managed/native names

* Fix compilation

* Use getter shorthand

* Address API Design Review

https://github.com/dotnet/corefx/issues/34631#issuecomment-481358549

* Fix comments

* Fix comments

* Do everything in managed

* Address review

 - Remove unecessary [StructLayout.Sequential]
 - Remove "_" prefix for parameters variables

5 years agoMerge pull request #23876 from briansull/jit-dump
Brian Sullivan [Wed, 10 Apr 2019 22:19:11 +0000 (15:19 -0700)]
Merge pull request #23876 from briansull/jit-dump

Improved JitDump

5 years agoMerge pull request #23858 from sandreenko/fixOptPrepareTreeToReplacement
Sergey Andreenko [Wed, 10 Apr 2019 22:15:12 +0000 (15:15 -0700)]
Merge pull request #23858 from sandreenko/fixOptPrepareTreeToReplacement

Clean optVNConstantPropOnTree.

5 years agoCheck for a null import descriptor when fixing up vtables. (#23825)
Jeremy Koritzinsky [Wed, 10 Apr 2019 19:54:27 +0000 (12:54 -0700)]
Check for a null import descriptor when fixing up vtables. (#23825)

A fragile ngened image doesn't have an import descriptor directory in its PE image. Without this check, we AV when loading a fragile ngened image.

5 years agojit-format
Brian Sullivan [Wed, 10 Apr 2019 19:52:14 +0000 (12:52 -0700)]
jit-format

5 years agoImproved JitDump
Brian Sullivan [Wed, 10 Apr 2019 19:37:21 +0000 (12:37 -0700)]
Improved JitDump
- Prints the bbNatLoopNum when dumping the BasicBlocks
- Refactor the GenTree node dump to use gtDispCommonEndLine:
//     Utility function that prints the following node information
//       1: The associated zero field sequence (if any)
//       2. The register assigned to this node (if any)
//       2. The value number assigned (if any)
//       3. A newline character

5 years agoUpdate the comment.
Sergey Andreenko [Wed, 10 Apr 2019 19:29:46 +0000 (12:29 -0700)]
Update the comment.

5 years agoUpdate Range.GetOffsetAndLength (#23855)
Tarek Mahmoud Sayed [Wed, 10 Apr 2019 19:05:27 +0000 (20:05 +0100)]
Update Range.GetOffsetAndLength (#23855)

* Update Range.GetOffsetAndLength

Make it return offset and length tuple instead of the old Type Range.OffsetAndLength

* Fix the return Tuple fields names

5 years agoTweaking some APIs according to user feedback. (#23857)
Tanner Gooding [Wed, 10 Apr 2019 17:42:17 +0000 (10:42 -0700)]
Tweaking some APIs according to user feedback. (#23857)

* Updating the Avx2.ConvertToVector256UInt APIs to return a signed type (matching the native signature and Sse41 APIs).

* Adding explicit overloads for `Sse41.ConvertToVector128Int*` and `Avx2.ConvertToVector256Int*` that take a pointer

* Updating the word ordering for the Compare/CompareScalar methods.

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190409.17 ...
dotnet-maestro[bot] [Wed, 10 Apr 2019 16:38:40 +0000 (12:38 -0400)]
Update dependencies from https://github.com/dotnet/core-setup build 20190409.17 (#23865)

- Microsoft.NETCore.App - 3.0.0-preview5-27609-17

5 years agoUpdate CoreClr to preview5-27610-71 (#23859)
dotnet-maestro-bot [Wed, 10 Apr 2019 16:38:28 +0000 (09:38 -0700)]
Update CoreClr to preview5-27610-71 (#23859)

5 years agoUpdate Windows instructions (#23841)
Jared Parsons [Wed, 10 Apr 2019 13:57:38 +0000 (06:57 -0700)]
Update Windows instructions (#23841)

The instructions for CMake failed to list 3.14.1 when using Visual Studio 2019.

5 years agoUpdate profiling-api-status.md
Noah Falk [Wed, 10 Apr 2019 11:05:03 +0000 (04:05 -0700)]
Update profiling-api-status.md

Clarifying that profiler attach/detach are a known gap

5 years agoChange optExtractSideEffList to optExtractSideEffList.
Sergey Andreenko [Wed, 10 Apr 2019 08:59:31 +0000 (01:59 -0700)]
Change optExtractSideEffList to optExtractSideEffList.

5 years agoFix newlines for ilegal trees in `gtDispTree`.
Sergey Andreenko [Wed, 10 Apr 2019 08:57:04 +0000 (01:57 -0700)]
Fix newlines for  ilegal trees in `gtDispTree`.

5 years agoExpose new EventCounter APIs (#23808)
Sung Yoon Whang [Wed, 10 Apr 2019 08:19:30 +0000 (01:19 -0700)]
Expose new EventCounter APIs (#23808)

* rename BaseCounter to DiagnosticCounter

* Change MetaData->Metadata

* Make EventSource and Name a property for counter classes

* Make the counter APIs public

* fix build errors

* Change float to double

* Few cleanups, fix test

* fix GetMetadataString

* PR feedback

* More PR feedback

5 years agoRemove dlclose call to unload CoreCLR (#23863)
Next Turn [Wed, 10 Apr 2019 04:18:24 +0000 (12:18 +0800)]
Remove dlclose call to unload CoreCLR (#23863)

5 years agoAdd back using to EventSourceException
Santiago Fernandez Madero [Fri, 5 Apr 2019 23:32:35 +0000 (16:32 -0700)]
Add back using to EventSourceException

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoUpdate CoreRT for changes in shared partition
Jan Kotas [Fri, 5 Apr 2019 04:49:22 +0000 (21:49 -0700)]
Update CoreRT for changes in shared partition

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoAdd 'SetNotificationForWaitCompletion' to ILLinkTrim.xml (#23822)
Gregg Miskelly [Wed, 10 Apr 2019 02:17:39 +0000 (19:17 -0700)]
Add 'SetNotificationForWaitCompletion' to ILLinkTrim.xml (#23822)

SetNotificationForWaitCompletion is meant to be func-eval'ed by the debugger to enable async step out. But this method was being removed by the IL linker. This adds it back.

5 years agoDelete the asignment that was added as a workaround.
Sergey Andreenko [Thu, 28 Mar 2019 20:42:06 +0000 (13:42 -0700)]
Delete the asignment that was added as a workaround.

5 years agoClarify some unsupported cases in `optVNConstantPropOnTree`.
Sergey Andreenko [Thu, 28 Mar 2019 20:23:04 +0000 (13:23 -0700)]
Clarify some unsupported cases in `optVNConstantPropOnTree`.

5 years agoClean optVNConstantPropOnTree.
Sergey Andreenko [Wed, 27 Mar 2019 00:16:07 +0000 (17:16 -0700)]
Clean optVNConstantPropOnTree.

Create a new tree with const val and attach side-effects to it.
Extract common code and delete returns in the of the switch.

5 years agoDon't denormalize enum return values on instance methods on x86. (#23816)
Jeremy Koritzinsky [Tue, 9 Apr 2019 22:28:00 +0000 (15:28 -0700)]
Don't denormalize enum return values on instance methods on x86. (#23816)

* Don't denormalize enum return values on instance methods on x86.

* Reuse closedElemType.

5 years agoAlter CCW wrapping semantics (#23709)
Aaron Robinson [Tue, 9 Apr 2019 22:07:34 +0000 (15:07 -0700)]
Alter CCW wrapping semantics (#23709)

* Update CCW semantics to not unwrap when a managed COM server was activated
  from a managed COM client. This is a functional change from .NET Framework.

* Add support for CoreShim to "attach" to the existing CLR instance when
 running from a CoreRun scenario.

* Add testing for NET COM client activating a NET COM server

5 years agoDestroy the old tree in `optAssertionProp_Update`.
Sergey Andreenko [Wed, 27 Mar 2019 00:06:29 +0000 (17:06 -0700)]
Destroy the old tree in `optAssertionProp_Update`.

Currently compiletion will fail with an assert because of `optPrepareTreeForReplacement`.

5 years agoDelete condition that was previously checked with noway_assert.
Sergey Andreenko [Tue, 26 Mar 2019 22:34:24 +0000 (15:34 -0700)]
Delete condition that was previously checked with noway_assert.

5 years agoExclude PInvokes declared on other modules. We don't yet encode crossmodule reference...
Fadi Hanna [Tue, 9 Apr 2019 19:43:38 +0000 (12:43 -0700)]
Exclude PInvokes declared on other modules. We don't yet encode crossmodule references (#23828)

* Exclude PInvokes declared on other modules. We don't yet encode cross module references

5 years agoUnconditionally set CrossGenTest to false for readytorun/tests/mainv1 mainv2 (#23826)
Egor Chesakov [Tue, 9 Apr 2019 19:16:51 +0000 (12:16 -0700)]
Unconditionally set CrossGenTest to false for readytorun/tests/mainv1 mainv2 (#23826)

5 years agoGroup XUnitWrapper.dll into the same Payloads when submit to Helix (#23476)
Egor Chesakov [Tue, 9 Apr 2019 18:00:25 +0000 (11:00 -0700)]
Group XUnitWrapper.dll into the same Payloads when submit to Helix (#23476)

* Add DisplayNameAttribute to each Fact

* Split files under bin/tests folder into groups and specify the corresponding *.XUnitWrapper.dll

* Group some of the *.XUnitWrapper.dll files into PayloadGroups and split others into different PayloadGroups if they have more than one TestGroup defined

* Add "TestGroup" trait to XUnitWrapper facts

* Add Microsoft.DotNet.XUnitConsoleRunner to eng\Versions.props

* Overwrite xunit.console.dll with the version coming from Microsoft.DotNet.XUnitConsoleRunner

5 years agoUpdate CoreClr to preview5-27609-71 (#23809)
dotnet-maestro-bot [Tue, 9 Apr 2019 15:54:13 +0000 (08:54 -0700)]
Update CoreClr to preview5-27609-71 (#23809)

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190408.16 ...
dotnet-maestro[bot] [Tue, 9 Apr 2019 15:52:56 +0000 (11:52 -0400)]
Update dependencies from https://github.com/dotnet/core-setup build 20190408.16 (#23836)

- Microsoft.NETCore.App - 3.0.0-preview5-27608-16

5 years agoImprove RuntimeHelpers.GetSubArray (#23829)
Stephen Toub [Tue, 9 Apr 2019 11:21:40 +0000 (07:21 -0400)]
Improve RuntimeHelpers.GetSubArray (#23829)

* Improve RuntimeHelpers.GetSubArray

This change does three things.

First, it fixes `GetSubArray` to work when the supplied array is actually a `U[]` where `U : T`.  Currently this case ends up throwing an exception inside of span, which doesn't like working with arrays covariantly.

Second, it fixes argument validation so that we throw an ArgumentNullException if the input array is null rather than NullReferenceException.

Third, it improves the performance of `GetSubArray` for the 95% common case where either `T` is a value type or the type of the array matches the `T` type specified.

* Only use `Array.Empty<T>` when `typeof(T[]) == array.GetType()`

5 years agoRemove exclusion for System.Threading.Tasks.Tests (#23818)
Vladimir Sadov [Tue, 9 Apr 2019 03:58:37 +0000 (20:58 -0700)]
Remove exclusion for System.Threading.Tasks.Tests (#23818)

* Update exclusion for System.Threading.Tasks.Tests

There is a race in the test, which causes failures in various stress runs. And that is not Linux specific.

The failure is addressed in https://github.com/dotnet/corefx/pull/36645
This is to update the exclusion lists to make it not just for Linux and to link to the fix PR, so that it could be tracked when it makes it into coreclr.

* Update corefx_test_exclusions.txt

* Update corefx_test_exclusions.txt

5 years agoMerge pull request #23739 from briansull/struct-cse
Brian Sullivan [Tue, 9 Apr 2019 01:04:29 +0000 (18:04 -0700)]
Merge pull request #23739 from briansull/struct-cse

Block the hoisting of TYP_STRUCT rvalues in loop hoisting

5 years agoMerge pull request #23752 from adityamandaleeka/arm64_clrww
Aditya Mandaleeka [Mon, 8 Apr 2019 23:18:36 +0000 (16:18 -0700)]
Merge pull request #23752 from adityamandaleeka/arm64_clrww

Enable CLR write watch for ARM64 Windows

5 years agoBlock the hoisting of TYP_STRUCT rvalues in loop hoisting
Brian Sullivan [Thu, 4 Apr 2019 20:42:27 +0000 (13:42 -0700)]
Block the hoisting of TYP_STRUCT rvalues in loop hoisting
Added test case GitHub_23739.cs

5 years agoMerge pull request #23814 from sandreenko/disableSystemIOTestsCorefx
Sergey Andreenko [Mon, 8 Apr 2019 22:06:52 +0000 (15:06 -0700)]
Merge pull request #23814 from sandreenko/disableSystemIOTestsCorefx

Diable CoreFX System.IO.Tests.dll on windows arm64.

5 years agoMerge pull request #23251 from mjsabby/largePagesInGC
Jan Vorlicek [Mon, 8 Apr 2019 20:48:20 +0000 (22:48 +0200)]
Merge pull request #23251 from mjsabby/largePagesInGC

Add Large pages support in GC

5 years agoMerge pull request #23813 from wtgodbe/PrevAgain
William Godbe [Mon, 8 Apr 2019 19:04:16 +0000 (12:04 -0700)]
Merge pull request #23813 from wtgodbe/PrevAgain

Re-update branding to preview5

5 years agoRemove the MultiFileSec option from EventPipe. (#23777)
José Rivero [Mon, 8 Apr 2019 18:54:19 +0000 (11:54 -0700)]
Remove the MultiFileSec option from EventPipe. (#23777)

This option was a pseudo mechanism to fake "streaming" events out-of-proc.
The idea was to have EventPipe creating files every N seconds, with event data up to that point. Thus, external processes could read these files in an attempt to get "read-time" data.
Now, we actually have streaming of event through IPC channels, so this option is not needed.

5 years agoMerge pull request #23715 from BruceForstall/FixArmStackProbing
Bruce Forstall [Mon, 8 Apr 2019 18:13:09 +0000 (11:13 -0700)]
Merge pull request #23715 from BruceForstall/FixArmStackProbing

Fix ARM32/ARM64 large frame stack probing

5 years agoAdd Large pages support in GC
Mukul Sabharwal [Fri, 29 Mar 2019 04:33:24 +0000 (21:33 -0700)]
Add Large pages support in GC

5 years agoDiable CoreFX System.IO.Tests.dll on windows arm64.
Sergey Andreenko [Mon, 8 Apr 2019 16:34:05 +0000 (09:34 -0700)]
Diable CoreFX System.IO.Tests.dll on windows arm64.

5 years agoRe-update branding to preview5
wtgodbe [Mon, 8 Apr 2019 16:28:55 +0000 (09:28 -0700)]
Re-update branding to preview5

5 years agoMerge pull request #23801 from sergiy-k/enabler2rtestingonunix
Sergiy Kuryata [Mon, 8 Apr 2019 15:07:07 +0000 (08:07 -0700)]
Merge pull request #23801 from sergiy-k/enabler2rtestingonunix

Enable running tests in the ReadyToRun mode on Linux on OSX

5 years ago[master] Update dependencies from dotnet/arcade (#23797)
dotnet-maestro[bot] [Mon, 8 Apr 2019 14:59:23 +0000 (10:59 -0400)]
[master] Update dependencies from dotnet/arcade (#23797)

* Update dependencies from https://github.com/dotnet/arcade build 20190406.5

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19206.5
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19206.5

* Update dependencies from https://github.com/dotnet/arcade build 20190407.1

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19207.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19207.1

5 years ago[master] Update dependencies from dotnet/corefx (#23798)
dotnet-maestro[bot] [Mon, 8 Apr 2019 14:59:11 +0000 (10:59 -0400)]
[master] Update dependencies from dotnet/corefx (#23798)

* Update dependencies from https://github.com/dotnet/corefx build 20190406.5

- Microsoft.NETCore.Platforms - 3.0.0-preview5.19206.5
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19206.5

* Update dependencies from https://github.com/dotnet/corefx build 20190408.1

- Microsoft.NETCore.Platforms - 3.0.0-preview5.19208.1
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19208.1

5 years agoMerge pull request #23605 from franksinankaya/gcc_cleanup_17
Jan Vorlicek [Mon, 8 Apr 2019 11:24:35 +0000 (13:24 +0200)]
Merge pull request #23605 from franksinankaya/gcc_cleanup_17

Fix conversion warning

5 years agoAllow reabstraction of default interface methods (#23313)
Michal Strehovský [Mon, 8 Apr 2019 11:14:39 +0000 (13:14 +0200)]
Allow reabstraction of default interface methods (#23313)

Allow the runtime to load types with incomplete interface implementations. With this change, we allow (in pseudo-C#):

```csharp
interface IFoo { void Frob() { } }
interface IBar : IFoo { abstract void IFoo.Frob() }
class Fooer : IBar { }
```

Calling IFoo.Frob on an instance of `Fooer` will result in new exception being thrown because the default implementation of `IFoo.Frob` was re-abstracted by `IBar`.

5 years agoUpdate CoreClr to preview5-27607-72 (#23799)
dotnet-maestro-bot [Mon, 8 Apr 2019 03:22:20 +0000 (20:22 -0700)]
Update CoreClr to preview5-27607-72 (#23799)

5 years agoEnable running tests in the ReadyToRun mode on Linux on OSX
Sergiy Kuryata [Sun, 7 Apr 2019 23:12:20 +0000 (16:12 -0700)]
Enable running tests in the ReadyToRun mode on Linux on OSX

5 years agoAdd Alpine.38.Arm64.Open Helix queue
Egor Chesakov [Wed, 3 Apr 2019 21:33:52 +0000 (14:33 -0700)]
Add Alpine.38.Arm64.Open Helix queue

5 years agoUpdate image coreclr uses for arm64 musl crossbuild
Egor Chesakov [Wed, 3 Apr 2019 21:30:58 +0000 (14:30 -0700)]
Update image coreclr uses for arm64 musl crossbuild

5 years agoFix two new nullable warnings with latest compiler
Stephen Toub [Sun, 7 Apr 2019 00:17:57 +0000 (20:17 -0400)]
Fix two new nullable warnings with latest compiler

5 years agoUpdate BuildTools, CoreClr to preview4-03906-01, preview5-27606-71, respectively
dotnet-maestro-bot [Sat, 6 Apr 2019 17:00:48 +0000 (10:00 -0700)]
Update BuildTools, CoreClr to preview4-03906-01, preview5-27606-71, respectively

5 years agoMerge pull request #23775 from sandreenko/reenableFixedCoreFX
Sergey Andreenko [Sun, 7 Apr 2019 04:00:29 +0000 (21:00 -0700)]
Merge pull request #23775 from sandreenko/reenableFixedCoreFX

Reenable System.Runtime.Tests. for arm64.

5 years agoNormalize directory separators before calling LoadLibrary (#23776)
Jeremy Koritzinsky [Sun, 7 Apr 2019 00:47:13 +0000 (17:47 -0700)]
Normalize directory separators before calling LoadLibrary (#23776)

* Normalize directory separators when loading native library via ALC.LoadUnmanagedDllFromPath

5 years agoRemove remaining devdocs and cleanup ComponentModel code (#23175)
Hugh Bellamy [Sun, 7 Apr 2019 00:17:01 +0000 (01:17 +0100)]
Remove remaining devdocs and cleanup ComponentModel code (#23175)

* Remove remaining devdocs and cleanup ComponentModel code

5 years agoMerge pull request #23781 from sergiy-k/addcrossgenforcoreroot1
Sergiy Kuryata [Sat, 6 Apr 2019 18:36:31 +0000 (11:36 -0700)]
Merge pull request #23781 from sergiy-k/addcrossgenforcoreroot1

Add crossgen option to build-test.sh

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190405.6 (#23784)
dotnet-maestro[bot] [Sat, 6 Apr 2019 18:07:01 +0000 (11:07 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190405.6 (#23784)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19205.6
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19205.6

5 years ago[master] Update dependencies from dotnet/corefx (#23785)
dotnet-maestro[bot] [Sat, 6 Apr 2019 18:06:17 +0000 (11:06 -0700)]
[master] Update dependencies from dotnet/corefx (#23785)

* Update dependencies from https://github.com/dotnet/corefx build 20190405.9

- Microsoft.NETCore.Platforms - 3.0.0-preview5.19205.9
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19205.9

*  System.Data.DataSetExtensions is not a package anymore

5 years agoMake GCToOSInterface::FlushProcessWriteBuffers use MEMBARRIER_CMD_PRIVATE_EXPEDITED...
Vladimir Sadov [Sat, 6 Apr 2019 13:34:12 +0000 (06:34 -0700)]
Make  GCToOSInterface::FlushProcessWriteBuffers use MEMBARRIER_CMD_PRIVATE_EXPEDITED if available (#23778)

Basically a port of  https://github.com/dotnet/coreclr/pull/20949   to  GCToOSInterface

5 years agoUpdate CoreClr to preview5-27605-73 (#23782)
dotnet-maestro-bot [Sat, 6 Apr 2019 13:31:53 +0000 (06:31 -0700)]
Update CoreClr to preview5-27605-73 (#23782)

5 years agoMatch PtrToStringUTF8 to the other PtrToString* families. (#23731)
Jeremy Koritzinsky [Sat, 6 Apr 2019 03:23:36 +0000 (20:23 -0700)]
Match PtrToStringUTF8 to the other PtrToString* families. (#23731)

* Match PtrToStringUTF8 to the other PtrToString* families.

* Make PtrToString*(IntPtr,int) exceptions consistent.

* Exclude out-of-date tests in CoreFX.

* Update exclusions to cover tests that are now throwing ArgumentOutOfRangeExceptions instead of ArgumentExceptions.

* Fix parameter order for exception.

* Pass value to exception.

5 years agoFix typo in Buffer.BlockCopy (#23636)
Egor Bogatov [Sat, 6 Apr 2019 01:48:16 +0000 (04:48 +0300)]
Fix typo in Buffer.BlockCopy (#23636)

5 years agoFix broken links (#23748)
Gergely Kalapos [Sat, 6 Apr 2019 01:47:18 +0000 (03:47 +0200)]
Fix broken links (#23748)

5 years agoAdd crossgen option to build-test.sh
Sergiy Kuryata [Sat, 6 Apr 2019 00:55:42 +0000 (17:55 -0700)]
Add crossgen option to build-test.sh
This option will cause the script to call crossgen to precompile the
managed assemblies in CORE_ROOT after generating layout.
Most of this code has been transferred from tests/bringup_runtest.sh.

5 years agoWIP Fix ARM32/ARM64 large frame stack probing
Bruce Forstall [Thu, 4 Apr 2019 06:23:39 +0000 (23:23 -0700)]
WIP Fix ARM32/ARM64 large frame stack probing

5 years agoFedora.28.Amd64 queue is dead. Use container instead (#23765)
Tomas Weinfurt [Fri, 5 Apr 2019 22:56:21 +0000 (15:56 -0700)]
Fedora.28.Amd64 queue is dead. Use container instead (#23765)

* Fedora.28.Amd64 queue is dead. Use container instead

* udpate ubuntu to Ubuntu

* do not escape () as rest of the coreclr does not do it either.

5 years agoReenable System.Runtime.Tests. for arm64.
Sergey Andreenko [Fri, 5 Apr 2019 22:14:42 +0000 (15:14 -0700)]
Reenable System.Runtime.Tests. for arm64.

5 years agoMerge pull request #23728 from briansull/FixConstByref
Brian Sullivan [Fri, 5 Apr 2019 21:48:13 +0000 (14:48 -0700)]
Merge pull request #23728 from briansull/FixConstByref

Fix for Issue #23538

5 years agoMerge pull request #23770 from wtgodbe/Preview5
William Godbe [Fri, 5 Apr 2019 21:46:53 +0000 (14:46 -0700)]
Merge pull request #23770 from wtgodbe/Preview5

Update branding to preview5

5 years agoReplacing some calls to GetThread with an inlined version (#23771)
Fadi Hanna [Fri, 5 Apr 2019 21:46:02 +0000 (14:46 -0700)]
Replacing some calls to GetThread with an inlined version (#23771)

5 years agoWhitespace (#23772)
Steve MacLean [Fri, 5 Apr 2019 21:10:09 +0000 (17:10 -0400)]
Whitespace (#23772)

5 years agoFix rounding to UINT32_MAX (#23764)
Ludovic Henry [Fri, 5 Apr 2019 21:07:57 +0000 (14:07 -0700)]
Fix rounding to UINT32_MAX (#23764)

In case you would have UINT32_MAX - 1 CPUs, you would round up to return UINT32_MAX CPUs.

5 years agoFix issue 23713: handle TypeDesc field handles (#23767)
Fadi Hanna [Fri, 5 Apr 2019 21:05:17 +0000 (14:05 -0700)]
Fix issue 23713: handle TypeDesc field handles (#23767)

5 years ago[master] Update dependencies from dotnet/arcade (#23718)
dotnet-maestro[bot] [Fri, 5 Apr 2019 21:04:57 +0000 (14:04 -0700)]
[master] Update dependencies from dotnet/arcade (#23718)

* Update dependencies from https://github.com/dotnet/arcade build 20190404.16

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19204.16
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19204.16

5 years agoUpdate CoreClr to preview4-27605-71 (#23710)
dotnet-maestro-bot [Fri, 5 Apr 2019 21:04:30 +0000 (14:04 -0700)]
Update CoreClr to preview4-27605-71 (#23710)

5 years ago[master] Update dependencies from dotnet/core-setup (#23719)
dotnet-maestro[bot] [Fri, 5 Apr 2019 21:04:10 +0000 (14:04 -0700)]
[master] Update dependencies from dotnet/core-setup (#23719)

* Update dependencies from https://github.com/dotnet/core-setup build 20190404.13

- Microsoft.NETCore.App - 3.0.0-preview4-27604-13

5 years agoUpdate the JIT to recognize the IsSupported property for all HWIntrinsics (#23751)
Tanner Gooding [Fri, 5 Apr 2019 20:58:18 +0000 (13:58 -0700)]
Update the JIT to recognize the IsSupported property for all HWIntrinsics (#23751)

* Moving some JITDUMP calls into Compiler::lookupNamedIntrinsic

* Marking the IsSupported methods as Intrinsic for all HWIntrinsic ISAs

* Updating the hwintrinsic importation to more generally handle IsSupported and ThrowPNSE

* Applying formatting patch.

* Adding using System.Runtime.CompilerServices to the various x86 PlatformNotSupported HWIntrinsic files

5 years agoEnable return buffers on Windows ARM64 for struct-returning member functions (#23625)
Jeremy Koritzinsky [Fri, 5 Apr 2019 19:52:00 +0000 (12:52 -0700)]
Enable return buffers on Windows ARM64 for struct-returning member functions (#23625)

* Enable return buffers on Windows ARM64 for struct-returning member functions. Fixes #23577.

* Update comment to match new condition.

* Enable byref return on all Windows (excluding arm64 HFA. Add more test cases for ThisCall.

* On x86, if we have a normalized return value in an instance method, get back the actual type so that we correctly marshal it via a return buffer.

* Fix param ordering.

* Clean up based on PR feedback.

* Fix accidental variable shadowing.

5 years agoUpdate branding to preview5
wtgodbe [Fri, 5 Apr 2019 19:45:25 +0000 (12:45 -0700)]
Update branding to preview5

5 years agoFix conversion warning
Sinan Kaya [Sat, 30 Mar 2019 14:14:20 +0000 (14:14 +0000)]
Fix conversion warning

5 years agoDon't null out references in Stream/BinaryReader/Writer (#23725)
Stephen Toub [Fri, 5 Apr 2019 18:30:28 +0000 (14:30 -0400)]
Don't null out references in Stream/BinaryReader/Writer (#23725)

These types null out some fields on Dispose, and some of those fields are accessible directly via exposed properties, which means that nulling them out would either force us to annotate those properties as being nullable or would require us to lie about them being nullable.  Nulling them out also makes it easier to accidentally null ref in the implementation, and prevents us from making the fields readonly.

It should be exceedingly rare that you dispose of one of these objects and then keep it alive while also being concerned about keeping alive the other helper objects the type uses.  So this change just uses a separate flag to track disposal, and avoids nulling out the fields, which is not a common practice elsewhere in the framework.

This will be a visible change in that after Dispose, properties like StreamWriter.BaseStream/Encoding will now return the stream/encoding rather than null.  In theory that could break someone if they were using those properties to determine whether the writer had been disposed, but that seems unlikely / similar fallout from most any bug fix, and objects generally aren't supposed to be touched after Dispose, anyway.

5 years agoChange the backing storage for Byref constants in ValueNumber-ing to use size_t.
Brian Sullivan [Thu, 4 Apr 2019 16:56:00 +0000 (09:56 -0700)]
Change the backing storage for Byref constants in ValueNumber-ing to use size_t.
Fixes #23538

5 years agoPartially improve support for `--cpus` from Docker CLI (#23747)
Ludovic Henry [Fri, 5 Apr 2019 16:42:47 +0000 (09:42 -0700)]
Partially improve support for `--cpus` from Docker CLI (#23747)

* Round up the value of the CPU limit

In the case where `--cpus` is set to a value very close to the smaller
integer (ex: 1.499999999), it would previously be rounded down. This
would mean that the runtime would only try to take advantage of 1 CPU in
this example, leading to underutilization.

By rounding it up, we augment the pressure on the OS threads scheduler,
but even in the worst case scenario (`--cpus=1.000000001` previously
being rounded to 1, now rounded to 2), we do not observe any
overutilization of the CPU leading to performance degradation.

* Teach the ThreadPool of CPU limits

By making sure we do take the CPU limits into account when computing the
CPU busy time, we ensure we do not have the various heuristic of the
threadpool competing with each other: one trying to allocate more
threads to increase the CPU busy time, and the other one trying to
allocate less threads because there adding more doesn't improve the
throughput.

Let's take the example of a system with 20 cores, and a docker container
with `--cpus=2`. It would mean the total CPU usage of the machine is
2000%, while the CPU limit is 200%. Because the OS scheduler would never
allocate more than 200% of its total CPU budget to the docker container,
the CPU busy time would never get over 200%. From `PAL_GetCpuBusyTime`,
this would indicate that we threadpool threads are mostly doing non-CPU
bound work, meaning we could launch more threads.

5 years agoFix invalid use of stack memory (#23758)
Aaron Robinson [Fri, 5 Apr 2019 16:28:48 +0000 (09:28 -0700)]
Fix invalid use of stack memory (#23758)

* Fix invalid use of stack memory

5 years agoRevert optimization (#23759)
Grant [Fri, 5 Apr 2019 14:02:23 +0000 (07:02 -0700)]
Revert optimization (#23759)

5 years agoDisable marshalling delegates as _Delegate and enable marshalling delegates as IDispa...
Jeremy Koritzinsky [Fri, 5 Apr 2019 05:56:56 +0000 (22:56 -0700)]
Disable marshalling delegates as _Delegate and enable marshalling delegates as IDispatch. (#23738)

* Disable marshalling delegates as _Delegate and enable marshalling delegates as IDispatch.

* ifdef out the new IDispatch marshalling on non-COM-supporting platforms.

* PR feedback.

5 years agoImprove performance of Memory<T>.Span property getter (#23750)
Levi Broderick [Fri, 5 Apr 2019 05:46:23 +0000 (22:46 -0700)]
Improve performance of Memory<T>.Span property getter (#23750)

5 years agoDisable a couple of S.R.InteropServices tests (#23697)
Koundinya Veluri [Fri, 5 Apr 2019 04:52:38 +0000 (21:52 -0700)]
Disable a couple of S.R.InteropServices tests (#23697)

Disabled the two tests that were fixed in PR https://github.com/dotnet/corefx/pull/34968

5 years agoMerge pull request #23633 from dotnet/NullableFeature
Santiago Fernandez Madero [Fri, 5 Apr 2019 04:47:31 +0000 (21:47 -0700)]
Merge pull request #23633 from dotnet/NullableFeature

Nullable feature into master

5 years agoFix Debug.Assert in GenericDelegateCache (#23755)
Santiago Fernandez Madero [Fri, 5 Apr 2019 01:38:02 +0000 (18:38 -0700)]
Fix Debug.Assert in GenericDelegateCache (#23755)

5 years agoFix SystemV AMD64 Explicit structure classification (#22041)
Jeremy Koritzinsky [Fri, 5 Apr 2019 01:37:57 +0000 (18:37 -0700)]
Fix SystemV AMD64 Explicit structure classification (#22041)

* Don't bail out on enregistering explicit structs if there are no overlapping fields.

* Don't enregister if any unaligned fields.

* Enable passing explicit structs by-value by enregistering on systemv. Some edge cases are likely still broken, but just removing our blanket opt-out makes the current tests pass.

* Enable MarshalstructAsLayoutExp off-Windows.

* Start adding additional tests for explicit layout to try to catch edge cases in SystemV classification.

* Added a test that spans across multiple eightbytes and has an overlap in the second eightbyte.

* Change repro to use an array of floats and an int field in managed and use a float array for padding in native to force an SSE classification on the first byte.

* New algorithm to calculate eightbyte classification by going throw the structure byte-by-byte instead of field-by-field.

* Fix updating eightbyte classifications in the loop to actually used the iterated-upon variable.

* Consider each element of a fixed array as a separate field (to match native implementations).

* Implement correct SystemV classification for fixed buffers in non-blittable structures. Fixed buffers in blittable structures have the managed layout assign classifications, which still is buggy.

* Add tests.

* Correctly classify blittable fixed buffers. Move "is this field a fixed buffer" tracking into one of the unused bits in FieldDesc as code that isn't in marshalers needs to know about it.

* Handle the case where we have a struct that has no fields in an eightbyte that contains (i.e. no fields in the first eight bytes of the structure).

* PR feedback.

* Only look up FixedBufferAttribute when the type is a value class and the type of the field is a value type.

* Use heuristic to determine if a type is a fixed buffer for SystemV classification.

* Revert tracking if a field is a fixed buffer in the FieldDesc.

* Update comments.

* Classify aligned, nonoverlapping, float/double only structures as HFAs even if explicitly laid out

* Enable overlapping fields in HFAs. Update NativeType HFA to check for alignment.

I checked Godbolt to verify that HFAs for overlapping fields are allowed.

* Add HFA tests.

* Fix compile errors from HFA alignment check.

* Non-valuetypes will never have their managed layout used to classify SystemV eightbytes.

* Don't classify a struct with no zero-offset field as an HFA.

* Remove duplicate semicolon.

* PR feedback.

* Add test with 2-field double HFA.

* Clean up and add static asserts for struct size.

* Add define for static_assert_no_msg to the native test headers

* Fix build breaks.

* Remove unneeded "size = X bytes" comments. They were holdovers from the .NET Framework test tree.

* Use GetNumInstanceFieldBytes instead of GetLayoutInfo()->GetManagedSize()

* Fix build break.

* Centralize FieldMarshaler offsettting in ClassifyEightBytesWithNativeLayout.

* Fix signed/unsigned mismatch

* Fix condition to also detect arm64.

* Change ifdef to if defined.

* Remove duplicate declaration (broken in rebase)

* Add some logging in one of the unreproable OSX test failures.

* Mark System.Numerics.Vector as intrinsic and don't use the eightbyte classifier to enregister it.

* Also explicitly opt-out of HFAs for System.Numerics.Vector`1 for consistency.

* Update R2R required version to 3.0.

* Remove debugging prints.

5 years agoMerge pull request #23537 from janvorli/remove-gc-cpu-group-knowledge
Jan Vorlicek [Thu, 4 Apr 2019 22:36:34 +0000 (00:36 +0200)]
Merge pull request #23537 from janvorli/remove-gc-cpu-group-knowledge

Remove CPU groups notion from the gc.cpp

5 years agoMerge pull request #23735 from safern/merge-master-nullable
Stephen Toub [Thu, 4 Apr 2019 20:19:55 +0000 (16:19 -0400)]
Merge pull request #23735 from safern/merge-master-nullable

Pull master changes into NullableFeature