platform/upstream/dotnet/runtime.git
6 years agoMoves Stream to shared location (dotnet/coreclr#18142)
Marek Safar [Fri, 1 Jun 2018 03:57:00 +0000 (05:57 +0200)]
Moves Stream to shared location (dotnet/coreclr#18142)

* Moves Stream to shared location

* Review tweaks

* Add NotImplementedException for SyncStream due to https://github.com/dotnet/corert/issues/3251

Commit migrated from https://github.com/dotnet/coreclr/commit/95ae6621b1c7f176b518ad819f6eccd469e91ea1

6 years agoFix SpanHelpers.ClearWithoutReferences alignment detection (dotnet/coreclr#18222)
Pent Ploompuu [Fri, 1 Jun 2018 03:02:45 +0000 (06:02 +0300)]
Fix SpanHelpers.ClearWithoutReferences alignment detection (dotnet/coreclr#18222)

Commit migrated from https://github.com/dotnet/coreclr/commit/48cb3fa29a63219a9669ae012eefca0bf5ce0091

6 years agoMerge pull request dotnet/coreclr#18220 from sdmaclea/PR-HasPendingGCStressInstructio...
Bruce Forstall [Fri, 1 Jun 2018 00:07:34 +0000 (17:07 -0700)]
Merge pull request dotnet/coreclr#18220 from sdmaclea/PR-HasPendingGCStressInstructionUpdate

Fix HasPendingGCStressInstructionUpdate CONSISTENCY_CHECK

Commit migrated from https://github.com/dotnet/coreclr/commit/9c9cff0541e649cfa720c84d21aa9ec7a6508633

6 years agoArm stepping fixes (dotnet/coreclr#18129)
Chris Sienkiewicz [Fri, 1 Jun 2018 00:04:59 +0000 (17:04 -0700)]
Arm stepping fixes (dotnet/coreclr#18129)

* Ensure thumb bit is set when initializing a code region.
* Use macro rather than manually setting thumb bit in debugger.cpp
* Ensure thumb bit is set when calling FindOrCreateInitAndAddJitInfo.
* Add an assert to FindOrCreateInitAndAddJitInfo when on arm to ensure the thumb bit is set

Commit migrated from https://github.com/dotnet/coreclr/commit/b1fe0eff86c82def0785689dc1a9002a8d899bea

6 years agoAdd additional features to SOS DumpAsync command (dotnet/coreclr#18213)
Stephen Toub [Thu, 31 May 2018 21:09:41 +0000 (17:09 -0400)]
Add additional features to SOS DumpAsync command (dotnet/coreclr#18213)

1. Computing GC roots is a relatively slow operation, and doing it for every state machine object found in a large heap can be time consuming.  Making it opt-in with -roots command-line flag.

2. Added -waiting command-line flag.  DumpAsync will now retrieve the <>1__state field from the StateMachine, and if -waiting is specified, it'll filter down to state machines that have a state value >= 0, meaning the state machines are waiting at an await point.  For example, given this program:
```C#
using System.Threading.Tasks;
class Program
{
    static async Task Main() { await MethodA(0); await MethodA(int.MaxValue); }
    static async Task MethodA(int delay) => await MethodB(delay);
    static async Task MethodB(int delay) { await Task.Yield(); await Task.Delay(delay); }
}
```
using `!DumpAsync` outputs:
```
         Address               MT     Size Name
dotnet/coreclr#0
0000026848693438 00007ff88ea35e58      120  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodB>d__2, test]]
StateMachine: Program+<MethodB>d__2 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000008        0         System.Int32  1 instance               -2 <>1__state
00007ff8e9bd82f8  4000009        8 ...TaskMethodBuilder  1 instance 0000026848693490 <>t__builder
00007ff8e9bc4bc0  400000a        4         System.Int32  1 instance                0 delay
00007ff8e9bee4d0  400000b       10 ...able+YieldAwaiter  1 instance 0000026848693498 <>u__1
00007ff8e9bcead0  400000c       18 ...vices.TaskAwaiter  1 instance 00000268486934a0 <>u__2
Continuation: 00000268486934b0 (System.Object)

dotnet/coreclr#1
0000026848693e68 00007ff88ea36cc8      112  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodA>d__1, test]]
StateMachine: Program+<MethodA>d__1 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000004        0         System.Int32  1 instance               -2 <>1__state
00007ff8e9bd82f8  4000005        8 ...TaskMethodBuilder  1 instance 0000026848693ec0 <>t__builder
00007ff8e9bc4bc0  4000006        4         System.Int32  1 instance                0 delay
00007ff8e9bcead0  4000007       10 ...vices.TaskAwaiter  1 instance 0000026848693ec8 <>u__1
Continuation: 00000268486934b0 (System.Object)

dotnet/coreclr#2
0000026848693ed8 00007ff88ea37188      112  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<Main>d__0, test]]
StateMachine: Program+<Main>d__0 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000001        0         System.Int32  1 instance                1 <>1__state
00007ff8e9bd82f8  4000002        8 ...TaskMethodBuilder  1 instance 0000026848693f30 <>t__builder
00007ff8e9bcead0  4000003       10 ...vices.TaskAwaiter  1 instance 0000026848693f38 <>u__1
Continuation: 0000026848693f48 (System.Threading.Tasks.Task+SetOnInvokeMres)

dotnet/coreclr#3
0000026848695d30 00007ff88ea35e58      120  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodB>d__2, test]]
StateMachine: Program+<MethodB>d__2 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000008        0         System.Int32  1 instance                1 <>1__state
00007ff8e9bd82f8  4000009        8 ...TaskMethodBuilder  1 instance 0000026848695d88 <>t__builder
00007ff8e9bc4bc0  400000a        4         System.Int32  1 instance       2147483647 delay
00007ff8e9bee4d0  400000b       10 ...able+YieldAwaiter  1 instance 0000026848695d90 <>u__1
00007ff8e9bcead0  400000c       18 ...vices.TaskAwaiter  1 instance 0000026848695d98 <>u__2
Continuation: 0000026848695dd0 (System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodA>d__1, test]])

dotnet/coreclr#4
0000026848695dd0 00007ff88ea36cc8      112  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodA>d__1, test]]
StateMachine: Program+<MethodA>d__1 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000004        0         System.Int32  1 instance                0 <>1__state
00007ff8e9bd82f8  4000005        8 ...TaskMethodBuilder  1 instance 0000026848695e28 <>t__builder
00007ff8e9bc4bc0  4000006        4         System.Int32  1 instance       2147483647 delay
00007ff8e9bcead0  4000007       10 ...vices.TaskAwaiter  1 instance 0000026848695e30 <>u__1
Continuation: 0000026848693ed8 (System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<Main>d__0, test]])

Found 5 state machines.
```
while using `!DumpAsync -waiting` outputs only:
```
         Address               MT     Size Name
dotnet/coreclr#0
0000026848693ed8 00007ff88ea37188      112  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<Main>d__0, test]]
StateMachine: Program+<Main>d__0 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000001        0         System.Int32  1 instance                1 <>1__state
00007ff8e9bd82f8  4000002        8 ...TaskMethodBuilder  1 instance 0000026848693f30 <>t__builder
00007ff8e9bcead0  4000003       10 ...vices.TaskAwaiter  1 instance 0000026848693f38 <>u__1
Continuation: 0000026848693f48 (System.Threading.Tasks.Task+SetOnInvokeMres)

dotnet/coreclr#1
0000026848695d30 00007ff88ea35e58      120  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodB>d__2, test]]
StateMachine: Program+<MethodB>d__2 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000008        0         System.Int32  1 instance                1 <>1__state
00007ff8e9bd82f8  4000009        8 ...TaskMethodBuilder  1 instance 0000026848695d88 <>t__builder
00007ff8e9bc4bc0  400000a        4         System.Int32  1 instance       2147483647 delay
00007ff8e9bee4d0  400000b       10 ...able+YieldAwaiter  1 instance 0000026848695d90 <>u__1
00007ff8e9bcead0  400000c       18 ...vices.TaskAwaiter  1 instance 0000026848695d98 <>u__2
Continuation: 0000026848695dd0 (System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodA>d__1, test]])

dotnet/coreclr#2
0000026848695dd0 00007ff88ea36cc8      112  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodA>d__1, test]]
StateMachine: Program+<MethodA>d__1 (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000004        0         System.Int32  1 instance                0 <>1__state
00007ff8e9bd82f8  4000005        8 ...TaskMethodBuilder  1 instance 0000026848695e28 <>t__builder
00007ff8e9bc4bc0  4000006        4         System.Int32  1 instance       2147483647 delay
00007ff8e9bcead0  4000007       10 ...vices.TaskAwaiter  1 instance 0000026848695e30 <>u__1
Continuation: 0000026848693ed8 (System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<Main>d__0, test]])

Found 3 state machines.
```
skipping the two state machines that have a `<>1__state` field value of -2 (meaning it's completed).  Note that this change has the somewhat unfortunate impact of taking a dependency on what's effectively an implementation detail of Roslyn, but the value the filtering provides is deemed to be worth it.  This design is unlikely to change in the future, and as with other diagnostic/debugging features that rely on such details, it can be updated if Roslyn ever changes its scheme.  In the meantime, the code will output a warning message if it can't find the state field.

3. If a state machine is found to have 0 roots but also to have a <>1__state value >= 0, that suggests it was dropped without having been completed, which is likely a sign of an application bug.  The command now prints out an information message to highlight that state.  For example, this program:
```C#
using System;
using System.Threading.Tasks;
class Program
{
    static void Main()
    {
        Task.Run(async () => await new TaskCompletionSource<bool>().Task);
        Console.ReadLine();
    }
}
```
when processed with `!DumpAsync -roots` results in:
```
         Address               MT     Size Name
dotnet/coreclr#0
0000020787fb5b30 00007ff88ea1afe8      112  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Boolean, System.Private.CoreLib],[Program+<>c+<<Main>b__0_0>d, test]]
StateMachine: Program+<>c+<<Main>b__0_0>d (struct)
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8e9bc4bc0  4000003        0         System.Int32  1 instance                0 <>1__state
00007ff8e9bd0b88  4000004        8 ...Private.CoreLib]]  1 instance 0000020787fb5b88 <>t__builder
00007ff8e9bffd58  4000005       10 ...Private.CoreLib]]  1 instance 0000020787fb5b90 <>u__1
Continuation: 0000020787fb3fc8 (System.Threading.Tasks.UnwrapPromise`1[[System.Boolean, System.Private.CoreLib]])
GC roots:
Incomplete state machine (<>1__state == 0) with 0 roots.

Found 1 state machines.
```

Commit migrated from https://github.com/dotnet/coreclr/commit/5a55932985506f0fb88e6329621aa6c01ec4dc38

6 years agoFix number formatting exception with empty NumberGroupSizes array (dotnet/coreclr...
Stephen Toub [Thu, 31 May 2018 21:08:55 +0000 (17:08 -0400)]
Fix number formatting exception with empty NumberGroupSizes array (dotnet/coreclr#18221)

Commit migrated from https://github.com/dotnet/coreclr/commit/2a2f7af391f67c9b289456e4b5763308ed2a1b74

6 years ago[Arm64] Implement genZeroInitFltRegs for float (dotnet/coreclr#18200)
Steve MacLean [Thu, 31 May 2018 20:58:03 +0000 (16:58 -0400)]
[Arm64] Implement genZeroInitFltRegs for float (dotnet/coreclr#18200)

Commit migrated from https://github.com/dotnet/coreclr/commit/421acb509443477564f3b3e80a3a6cb91aa532f9

6 years agoAdd test case for optimized box vector assert (dotnet/coreclr#18163)
Andy Ayers [Thu, 31 May 2018 19:25:22 +0000 (12:25 -0700)]
Add test case for optimized box vector assert (dotnet/coreclr#18163)

Test case for issue dotnet/coreclr#18043 was left out of dotnet/coreclr#18046. Adding it now.

Commit migrated from https://github.com/dotnet/coreclr/commit/2ff2c6e4337eb2dfcb149b6649befa9f82ccf372

6 years agoMerge pull request dotnet/coreclr#18191 from BruceForstall/RemoveUnusedDefines
Bruce Forstall [Thu, 31 May 2018 19:21:36 +0000 (12:21 -0700)]
Merge pull request dotnet/coreclr#18191 from BruceForstall/RemoveUnusedDefines

Remove unused defines

Commit migrated from https://github.com/dotnet/coreclr/commit/4892ee7f1b6b97feb1c368b2371d2e790a499b83

6 years agoSupport new Japanese calendar eras (dotnet/coreclr#18209)
Tarek Mahmoud Sayed [Thu, 31 May 2018 17:31:11 +0000 (10:31 -0700)]
Support new Japanese calendar eras (dotnet/coreclr#18209)

Japan is going to introduce the new era next year 2019, this new era will be added to the Japanese calendar. This new era would affect anyone converting, formatting or parsing dates using the Japanese calendar.
Users who formatted future dates before introducing the new era and then try to parse these dates after introducing the new era will fail and get parsing exception. The reason is the year number will not be valid in the old era anymore because the new era set a year limit to the old era.

Here is an example:

Format a date like "平成 32年2月1日" which saying year 32 in the era "平成". after we introduce the new era, the old era "平成" will be limited up to and including year 31 so year 32 is exceeding the era end.

The fix is to allow the parser succeeds with such dates and have a config switch which can be used to for anyone want the old behavior.

Commit migrated from https://github.com/dotnet/coreclr/commit/378b666a30c07937ef19ecead82e353359090245

6 years agoFix HasPendingGCStressInstructionUpdate CONSISTENCY_CHECK
Steve MacLean [Thu, 31 May 2018 16:50:12 +0000 (12:50 -0400)]
Fix HasPendingGCStressInstructionUpdate CONSISTENCY_CHECK

Commit migrated from https://github.com/dotnet/coreclr/commit/6b012555a809af12a7944fe013e82dedb3f1a609

6 years agoMoving MissingFieldException (fully) and MissingMethodException (partially) to shared...
Maryam Ariyan [Thu, 31 May 2018 02:55:47 +0000 (19:55 -0700)]
Moving MissingFieldException (fully) and MissingMethodException (partially) to shared (dotnet/coreclr#18207)

Commit migrated from https://github.com/dotnet/coreclr/commit/5d8cdfe45b8f3c68f6a9f1c0679f941b506f6757

6 years agoExpose Exception.set_HResult as Public (dotnet/coreclr#18203)
Luqun Lou [Thu, 31 May 2018 02:37:50 +0000 (19:37 -0700)]
Expose Exception.set_HResult as Public (dotnet/coreclr#18203)

* Expose Exception.set_HResult as Public

* Remove internal Exception.SetErrorCode

Commit migrated from https://github.com/dotnet/coreclr/commit/b1e39a871872acfcd883d510b8660ddeb8773548

6 years agoMerge pull request dotnet/coreclr#18173 from sdmaclea/PR-FIX-GCSTRESS-ASSERTION
Bruce Forstall [Wed, 30 May 2018 22:21:27 +0000 (15:21 -0700)]
Merge pull request dotnet/coreclr#18173 from sdmaclea/PR-FIX-GCSTRESS-ASSERTION

Fix GCStress assertion

Commit migrated from https://github.com/dotnet/coreclr/commit/aa100c5945134260010be0d41e95ad5b05eabebf

6 years agoRemove unused defines
Bruce Forstall [Wed, 30 May 2018 00:31:03 +0000 (17:31 -0700)]
Remove unused defines

More fallout from removing `LEGACY_BACKEND`.

Commit migrated from https://github.com/dotnet/coreclr/commit/f3035058b2bff1db9b3a968959842e6febcd6740

6 years agoInline Span.CopyTo (dotnet/coreclr#18006)
Ben Adams [Wed, 30 May 2018 18:03:04 +0000 (19:03 +0100)]
Inline Span.CopyTo (dotnet/coreclr#18006)

Commit migrated from https://github.com/dotnet/coreclr/commit/86c438de4043359942f3e0f46c55fdaa98dc5b2f

6 years agoImprove the labeling of .NET Threads. (dotnet/coreclr#18193)
Vance Morrison [Wed, 30 May 2018 12:38:21 +0000 (05:38 -0700)]
Improve the labeling of .NET Threads. (dotnet/coreclr#18193)

There was already some support for labeling threads using the Window SetThreadDescription API, however it was missing some important cases (like labeling the ThreadPool and GC server and Background threads).   Fix this.   Also make the naming consistant (they all start with .NET).

These names show up in PerfView traces and can be used by debuggers or other profilers as well.

Commit migrated from https://github.com/dotnet/coreclr/commit/3148a6dd0a1999cbb987b12de2368a7c0b09077e

6 years agoMoves ArraySortHelper common code to shared location (dotnet/coreclr#18125)
Marek Safar [Wed, 30 May 2018 12:37:36 +0000 (14:37 +0200)]
Moves ArraySortHelper common code to shared location (dotnet/coreclr#18125)

Commit migrated from https://github.com/dotnet/coreclr/commit/4445c056a4a1fa23dc18674b3719d78c38435f06

6 years agoAdd sos DumpAsync command (dotnet/coreclr#18160)
Stephen Toub [Wed, 30 May 2018 02:53:56 +0000 (22:53 -0400)]
Add sos DumpAsync command (dotnet/coreclr#18160)

Debugging async methods with sos can be time consuming and relies on knowing how to use dumpheap, dumpvc, gcroot, and other commands to get the desired information, while often digging through a myriad of objects on the heap to find the desired info.

This commit adds a new DumpAsync command, which finds the async state machine objects on the GC heap and outputs relevant information about each, including the fields of its state machine, any registered continuation, and GC roots for the state machine object (as they often serve as a valid substitute for call stacks).

Example program used as a test:
```C#
using System.Threading.Tasks;

class Program
{
    static async Task Main() => await MethodA();
    static async Task MethodA() => await MethodB();
    static async Task MethodB() => await MethodC();
    static async Task MethodC() => await MethodD();
    static async Task MethodD() => await Task.Delay(int.MaxValue);
}
```
and example command output:
```
0:011> !DumpAsync -type MethodD
         Address               MT     Size Name
000001989f413de0 00007ff88c506ba8      112  System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodD>d__4, test]]
StateMachine: Program+<MethodD>d__4
              MT    Field   Offset                 Type VT     Attr            Value Name
00007ff8d3df4b80  400000d        0         System.Int32  1 instance                0 <>1__state
00007ff8d3e082c0  400000e        8 ...TaskMethodBuilder  1 instance 000001989f413e38 <>t__builder
00007ff8d3dfea90  400000f       10 ...vices.TaskAwaiter  1 instance 000001989f413e40 <>u__1
Continuation: 000001989f413e50 (System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodC>d__3, test]])
GC roots:
    Thread 2936c:
        000000071a37e050 00007ff8d3ac1657 System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken) [d:\repos\coreclr\src\System.Private.CoreLib\src\System\Threading\Tasks\Task.cs @ 2977]
            rbp+10: 000000071a37e0c0
                ->  000001989f413fa0 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<Main>d__0, test]]
                ->  000001989f413f30 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodA>d__1, test]]
                ->  000001989f413ec0 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodB>d__2, test]]
                ->  000001989f413e50 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodC>d__3, test]]
                ->  000001989f413de0 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodD>d__4, test]]

    HandleTable:
        000001989d8415f8 (pinned handle)
        -> 00000198af3e1038 System.Object[]
        -> 000001989f413410 System.Threading.TimerQueue[]
        -> 000001989f413468 System.Threading.TimerQueue
        -> 000001989f413330 System.Threading.TimerQueueTimer
        -> 000001989f412e40 System.Threading.Tasks.Task+DelayPromise
        -> 000001989f413de0 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[Program+<MethodD>d__4, test]]

Found 1 state machines.
```

Commit migrated from https://github.com/dotnet/coreclr/commit/a9c56e2800da681a84cb68f9836ba7e9a7ea76c5

6 years agoMerge pull request dotnet/coreclr#18118 from sdmaclea/PR-ARM64-compFloatingPointUsed
Carol Eidt [Wed, 30 May 2018 00:11:17 +0000 (17:11 -0700)]
Merge pull request dotnet/coreclr#18118 from sdmaclea/PR-ARM64-compFloatingPointUsed

[Arm64] Set compFloatingPointUsed for SIMD HWIntrincsics

Commit migrated from https://github.com/dotnet/coreclr/commit/7fb85cf3c1afe9be82fa8bfbac2305dfb2d5bd16

6 years agoUpdate BuildTools to preview1-02829-01 (dotnet/coreclr#18171)
dotnet-maestro-bot [Tue, 29 May 2018 23:13:48 +0000 (16:13 -0700)]
Update BuildTools to preview1-02829-01 (dotnet/coreclr#18171)

Commit migrated from https://github.com/dotnet/coreclr/commit/e1bbc700cbd8dd2b66a52cb685e2b83609b7eddf

6 years agoMoving common logic of StackFrame into shared (dotnet/coreclr#18134)
Maryam Ariyan [Tue, 29 May 2018 23:13:13 +0000 (16:13 -0700)]
Moving common logic of StackFrame into shared (dotnet/coreclr#18134)

Related to: dotnet/coreclr#9474

Commit migrated from https://github.com/dotnet/coreclr/commit/98c22a44ceab4f54607df65ef200e7bf7acb6145

6 years agoFix GCStress assertion
Steve MacLean [Tue, 29 May 2018 17:35:03 +0000 (13:35 -0400)]
Fix GCStress assertion

Commit migrated from https://github.com/dotnet/coreclr/commit/26f72749eda9bc7f800f09218cc04fe991d65dd9

6 years agoMerge pull request dotnet/coreclr#18127 from CarolEidt/StructAbiDoc
Carol Eidt [Tue, 29 May 2018 19:01:36 +0000 (12:01 -0700)]
Merge pull request dotnet/coreclr#18127 from CarolEidt/StructAbiDoc

Design doc for struct passing

Commit migrated from https://github.com/dotnet/coreclr/commit/fc8b1560a4d2bfaaa981764d72cf67371fa82341

6 years agoDesign doc for struct passing
Carol Eidt [Fri, 25 May 2018 17:53:18 +0000 (10:53 -0700)]
Design doc for struct passing

Commit migrated from https://github.com/dotnet/coreclr/commit/2950f8fcc711abe5be8e5bef20c8de19ef50143f

6 years agoamend call (dotnet/coreclr#18159)
Marco Rossignoli [Tue, 29 May 2018 18:11:25 +0000 (20:11 +0200)]
amend call (dotnet/coreclr#18159)

Commit migrated from https://github.com/dotnet/coreclr/commit/208ea16c870cc2b60682d721bd4ce78db14a2805

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26529-04, preview1-26529-04, master-20180...
dotnet-maestro-bot [Tue, 29 May 2018 16:00:34 +0000 (09:00 -0700)]
Update CoreClr, CoreFx, PgoData to preview1-26529-04, preview1-26529-04, master-20180529-0053, respectively (dotnet/coreclr#18139)

Commit migrated from https://github.com/dotnet/coreclr/commit/afbd6ec73b59447b53796ab30f2c74fcd69eb066

6 years agoBOTR: Ensure generic params/args are rendered properly (dotnet/coreclr#18140)
stakx [Mon, 28 May 2018 15:25:14 +0000 (17:25 +0200)]
BOTR: Ensure generic params/args are rendered properly (dotnet/coreclr#18140)

* BOTR: Ensure generic params/args are rendered properly

* Use inline code formatting for managed code

* Use inline code formatting for unmanaged code

Commit migrated from https://github.com/dotnet/coreclr/commit/3c4aa12471b0b94634678fa51e97bd7f43396e80

6 years agoTypo (dotnet/coreclr#18141)
John Doe [Sun, 27 May 2018 14:34:51 +0000 (07:34 -0700)]
Typo (dotnet/coreclr#18141)

* Ajusted -> Adjusted

* alot -> a lot

* Ambigous -> Ambiguous

* amoun -> amount

* amoung -> among

* Amperstand -> Ampersand

* Anbody -> Anybody

* anddoens't ->  and doesn't

* anme -> name

* annoations -> annotations

* annother -> another

* anothr -> another

* ansynchronous -> asynchronous

* anticpation -> anticipation

* anway -> anyway

* aother -> another

* Apparant -> Apparent

* appartment -> apartment

* appdmomain -> appdomain

* Appdomian -> Appdomain

* appdomin -> appdomain

* approproiate -> appropriate

* approprate -> appropriate

* approp -> appropriate

* appened -> appended

* appropiately -> appropriately

* appropraitely -> appropriately

* Apperantly -> Apparently

* approp. -> appropriate

* Approriate -> Appropriate

Commit migrated from https://github.com/dotnet/coreclr/commit/6bf04a47badd74646e21e70f4e9267c71b7bfd08

6 years agoUpdate CoreClr, CoreFx to preview1-26526-01, preview1-26526-01, respectively (dotnet...
dotnet-maestro-bot [Sat, 26 May 2018 06:35:32 +0000 (23:35 -0700)]
Update CoreClr, CoreFx to preview1-26526-01, preview1-26526-01, respectively (dotnet/coreclr#18135)

Commit migrated from https://github.com/dotnet/coreclr/commit/59f07a0c2d30bb7da1308a061d197afb8691e229

6 years agoUpdating the compiler to not enable FMA if the global AVX flag is disabled.
Tanner Gooding [Thu, 24 May 2018 17:10:28 +0000 (10:10 -0700)]
Updating the compiler to not enable FMA if the global AVX flag is disabled.

Commit migrated from https://github.com/dotnet/coreclr/commit/8db778b54af3abd1b8b08b02515227a51b11e348

6 years agoAdding tests for the FMA hardware intrinsics.
Tanner Gooding [Sun, 20 May 2018 20:10:38 +0000 (13:10 -0700)]
Adding tests for the FMA hardware intrinsics.

Commit migrated from https://github.com/dotnet/coreclr/commit/65f17b21c7dd299fd44fb3756438b5550d9db748

6 years agoUpdating the JIT to handle the FMA hardware intrinsics.
Tanner Gooding [Wed, 23 May 2018 18:20:29 +0000 (11:20 -0700)]
Updating the JIT to handle the FMA hardware intrinsics.

Commit migrated from https://github.com/dotnet/coreclr/commit/5fc7dd5917d9e0d2345023a87f73a32c2ebfdbe8

6 years agoAdd mixed-mode Book of the Runtime entry (dotnet/coreclr#18014)
Morgan Brown [Fri, 25 May 2018 23:00:44 +0000 (16:00 -0700)]
Add mixed-mode Book of the Runtime entry (dotnet/coreclr#18014)

* Add mixed-mode Book of the Runtime entry

Documents how mixed-mode assemblies are specified and work in general.

Commit migrated from https://github.com/dotnet/coreclr/commit/6977efd6b2a7b2d79479ac461da33b6512a72f90

6 years agodelete unused variables from jit (dotnet/coreclr#18121)
Sergey Andreenko [Fri, 25 May 2018 22:02:20 +0000 (15:02 -0700)]
delete unused variables from jit (dotnet/coreclr#18121)

Commit migrated from https://github.com/dotnet/coreclr/commit/b4a869246b892ec8f513a6a0c9a5ea3d6755383c

6 years agoMerge pull request dotnet/coreclr#18126 from CarolEidt/FixSuperPmi
Carol Eidt [Fri, 25 May 2018 21:59:05 +0000 (14:59 -0700)]
Merge pull request dotnet/coreclr#18126 from CarolEidt/FixSuperPmi

Check SuperPmi map for null

Commit migrated from https://github.com/dotnet/coreclr/commit/eefd8d7805eb7f984449b88f48e27b11a06fcaba

6 years agoCheck SuperPmi map for null
Carol Eidt [Fri, 25 May 2018 17:30:46 +0000 (10:30 -0700)]
Check SuperPmi map for null

On Linux, calling an instance method with a null `this` pointer causes a seg fault.
This fixes the case of querying the `CanInlineTypeCheckWithObjectVTable` map in SuperPmi when no query has been recorded by `recCanInlineTypeCheckWithObjectVTable`. There appear to be other cases of this, but this is the one that I'm running into currently.

Commit migrated from https://github.com/dotnet/coreclr/commit/f05efe953681375384577dcc77e488c4800715f1

6 years agoUpdate CoreClr, PgoData to preview1-26525-04, master-20180525-0042, respectively...
dotnet-maestro-bot [Fri, 25 May 2018 15:17:50 +0000 (08:17 -0700)]
Update CoreClr, PgoData to preview1-26525-04, master-20180525-0042, respectively (dotnet/coreclr#18124)

Commit migrated from https://github.com/dotnet/coreclr/commit/f5bf3056389b7b6a7269921873bcbbd9b6f8c441

6 years agoTypo (dotnet/coreclr#18122)
John Doe [Fri, 25 May 2018 06:22:42 +0000 (23:22 -0700)]
Typo (dotnet/coreclr#18122)

* acquringing -> acquiring

* Activ -> Active

* activley -> actively

* acutal -> actual

* bIncomingIPAdddefed -> bIncomingIPAddRefed

* adddr -> addr

* readding -> reading

* Addfunction -> AddFunction

* additionnal -> additional

* Additonal -> Additional

* Additonally -> Additionally

* Addresss -> Address

* addtion -> addition

* aded -> added

* aditional -> additional

* adjustements -> adjustments

* Adress -> Address

* afer -> after

* aformentioned -> aforementioned

* afte -> after

* agains -> against

* agaisnt -> against

* aggresively -> aggressively

* aggreates -> aggregates

* aggregious -> egregious

* aginst -> against

* agregates -> aggregates

* Agressive -> Aggressive

* ahve -> have

* ajdust -> adjust

* ajust -> adjust

* alement -> element

* algoritm -> algorithm

* alighnment -> alignment

* alignmant -> alignment

* constraits -> constraints

* Allcator -> Allocator

* alllocate -> allocate

* alloacted -> allocated

* allocatate -> allocate

* allocatoror -> allocator

* alloctaed -> allocated

* alloction -> allocation

* alloted -> allotted

* allt he -> all the

* alltogether -> altogether

* alocate -> allocate

* alocated -> allocated

* Alocates -> Allocates

* alogrithm -> algorithm

* aloocate -> allocate

* alot -> a lot

* alwasy -> always

* alwyas -> always

* alwys -> always

Commit migrated from https://github.com/dotnet/coreclr/commit/8e48db2c113052ef18cdafb43e114a8633864ec0

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview1-02824-02, preview1-26525...
dotnet-maestro-bot [Fri, 25 May 2018 06:13:38 +0000 (23:13 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02824-02, preview1-26525-01, preview1-26525-01, master-20180524-0023, respectively (dotnet/coreclr#18109)

Commit migrated from https://github.com/dotnet/coreclr/commit/6468753a39d2419083cd842497ae2fc0f35c143a

6 years agoFix misplaced volatile (dotnet/coreclr#18115)
Jan Kotas [Fri, 25 May 2018 01:18:56 +0000 (18:18 -0700)]
Fix misplaced volatile (dotnet/coreclr#18115)

Fixes dotnet/coreclr#13015

Commit migrated from https://github.com/dotnet/coreclr/commit/5fe6e952f7a9f60ae190a746f2446d255d0e5bea

6 years agoUpdating BuildDelayFreeUses to also consider contained HWIntrinsic nodes.
Tanner Gooding [Thu, 24 May 2018 21:21:12 +0000 (14:21 -0700)]
Updating BuildDelayFreeUses to also consider contained HWIntrinsic nodes.

Commit migrated from https://github.com/dotnet/coreclr/commit/3b32ecf311b4c4d16d770501d5257a2e2f74e656

6 years ago[Arm64] Set compFloatingPointUsed for SIMD HWIntrincsics
Steve MacLean [Thu, 24 May 2018 18:47:12 +0000 (14:47 -0400)]
[Arm64] Set compFloatingPointUsed for SIMD HWIntrincsics

Commit migrated from https://github.com/dotnet/coreclr/commit/e206476871df6997df26c040811df0a56bb87c57

6 years agoMerge pull request dotnet/coreclr#18103 from vancem/StringBuilderEnumeratorUpdate
Vance Morrison [Thu, 24 May 2018 21:52:35 +0000 (14:52 -0700)]
Merge pull request dotnet/coreclr#18103 from vancem/StringBuilderEnumeratorUpdate

Add more comments and rename to StringBuilder.GetChunks()

Commit migrated from https://github.com/dotnet/coreclr/commit/a9a7e78d290809692f23f129cd373e5f9a71a294

6 years ago[Arm64] debugging work (dotnet/coreclr#17993)
David Wrighton [Thu, 24 May 2018 21:35:47 +0000 (14:35 -0700)]
[Arm64] debugging work (dotnet/coreclr#17993)

* Fix missing implementation of FuncEvalFrame::UpdateRegDisplay for ARM64
- Implementation is missing. Build new one based ARM implementation

* Enable just my code on arm64

* Fix logging of addresses for DispatchPatchOrSingleStep

* arm64 does not leave the PC at the start of the breakpoint

* Enable interop debugging

* Tweaks for windows arm64 mixed mode debugging support

Commit migrated from https://github.com/dotnet/coreclr/commit/afe9b1dcea839ae93dd148e176e3b702b6b15ec1

6 years agoUse sysconf(_SC_NPROCESSORS_CONF) instead of sysconf(_SC_NPROCESSORS_ONLN) (dotnet...
Egor Chesakov [Thu, 24 May 2018 20:57:47 +0000 (13:57 -0700)]
Use sysconf(_SC_NPROCESSORS_CONF) instead of sysconf(_SC_NPROCESSORS_ONLN) (dotnet/coreclr#18053)

Commit migrated from https://github.com/dotnet/coreclr/commit/2bedc5757cfad4a222a02e74ee11a5debd70a810

6 years agoImprove SSA topological sort (dotnet/coreclr#15200)
mikedn [Thu, 24 May 2018 19:01:41 +0000 (22:01 +0300)]
Improve SSA topological sort (dotnet/coreclr#15200)

* Simplify block successor iterators

Construction of an end AllSuccessorIter requires the number of block successors. This can be avoided by keeping track of the number of remaining successors so that the end iterator is simply "0 remaining successors".

Remove StartAllSuccs & co. These functions don't do anything useful.

Since AllSuccessorIter and EHSuccessorIter now have similar constructors the "collection" classes AllSuccs and EHSuccs can be replaced by a single template class.

* Split out block successor iterator logic

The AllSuccessorIterator iterator is pretty large - 64 bytes on 64 bit hosts. When used as local variables that's not much of a problem but if they end up stored in containers then a lot of space is wasted.

AllSuccessorIter contains a pointer to the compiler object and a pointer to the block whose successors it iterates over. And then it also contains an EHSuccessorIter that contains the same 2 pointers.

In scenarios such as the one in SsaBuilder::TopologicalSort the compiler pointer need not be stored and the block needs to be stored only once and be made accessible so a separate block stack isn't needed.

This change splits out the successor iterating logic into separate "position" classes that receieve the compiler and block via function parameters.

* Improve TopologicalSort memory usage

Commit migrated from https://github.com/dotnet/coreclr/commit/c0150d4d0131ab16a50378711d8adb19c5c868ab

6 years agoRename EnumerateCHunks -> GetChunks per API review feedback.
Vance Morrison [Thu, 24 May 2018 18:01:46 +0000 (11:01 -0700)]
Rename EnumerateCHunks -> GetChunks per API review feedback.

Commit migrated from https://github.com/dotnet/coreclr/commit/23f0078eccaff9c6795d0f05cf031f5f2386be18

6 years agoRealigning the hwintrinsiclistxarch table columns
Tanner Gooding [Thu, 24 May 2018 14:47:06 +0000 (07:47 -0700)]
Realigning the hwintrinsiclistxarch table columns

Commit migrated from https://github.com/dotnet/coreclr/commit/78e7dbf21fe0b5fbe72332b7d8d1dcbd44d3186c

6 years agoFix a variety of typos (dotnet/coreclr#18096)
John Doe [Thu, 24 May 2018 14:43:42 +0000 (07:43 -0700)]
Fix a variety of typos (dotnet/coreclr#18096)

* absense -> absence

* aboring -> aborting

* absense -> absence

* absoute -> absolute

* absoute -> absolute

* abstration -> abstraction

* dwDesiredAcces -> dwDesiredAccess

* accees -> access

* accesed -> accessed

* accessability -> accessibility

* accessable -> accessible

* accidentaly -> accidentally

* accesible -> accessible

* accommondate -> accommodate

* accurancy -> accuracy

* accuratley -> accurately

* Achitecture -> Architecture

* acompannying -> accompanying

* acordingly -> accordingly

Commit migrated from https://github.com/dotnet/coreclr/commit/58254b513146b138e80b3abea62c56322abf1807

6 years agoOptimize Array.Clear using SpanHelpers (dotnet/coreclr#18101)
Jan Kotas [Thu, 24 May 2018 14:07:20 +0000 (07:07 -0700)]
Optimize Array.Clear using SpanHelpers (dotnet/coreclr#18101)

Reimplement most of Array.Clear in managed code using Span Clear helpers.

Fixes dotnet/corefxdotnet/coreclr#29848

Commit migrated from https://github.com/dotnet/coreclr/commit/f001fd476893730d98d7e3e9f2d17175e8d9b478

6 years agoUpdate g_highest_address and g_lowest_address in StompWriteBarrier(WriteBarrierOp...
Egor Chesakov [Thu, 24 May 2018 13:08:26 +0000 (06:08 -0700)]
Update g_highest_address and g_lowest_address in StompWriteBarrier(WriteBarrierOp::StompResize) on ARM (dotnet/coreclr#18107)

Commit migrated from https://github.com/dotnet/coreclr/commit/08beb290dce1e7d5f29897538d201b7ebd345a3a

6 years agosharing SerializationInfo for corert and coreclr (dotnet/coreclr#18102)
Maryam Ariyan [Thu, 24 May 2018 06:04:14 +0000 (23:04 -0700)]
sharing SerializationInfo for corert and coreclr (dotnet/coreclr#18102)

* String to string in SerializationInfo

* Object to object in SerializationInfo

* Reducing diff between coreclr and corefx by renaming some variables.

* Reducing diff for SerializationInfo by simplifying code

* More cleanup
- Removing unused fields and making internals private.
- Removing unused namespaces
- Merge some comments

* Fixing up commets and removing object from object.ReferenceEquals(..)

* Minor fixups

* Moving to shared

* Applying PR feedbacks

* using IsRuntimeImplemented helper method for type

* using the CoreRT version and keeping ctor with extra argument

Commit migrated from https://github.com/dotnet/coreclr/commit/b23f8213a527d831577ce8bb7de47d54d153c509

6 years agoMerge pull request dotnet/coreclr#18011 from CarolEidt/JitOptDoc
Carol Eidt [Thu, 24 May 2018 03:45:29 +0000 (20:45 -0700)]
Merge pull request dotnet/coreclr#18011 from CarolEidt/JitOptDoc

Update struct handling section of Jit Opt Doc

Commit migrated from https://github.com/dotnet/coreclr/commit/f7c77150c64cd57354d6485e654f4b0806b4a145

6 years agoUpdate struct handling section of Jit Opt Doc
Carol Eidt [Tue, 15 May 2018 22:02:03 +0000 (15:02 -0700)]
Update struct handling section of Jit Opt Doc

Commit migrated from https://github.com/dotnet/coreclr/commit/f0dd059f50d3c682445d8b66d5594695be7a278d

6 years agoR2RDump - Dump generic method instances (dotnet/coreclr#18080)
acmyu [Thu, 24 May 2018 00:24:03 +0000 (17:24 -0700)]
R2RDump - Dump generic method instances (dotnet/coreclr#18080)

* R2RDump - dump generic method instances

* Added comments

* Move read functions to own class, changes to NativeHashtable to make it similar to NativeFormatReader

* Get type name for struct generic instances

* Emit # of runtimeFunctions and size:unavailable, add [Flags] to enum and NONE flag

* Throw exception when method entrypoint id is out of bounds

* Type name instead of var

* Get full classname including namespace

* Get parent types of nested types

* Save DeclaringType as string, rename variables, use 1 constructor

* Check generic param indices not out of bounds

Commit migrated from https://github.com/dotnet/coreclr/commit/6c934c21df759d4319e2006ef4add9e01068f648

6 years agoCleaning up LinearScan::BuildHWIntrinsic
Tanner Gooding [Wed, 23 May 2018 17:47:44 +0000 (10:47 -0700)]
Cleaning up LinearScan::BuildHWIntrinsic

Commit migrated from https://github.com/dotnet/coreclr/commit/f4c6bebb1601596ea54baff489e50b64ad4a6a2e

6 years agoAdd more comments to StringBuilder.EnumerateChunks()
Vance Morrison [Wed, 23 May 2018 21:03:16 +0000 (14:03 -0700)]
Add more comments to StringBuilder.EnumerateChunks()

This does not change execution of the code (only comments, placement)

Added a warning about modifying the stringbuilder while enumerating.

Commit migrated from https://github.com/dotnet/coreclr/commit/c6409334f6fc56884bb7df91489293d52efaabd1

6 years agoRefactor fgDebugCheckBBlist (dotnet/coreclr#18082)
Sergey Andreenko [Wed, 23 May 2018 20:52:15 +0000 (13:52 -0700)]
Refactor fgDebugCheckBBlist (dotnet/coreclr#18082)

create BBPredsChecker

Commit migrated from https://github.com/dotnet/coreclr/commit/bc931bfa7dcfb3151c962916584b9531dc3d71f0

6 years agoSOS Fixes for windows arm32 (dotnet/coreclr#18090)
Chris Sienkiewicz [Wed, 23 May 2018 17:39:56 +0000 (10:39 -0700)]
SOS Fixes for windows arm32 (dotnet/coreclr#18090)

Commit migrated from https://github.com/dotnet/coreclr/commit/6185b9af8591283c5dbf1711d6064a23602f9760

6 years agoMerge pull request dotnet/coreclr#18079 from dotnet-maestro-bot/master-UpdateDependencies
Wes Haggard [Wed, 23 May 2018 17:29:28 +0000 (10:29 -0700)]
Merge pull request dotnet/coreclr#18079 from dotnet-maestro-bot/master-UpdateDependencies

Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02823-01, preview1-26523-04, preview1-26523-05, master-20180523-0040, respectively (master)

Commit migrated from https://github.com/dotnet/coreclr/commit/0c24aa0d3d81da5067f3f1d155174e46472985df

6 years agoFix parallel spmi return code. (dotnet/coreclr#18093)
Sergey Andreenko [Wed, 23 May 2018 17:23:18 +0000 (10:23 -0700)]
Fix parallel spmi return code. (dotnet/coreclr#18093)

Commit migrated from https://github.com/dotnet/coreclr/commit/d7be1d0f72a1b5367a4cb504ea7234f7b49e08c9

6 years agoMerge pull request dotnet/coreclr#18099 from CarolEidt/FixEliminNodeInfo
Carol Eidt [Wed, 23 May 2018 16:58:49 +0000 (09:58 -0700)]
Merge pull request dotnet/coreclr#18099 from CarolEidt/FixEliminNodeInfo

Fix desktop build break

Commit migrated from https://github.com/dotnet/coreclr/commit/7e517ed6b6a210c820a7336f199008f31c19d52f

6 years agoFix desktop build break
Carol Eidt [Wed, 23 May 2018 15:02:59 +0000 (08:02 -0700)]
Fix desktop build break

Commit migrated from https://github.com/dotnet/coreclr/commit/3fa689df0e56da296c2819c991c4bcfd7195f846

6 years agoMerge pull request dotnet/coreclr#18086 from sdmaclea/PR-delete_next_card_table
Bruce Forstall [Wed, 23 May 2018 14:53:12 +0000 (07:53 -0700)]
Merge pull request dotnet/coreclr#18086 from sdmaclea/PR-delete_next_card_table

Mark delete_next_card_table

Commit migrated from https://github.com/dotnet/coreclr/commit/f233b2a4d444aea570f409a413d3922d4c9a0cb7

6 years agoCreate RefPositions without TreeNodeInfo (dotnet/coreclr#16517)
Carol Eidt [Wed, 23 May 2018 14:39:43 +0000 (07:39 -0700)]
Create RefPositions without TreeNodeInfo (dotnet/coreclr#16517)

* Create RefPositions without TreeNodeInfo

* Remove all references to TreeNodeInfo

* Fix function header comments

Commit migrated from https://github.com/dotnet/coreclr/commit/b39a5b2cfad4620ae23cda84186a36ffb463cd5a

6 years agoMerge pull request dotnet/coreclr#18087 from BruceForstall/RemoveMoreLEGACY_BACKEND
Bruce Forstall [Wed, 23 May 2018 14:33:57 +0000 (07:33 -0700)]
Merge pull request dotnet/coreclr#18087 from BruceForstall/RemoveMoreLEGACY_BACKEND

Remove more JIT LEGACY_BACKEND tendrils

Commit migrated from https://github.com/dotnet/coreclr/commit/74d0196fe5b36bf04848f2cf84d20c8b6e999b62

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview1-02823-01, preview1-26523...
dotnet-maestro-bot [Wed, 23 May 2018 14:14:08 +0000 (07:14 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-02823-01, preview1-26523-04, preview1-26523-05, master-20180523-0040, respectively

Commit migrated from https://github.com/dotnet/coreclr/commit/5138819d85d7e900c33faba39081d3e897e4f824

6 years agoFix race in test waitone1 (dotnet/coreclr#18085)
Steve MacLean [Wed, 23 May 2018 08:57:42 +0000 (04:57 -0400)]
Fix race in test waitone1 (dotnet/coreclr#18085)

Commit migrated from https://github.com/dotnet/coreclr/commit/fa3e66ea4225de823e7996e4d1a54d3f8cc68603

6 years agoRemove more JIT LEGACY_BACKEND tendrils
Bruce Forstall [Tue, 22 May 2018 21:25:34 +0000 (14:25 -0700)]
Remove more JIT LEGACY_BACKEND tendrils

1. Remove armlb testing from netci.groovy
2. Remove legacy jit exclusions from tests.lst
3. Remove some unused `LEGACY_BACKEND` build definitions
4. Remove regpair.h

Commit migrated from https://github.com/dotnet/coreclr/commit/6716e0ce0794f0139c8c15e3ca52d4bb5ebbce0b

6 years agofix desktop (dotnet/coreclr#18092)
Sergey Andreenko [Wed, 23 May 2018 02:38:44 +0000 (19:38 -0700)]
fix desktop (dotnet/coreclr#18092)

Commit migrated from https://github.com/dotnet/coreclr/commit/9c5e3d5d86901bd6bc0bd2d56e81cc0edec7eb13

6 years agoRemove -Rebuild option from build scripts (dotnet/coreclr#18089)
Brian Robbins [Wed, 23 May 2018 02:13:20 +0000 (19:13 -0700)]
Remove -Rebuild option from build scripts (dotnet/coreclr#18089)

Commit migrated from https://github.com/dotnet/coreclr/commit/7d930115ebd1a170af6b41caab3bb3906c476685

6 years agoadd treeLifeUpdater (dotnet/coreclr#18021)
dotnet bot [Wed, 23 May 2018 00:47:42 +0000 (17:47 -0700)]
add treeLifeUpdater (dotnet/coreclr#18021)

[tfs-changeset: 1700288]

Commit migrated from https://github.com/dotnet/coreclr/commit/d629c9967bd401c21123873c7d5175e721d40feb

6 years agoMerge pull request dotnet/coreclr#17530 from vancem/StringBuilderEnumerator
Vance Morrison [Tue, 22 May 2018 23:07:45 +0000 (16:07 -0700)]
Merge pull request dotnet/coreclr#17530 from vancem/StringBuilderEnumerator

Adding EnumerateChunks which allow efficient scanning of a StringBuilder

Commit migrated from https://github.com/dotnet/coreclr/commit/f9bb9e1d95bffecf42965ab6b13496fa51c5b412

6 years agoRemove JIT LEGACY_BACKEND code (dotnet/coreclr#18064)
Bruce Forstall [Tue, 22 May 2018 20:50:38 +0000 (13:50 -0700)]
Remove JIT LEGACY_BACKEND code (dotnet/coreclr#18064)

Remove JIT LEGACY_BACKEND code

All code related to the LEGACY_BACKEND JIT is removed. This includes all code related to x87 floating-point code generation. Almost 50,000 lines of code have been removed.

Remove legacyjit/legacynonjit directories

Remove reg pairs

Remove tiny instruction descriptors

Remove compCanUseSSE2 (it's always true)

Remove unused FEATURE_FP_REGALLOC

Commit migrated from https://github.com/dotnet/coreclr/commit/7153e441ef21e9bb5e022229c0808b964b9199e0

6 years agoMark delete_next_card_table
Steve MacLean [Tue, 22 May 2018 19:29:51 +0000 (15:29 -0400)]
Mark delete_next_card_table

GCStressIncompatible=true
IsLongRunningGCTest=true

Commit migrated from https://github.com/dotnet/coreclr/commit/85e4d78e33294dd1b25171f9e961d89ec7339513

6 years agoMove InsufficientMemory, OutOfMemory and ThreadInterrupted exceptions (dotnet/coreclr...
Maryam Ariyan [Tue, 22 May 2018 18:26:07 +0000 (11:26 -0700)]
Move InsufficientMemory, OutOfMemory and ThreadInterrupted exceptions (dotnet/coreclr#18049)

* Move following exceptions to shared:

    - InsufficientMemory,
    - OutOfMemory
    - ThreadInterrupted

Related to: dotnet/coreclrdotnet/coreclr#17904

Reduced diff in RegistryKey visible between coreclr and corert

Commit migrated from https://github.com/dotnet/coreclr/commit/32ab54d345a4ab2eb572fe3ba061b6e0d1b31088

6 years agoFixe whitespace
Vance Morrison [Tue, 22 May 2018 18:25:01 +0000 (11:25 -0700)]
Fixe whitespace

Commit migrated from https://github.com/dotnet/coreclr/commit/0ba7f8d3a974382a214820330408f20389317306

6 years agoFix whitespace
Vance Morrison [Tue, 22 May 2018 18:18:36 +0000 (11:18 -0700)]
Fix whitespace

Commit migrated from https://github.com/dotnet/coreclr/commit/79cbf2e17f6cdd1095671c6ab9fa8b9c48bba0f5

6 years agoFix attribute placement
Vance Morrison [Tue, 22 May 2018 18:16:05 +0000 (11:16 -0700)]
Fix attribute placement

Commit migrated from https://github.com/dotnet/coreclr/commit/57055f17d50e275e9c904b3f8975065e3d7af526

6 years agoCollapse ChunkEnumerable and ChunkEnumerator.
Vance Morrison [Tue, 22 May 2018 17:55:16 +0000 (10:55 -0700)]
Collapse ChunkEnumerable and ChunkEnumerator.

Commit migrated from https://github.com/dotnet/coreclr/commit/1028e3801f8eb72680d4d35b68dc734be5f84785

6 years agoFix compareexchangetstring thread safety (dotnet/coreclr#18075)
Steve MacLean [Tue, 22 May 2018 14:05:57 +0000 (10:05 -0400)]
Fix compareexchangetstring thread safety (dotnet/coreclr#18075)

Commit migrated from https://github.com/dotnet/coreclr/commit/0e70f69206b9797523855308e1b4c1edfb83ebdf

6 years agoadd stackLevelSetter to the VS header list. (dotnet/coreclr#18077)
Sergey Andreenko [Tue, 22 May 2018 04:09:28 +0000 (21:09 -0700)]
add stackLevelSetter to the VS header list. (dotnet/coreclr#18077)

Commit migrated from https://github.com/dotnet/coreclr/commit/9b29e823c0aa503fc077e6a6ca885c1160f35a2e

6 years agoadd repro for dotnet/coreclr#18056 (dotnet/coreclr#18057)
Sergey Andreenko [Tue, 22 May 2018 04:08:58 +0000 (21:08 -0700)]
add repro for dotnet/coreclr#18056  (dotnet/coreclr#18057)

* add repro

* add the exclusion

* fix comments

Commit migrated from https://github.com/dotnet/coreclr/commit/a525181a7c485b49fa7f18b469ecc1271e7f21a3

6 years agoCode cleanup and formatting for System.Memory files. (dotnet/coreclr#17451)
Ahson Khan [Tue, 22 May 2018 01:03:55 +0000 (18:03 -0700)]
Code cleanup and formatting for System.Memory files. (dotnet/coreclr#17451)

* Fix IDE0034 C# expression can be simplified (use of default)

* Remove unnecessary using statements

* IDE0012 C# Name can be simplified. String -> string

* IDE0041  C# Null check can be simplified

* Fix code formatting (limited to Span/System.Memory files).

* Address PR feedback - IDE0012 Name can be simplified (String -> string)

* Add back the necessary using statements and fix typo

* Fix comment typo and add necessary using statements

Commit migrated from https://github.com/dotnet/coreclr/commit/f31097f14560b193e76a7b2e1e61af9870b5356b

6 years agosmall fixes to build CoreCLR on FreeBSD again (dotnet/coreclr#18072)
Tomas Weinfurt [Tue, 22 May 2018 00:38:50 +0000 (17:38 -0700)]
small fixes to build CoreCLR on FreeBSD again (dotnet/coreclr#18072)

* small fixes to build CoreCLR on FreeBSD again

* feedback from review

* update genLttngProvider.py as jan suggested

* remove extra comment

* add missing extra space

Commit migrated from https://github.com/dotnet/coreclr/commit/49f6249abc44269b437064e850ad22eb9f74a446

6 years agoUpdate BuildTools, PgoData to preview1-02821-03, master-20180521-0051, respectively...
dotnet-maestro-bot [Mon, 21 May 2018 23:31:29 +0000 (16:31 -0700)]
Update BuildTools, PgoData to preview1-02821-03, master-20180521-0051, respectively (dotnet/coreclr#18066)

Commit migrated from https://github.com/dotnet/coreclr/commit/3910feed29faffb67a0cacf9470461219539e632

6 years agoOnly include DotNETRuntimeEventSource.cs if it exists. (dotnet/coreclr#18074)
Brian Robbins [Mon, 21 May 2018 21:51:43 +0000 (14:51 -0700)]
Only include DotNETRuntimeEventSource.cs if it exists. (dotnet/coreclr#18074)

Commit migrated from https://github.com/dotnet/coreclr/commit/821317f109635cc591c976e6921429fc7f673b68

6 years agoMerge pull request dotnet/coreclr#18032 from sdmaclea/PR-ARM64-LSE-ATOMICS
Bruce Forstall [Mon, 21 May 2018 21:37:54 +0000 (14:37 -0700)]
Merge pull request dotnet/coreclr#18032 from sdmaclea/PR-ARM64-LSE-ATOMICS

[Arm64] Add basic ARMv8.1 Atomics

Commit migrated from https://github.com/dotnet/coreclr/commit/d73a35065ec05a8179c8b812986bd9708001782c

6 years agoReduce the number of days to keep artifacts for perf (dotnet/coreclr#18073)
Michelle McDaniel [Mon, 21 May 2018 20:17:18 +0000 (13:17 -0700)]
Reduce the number of days to keep artifacts for perf (dotnet/coreclr#18073)

We are still seeing issues with running out of space on the archive
machines due to the size of the perf archives. This change reduces the
number of days we store the archives to 14 and the number of archives to
keep to 100.

Commit migrated from https://github.com/dotnet/coreclr/commit/c07b73a30558a47768329dfbc479b9c8bdb3c08a

6 years ago Implement ICorDebugILFrame3::GetReturnValueForILOffset on arm32 (dotnet/coreclr...
Chris Sienkiewicz [Mon, 21 May 2018 19:24:06 +0000 (12:24 -0700)]
 Implement ICorDebugILFrame3::GetReturnValueForILOffset on arm32 (dotnet/coreclr#18050)

*Implements CorDebugILFrame3::GetReturnValueForILOffset for arm32 on both windows and linux
*Fixes CordbNativeCode::GetCallInstructionLength to ensure it accounts for both 32/16 bit instructions
*Adds some asm to do float conversion
*Adds some logic to the cmake files to ensure the respective asm files get assembled correctly for both platforms

Commit migrated from https://github.com/dotnet/coreclr/commit/78d858b048b460bd399d537487949f74c708e159

6 years agoMerge pull request dotnet/coreclr#18058 from dotnetrt/gh18041
Carol Eidt [Mon, 21 May 2018 18:37:57 +0000 (11:37 -0700)]
Merge pull request dotnet/coreclr#18058 from dotnetrt/gh18041

Fix codegen for HW intrinsic Sse2.ConvertToInt32WithTruncation

Commit migrated from https://github.com/dotnet/coreclr/commit/402eab2b5d7acd0f6d6ece9b6e2c1c6f910c4eab

6 years agoUpdate Tizen CI docker image (dotnet/coreclr#17814)
Gleb Balykov [Mon, 21 May 2018 15:33:40 +0000 (18:33 +0300)]
Update Tizen CI docker image (dotnet/coreclr#17814)

* Update Tizen CI docker image

* Revert "Remove Tizen armel automatic PR triggered jobs"

This reverts commit dotnet/coreclr@462e2b59c67b0b6d25985a7284616539f348cbfc.

* Update Tizen CI docker image in netci

* Update links required for generation of Tizen rootfs

* Remove -rebuild from arm32 CI docker build

Commit migrated from https://github.com/dotnet/coreclr/commit/338474d63adf4a896e39b96fb0a4a2c7dd7a7985

6 years agoFix ConvertToInt32WithTruncation tests
Jacek Blaszczynski [Fri, 18 May 2018 23:15:50 +0000 (01:15 +0200)]
Fix ConvertToInt32WithTruncation tests

Commit migrated from https://github.com/dotnet/coreclr/commit/54eae6ff423017b613105f1c7f1878e780100a22

6 years agoUpdate PgoData to master-20180520-0038 (dotnet/coreclr#18065)
dotnet-maestro-bot [Sun, 20 May 2018 19:44:47 +0000 (12:44 -0700)]
Update PgoData to master-20180520-0038 (dotnet/coreclr#18065)

Commit migrated from https://github.com/dotnet/coreclr/commit/34c7dcfd2a8ae616d19bb7657463b990f5a7ff1f

6 years agoUpdate PgoData to master-20180519-0051 (dotnet/coreclr#18062)
dotnet-maestro-bot [Sat, 19 May 2018 19:01:44 +0000 (12:01 -0700)]
Update PgoData to master-20180519-0051 (dotnet/coreclr#18062)

Commit migrated from https://github.com/dotnet/coreclr/commit/cce4ad55e22e49edf417a6a967d58a4a345335a0

6 years agoFix CoreRT build break
Jan Kotas [Tue, 8 May 2018 17:23:11 +0000 (10:23 -0700)]
Fix CoreRT build break

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/68275d2e24118165bffb5d2e4850fc86cb8f4030

6 years agoRemove bogus NoInlining uses (dotnet/coreclr#18061)
mikedn [Sat, 19 May 2018 15:05:17 +0000 (18:05 +0300)]
Remove bogus NoInlining uses (dotnet/coreclr#18061)

The JIT knows not to inline throw helper methods. Manually blocking inlining prevents the JIT from detecting that these methods do not return and that may negatively impact the quality of the caller method code.

Commit migrated from https://github.com/dotnet/coreclr/commit/4f100f944cd108918a8920a8a22e12b6711fdc84

6 years agoMerge pull request dotnet/coreclr#15348 from mikedn/ssa-indir
Carol Eidt [Sat, 19 May 2018 13:45:49 +0000 (06:45 -0700)]
Merge pull request dotnet/coreclr#15348 from mikedn/ssa-indir

Remove useless IndirectAssignmentAnnotation

Commit migrated from https://github.com/dotnet/coreclr/commit/9352f69ffbf25762d0c631b7e84389f0d111bcd4

6 years agoAvoid freezing ConcurrentQueue segments in Count (dotnet/coreclr#18035)
Stephen Toub [Sat, 19 May 2018 02:07:02 +0000 (22:07 -0400)]
Avoid freezing ConcurrentQueue segments in Count (dotnet/coreclr#18035)

* Avoid freezing ConcurrentQueue segments in Count

In .NET Core 2.0, we changed the implementation of ConcurrentQueue to allow segment reuse, making enqueues ammoritzed allocation-free, whereas previously every enqueue had some allocation cost (even if it was batched as part of allocating a segment).  However, some operations mark segments as being frozen, which then prevents subsequent enqueues into those segments; this is necessary for enumeration, but Count also caused this.  Ideally Count isn't used on hot paths, but if it is, this can end up in degenerate situations where, for example, if Count is called after every enqueue, we'll end up creating a new segment for every enqueued item, which is incredibly inefficient both for the enqueues and for Count, which is O(N) in the number of segments.

It turns out, though, that we were overly cautious in implementing Count, and we don't actually need it to freeze the segments.  Instead, when there are more than two segments (the case where we previously froze), we can take the cross-segment lock, which is the same lock that's held any time we update the head and tail segment pointers.  Once that lock is held, we know that the internal segments won't change, because code can only enqueue/dequeue from the head and tail segments, so any segment that's not head and tail while the lock is held is effectively immutable.  That means that we can simply walk those segments and add up their counts, safe in knowing they won't change while we're enumerating.

* Remove stale comment

Commit migrated from https://github.com/dotnet/coreclr/commit/6e8232059e563d4e3d877f7020db17ee14e285f0