platform/upstream/coreclr.git
5 years agoFix prefix of mock hostpolicy on Unix (#23692)
Jeremy Koritzinsky [Thu, 4 Apr 2019 16:33:12 +0000 (09:33 -0700)]
Fix prefix of mock hostpolicy on Unix (#23692)

Fixes #23682

5 years agoHandle local struct pointer arithmetic (#23704)
Carol Eidt [Thu, 4 Apr 2019 16:31:30 +0000 (09:31 -0700)]
Handle local struct pointer arithmetic (#23704)

The assert introduced in #23570 was overly aggressive, and didn't account for the fact that pointer arithmetic can exist in the IL, not just introduced by morph.

Fix #23693

5 years agoMove parts of delegate to shared partition (#23552)
Marek Safar [Thu, 4 Apr 2019 16:05:08 +0000 (18:05 +0200)]
Move parts of delegate to shared partition (#23552)

5 years agoDon't null out buffer in MemoryStream on Capacity reset (#23700)
Stephen Toub [Thu, 4 Apr 2019 13:23:40 +0000 (09:23 -0400)]
Don't null out buffer in MemoryStream on Capacity reset (#23700)

5 years agoMerge pull request #23706 from sandreenko/runCoreFXbaseileDaily
Sergey Andreenko [Thu, 4 Apr 2019 05:01:22 +0000 (22:01 -0700)]
Merge pull request #23706 from sandreenko/runCoreFXbaseileDaily

Run CoreFX baseline arm/arm64 Windows/Ubuntu daily.

5 years agoAdd CPU runtime counter (#23680)
Sung Yoon Whang [Thu, 4 Apr 2019 03:40:50 +0000 (20:40 -0700)]
Add CPU runtime counter (#23680)

* Add cpu counter

* Fix windows build

* Make the counter just return current CPU usage as %

* Add Unix

* Fix unix build

* Some cleanup

* rename

* fixing some build errors

* some cleanup

* remove unused using

* more cleanup

* newline

* Address PR feedback

* more pr feedback

* More feedback

5 years agoFix resource loading (#23714)
David Wrighton [Thu, 4 Apr 2019 02:11:00 +0000 (19:11 -0700)]
Fix resource loading (#23714)

- Some resources are generated without setting a Major/Minor version in the resource directory
- This is legal, and we shouldn't skip parsing the resource

5 years agoMove null check into separate method to prevent unnecessary conversion of null into...
Filip Navara [Thu, 4 Apr 2019 01:02:15 +0000 (03:02 +0200)]
Move null check into separate method to prevent unnecessary conversion of null into ReadOnlySpan (#23616)

5 years agoFix GitHub23672 (#23674)
Fei Peng [Thu, 4 Apr 2019 00:15:45 +0000 (17:15 -0700)]
Fix GitHub23672 (#23674)

5 years agoRun CoreFX baseline arm/arm64 Windows/Ubuntu daily.
Sergey Andreenko [Wed, 3 Apr 2019 23:15:14 +0000 (16:15 -0700)]
Run CoreFX baseline arm/arm64 Windows/Ubuntu daily.

5 years agoRemove ADID and ADIndex from CoreCLR (#23588)
David Wrighton [Wed, 3 Apr 2019 22:54:05 +0000 (15:54 -0700)]
Remove ADID and ADIndex from CoreCLR (#23588)

- Remove concept of AppDomain from object api in VM
- Various infrastructure around entering/leaving appdomains is removed
- Add small implementation of GetAppDomain for use by DAC (to match existing behavior)
- Simplify finalizer thread operations
- Eliminate AppDomain::Terminate
- Remove use of ADID from stresslog
- Remove thread enter/leave tracking from AppDomain
- Remove unused asm constants across all architectures
- Re-order header inclusion order to put gcenv.h before handletable
- Remove retail only sync block code involving appdomain index

5 years agoFix Arm64 intrinsic lookup (#23673)
Carol Eidt [Wed, 3 Apr 2019 21:33:58 +0000 (14:33 -0700)]
Fix Arm64 intrinsic lookup (#23673)

Fix #23669

5 years agoFix interop test cases to pass doubles for native varargs. (#23690)
Andy Ayers [Wed, 3 Apr 2019 21:22:07 +0000 (14:22 -0700)]
Fix interop test cases to pass doubles for native varargs. (#23690)

Remove these tests from the windows exclude list. Also move one
other exclude entry from its own section into the general exclude list.

Closes #22974

5 years agoChange Auto charset to mean UTF-8 off-Windows (#23664)
Jeremy Koritzinsky [Wed, 3 Apr 2019 21:08:06 +0000 (14:08 -0700)]
Change Auto charset to mean UTF-8 off-Windows (#23664)

Match Mono's behavior by changing the Auto character set to mean UTF-8 on non-Windows platforms (new behavior) and UCS-2/UTF-16 on Windows (current behavior).

Fixes #23464
Fixes dotnet/corefx#32442

Impact of breaking change: It is highly unlikely that anyone is actively using current behavior since it is inconsistent with Mono and doesn't match any native system APIs on non-Windows platforms (they're all UTF-8 based).

We will need to update our documentation to reflect this updated behavior.

5 years agoMerge pull request #23671 from BruceForstall/ImproveJitFunctionTraceOutput
Bruce Forstall [Wed, 3 Apr 2019 20:06:18 +0000 (13:06 -0700)]
Merge pull request #23671 from BruceForstall/ImproveJitFunctionTraceOutput

Improve COMPlus_JitFunctionTrace

5 years agoFix typo in zapimage.cpp (#23698)
Egor Chesakov [Wed, 3 Apr 2019 19:09:09 +0000 (12:09 -0700)]
Fix typo in zapimage.cpp (#23698)

5 years agoMerge pull request #23553 from janvorli/fix-accidental-non-collectible-alc-unloading
Jan Vorlicek [Wed, 3 Apr 2019 18:13:39 +0000 (20:13 +0200)]
Merge pull request #23553 from janvorli/fix-accidental-non-collectible-alc-unloading

Fix accidental non-collectible context unloading

5 years agoMerge pull request #23670 from BruceForstall/FixArmAltjitAsmDiffs
Bruce Forstall [Wed, 3 Apr 2019 17:02:27 +0000 (10:02 -0700)]
Merge pull request #23670 from BruceForstall/FixArmAltjitAsmDiffs

Fix arm altjit asm diffs

5 years agoEmit event for calls to ReadyToRunInfo::GetEntryPoint. (#23662)
Brian Robbins [Wed, 3 Apr 2019 15:48:26 +0000 (08:48 -0700)]
Emit event for calls to ReadyToRunInfo::GetEntryPoint. (#23662)

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190402.14 ...
dotnet-maestro[bot] [Wed, 3 Apr 2019 15:32:08 +0000 (08:32 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190402.14 (#23688)

- Microsoft.NETCore.App - 3.0.0-preview4-27602-14

5 years agoUpdate CoreClr to preview4-27603-71 (#23679)
dotnet-maestro-bot [Wed, 3 Apr 2019 15:31:52 +0000 (08:31 -0700)]
Update CoreClr to preview4-27603-71 (#23679)

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190402.13 (#23686)
dotnet-maestro[bot] [Wed, 3 Apr 2019 14:06:02 +0000 (10:06 -0400)]
Update dependencies from https://github.com/dotnet/arcade build 20190402.13 (#23686)

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

5 years ago[Preview 4] Disable tier 0 JIT (quick JIT) by default, rename config option (#23599)
Koundinya Veluri [Wed, 3 Apr 2019 13:51:43 +0000 (06:51 -0700)]
[Preview 4] Disable tier 0 JIT (quick JIT) by default, rename config option (#23599)

Disable tier 0 JIT (quick JIT) by default, rename config option

- Tier 0 JIT is being called quick JIT in config options, renamed DisableTier0Jit to StartupTierQuickJit
- Disabled quick JIT by default, the current plan is to do that for preview 4
  - Concerns were that code produced by quick JIT may be slow, may allocate more, may use more stack space, and may be much larger than optimized code, and there there may be many cases where these things lead to regressions when the span of time between startup and steady-state is important
  - The thought was that with quick JIT disabled, tiering overhead from call counting and backgorund jitting with optimizations would be less, and perf during any point in time would be closer to 2.x releases
  - This mostly loses the startup perf gains from tiering. It may also be slightly slower compared with tiering off due to some overhead. When quick JIT is disabled for the startup tier, made a change to disable tiered compilation for methods in modules that are not R2R'ed since they will not be tiered currently anyway. The overhead and regression in R2R'ed modules will be looked into separately to see if it can be reduced.

Fixes https://github.com/dotnet/coreclr/issues/22998
Fixes https://github.com/dotnet/coreclr/issues/19751

5 years agoTreat WinMDs as having been loaded in the default ALC for AssemblyLoadContext.GetLoad...
Jeremy Koritzinsky [Wed, 3 Apr 2019 11:21:16 +0000 (04:21 -0700)]
Treat WinMDs as having been loaded in the default ALC for AssemblyLoadContext.GetLoadContext (#23678)

5 years agoAvoid unnecessary SetLastError on PInvokes (dotnet/corefx#36544)
Jan Kotas [Tue, 2 Apr 2019 21:41:49 +0000 (14:41 -0700)]
Avoid unnecessary SetLastError on PInvokes (dotnet/corefx#36544)

These console PInvokes are used in nearly every app. Omitting unnecessary SetLastError
will save us from generating marshalling stub for them.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoMerge pull request #23668 from briansull/pipeline-work
Brian Sullivan [Wed, 3 Apr 2019 00:57:00 +0000 (17:57 -0700)]
Merge pull request #23668 from briansull/pipeline-work

Remove a few Check builds and Check tests for PullRequests

5 years agoUpdating the HWIntrinsic x86 codegen to handle indir nodes. (#23629)
Tanner Gooding [Wed, 3 Apr 2019 00:06:27 +0000 (17:06 -0700)]
Updating the HWIntrinsic x86 codegen to handle indir nodes. (#23629)

* Updating the SimpleBinOpTest.template to cover some additional containment scenarios

* Regenerating the x86 HWIntrinsic tests from their templates

* Updating the HWIntrinsic x86 codegen to handle indir nodes.

5 years agoDisable *.Arm32.Open in PullRequest and remove two queues from scheduled builds ...
Egor Chesakov [Tue, 2 Apr 2019 23:57:20 +0000 (16:57 -0700)]
Disable *.Arm32.Open in PullRequest and remove two queues from scheduled builds (#23677)

5 years agoChange tests to not modify Core_Root (#23470)
Jeremy Koritzinsky [Tue, 2 Apr 2019 23:39:11 +0000 (16:39 -0700)]
Change tests to not modify Core_Root (#23470)

Redesign tests that needed to modify Core_Root to no longer do so.

- Loader.FromNativePaths: Use `CORE_LIBRARIES` instead of `COREROOT`
- Loader.AssemblyDependencyResolver: Split out the invalid hosting test that needs hostpolicy to not be preloaded. Have `CoreRun` and `CoreShim` preload hostpolicy when a path to a hostpolicy is specified in the `MOCK_HOSTPOLICY` environment variable.
- Add a `CLRTest.MockHosting.targets` file that is imported when a test requires hostpolicy. It adds the reference to the mock hostpolicy and ensures that the `MOCK_HOSTPOLICY` environment variable is correctly set in the test scripts.

Fixes #23429.

5 years agoFix spill check for struct lclVars (#23570)
Carol Eidt [Tue, 2 Apr 2019 22:54:26 +0000 (15:54 -0700)]
Fix spill check for struct lclVars (#23570)

* Fix spill check for struct lclVars

With the 1st class struct changes, the `SPILL_APPEND` check for the case of an assignment to a lclVar needs to handle block ops as well as lclVar lhs.

Fix #23545

5 years agoImprove COMPlus_JitFunctionTrace
Bruce Forstall [Tue, 2 Apr 2019 22:27:29 +0000 (15:27 -0700)]
Improve COMPlus_JitFunctionTrace

Indicated if the generated function was generated by altjit.
This helps when there is code generated by both altjit and non-altjit.

5 years agoFix arm altjit asm diffs
Bruce Forstall [Tue, 2 Apr 2019 22:22:17 +0000 (15:22 -0700)]
Fix arm altjit asm diffs

At shutdown, the VM iterates over generated code as part of ETW
"rundown". This currently includes altjit generated code. It calls
functions which interprets the code as native code, e.g., arm32
GC info as x86 GC info.

The fix is to make a call to BackoutJitData(), which was already
suggested in the comments. This removes the altjit generated code
from the "nibble map", and hence from the iteration.

Fixes #23393

5 years agoMerge pull request #23521 from k15tfu/fix-issue-20784
Jan Vorlicek [Tue, 2 Apr 2019 22:08:58 +0000 (00:08 +0200)]
Merge pull request #23521 from k15tfu/fix-issue-20784

Move C/C++ and platform headers to pal/inc/rt/cpp folder

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190401.12 (#23652)
dotnet-maestro[bot] [Tue, 2 Apr 2019 21:49:27 +0000 (14:49 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190401.12 (#23652)

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

5 years agoReduce Check build and Check tests for PullRequest to
Brian Sullivan [Tue, 2 Apr 2019 21:46:27 +0000 (14:46 -0700)]
Reduce Check build and Check tests for PullRequest to
        - Linux_arm
        - Linux_arm64
        - Linux_musl_x64
        - Linux_x64
        - OSX_x64
        - Windows_NT_arm
        - Windows_NT_arm64
        - Windows_NT_x64
        - Windows_NT_x86

5 years agoMerge pull request #23565 from briansull/pipeline-work
Brian Sullivan [Tue, 2 Apr 2019 21:05:16 +0000 (14:05 -0700)]
Merge pull request #23565 from briansull/pipeline-work

Move to outerloop - several  azure-pipeline jobs

5 years agoMerge pull request #23601 from dotnet-maestro-bot/master-UpdateDependencies
William Godbe [Tue, 2 Apr 2019 18:22:19 +0000 (11:22 -0700)]
Merge pull request #23601 from dotnet-maestro-bot/master-UpdateDependencies

Update CoreClr to preview4-27602-71 (master)

5 years agoOutput error messages to stderr. This provides a better integration with the .NET...
Fadi Hanna [Tue, 2 Apr 2019 17:41:49 +0000 (10:41 -0700)]
Output error messages to stderr. This provides a better integration with the .NET SDK (#23658)

5 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190401.9 (#23653)
dotnet-maestro[bot] [Tue, 2 Apr 2019 16:18:24 +0000 (12:18 -0400)]
Update dependencies from https://github.com/dotnet/corefx build 20190401.9 (#23653)

- Microsoft.NETCore.Platforms - 3.0.0-preview4.19201.9
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview4.19201.9

5 years agoJIT: prolog zeroing accounting changes (#23498)
Andy Ayers [Tue, 2 Apr 2019 16:06:32 +0000 (09:06 -0700)]
JIT: prolog zeroing accounting changes (#23498)

Stop double-counting some locals when computing how many slots need to be
zeroed in the prolog.

Bump threshold for rep stosb style init from 16 bytes to 32 bytes on x64.

5 years ago[EventPipe] Streaming events out-of-proc using IPC (#23448)
José Rivero [Tue, 2 Apr 2019 14:06:42 +0000 (07:06 -0700)]
[EventPipe] Streaming events out-of-proc using IPC (#23448)

- There was a race condition on EventPipe::Disable where we deallocated the s_pSession and set it to NULL, but there was still a thread waiting to write and dereference the null pointer. Now, we check that the session is not null.
- Added a new attach event to be handled to the Diagnostic server: Add streaming functionality (Syncronus) #23299
- On Linux, IPC was failing when delete was invoked because we were using new (std::nothrow) instead of new (nothrow) when allocating the newly connected clients/streams. I have replaced the call with new. This fixed #23580
- Move multiFileTraceLengthInSeconds out of the EventPipeSession.
- Unlink previously existing socket.
- EventPipeBlock: _ASSERTE was updated not to fail when data is not aligned if an error has already occurred.
- Update _ASSERTE in fastserializer.cpp to take into account the the write operation could have failed.

5 years agoUpdate CoreClr to preview4-27602-71
dotnet-maestro-bot [Tue, 2 Apr 2019 13:19:22 +0000 (06:19 -0700)]
Update CoreClr to preview4-27602-71

5 years agoRemove test exclusion for 23262 (#23405)
Michal Strehovský [Tue, 2 Apr 2019 12:48:47 +0000 (14:48 +0200)]
Remove test exclusion for 23262 (#23405)

The commit that added the test was rolled back.

5 years agoMove C/C++ and platform headers to pal/inc/rt/cpp folder
Ilia K [Thu, 28 Mar 2019 17:28:47 +0000 (20:28 +0300)]
Move C/C++ and platform headers to pal/inc/rt/cpp folder

Affected files: assert.h, emmintrin.h, and xmmintrin.h

Bug: 20784

5 years agoPermissionSet: follow netfx more in order to avoid workarounds with nullable (#23637)
Krzysztof Wicher [Tue, 2 Apr 2019 00:43:06 +0000 (17:43 -0700)]
PermissionSet: follow netfx more in order to avoid workarounds with nullable (#23637)

5 years agoUse join function in yaml for defining Helix queues and scenarios (#23367)
Egor Chesakov [Tue, 2 Apr 2019 00:37:53 +0000 (17:37 -0700)]
Use join function in yaml for defining Helix queues and scenarios (#23367)

* Enable Ubuntu.1804.Arm32.Open (running on Ubuntu.1604.Arm32.Open) against PRs

* Restrict Ubuntu.1404.Arm32.Open to running against CI (commit validation) only

* Enable Debian.9.Arm32.Open, Ubuntu.1604.Arm32.Open and Ubuntu.1804.Arm32.Open (running on Ubuntu.1604.Arm32.Open) against scheduled runs

* Enable Debian.9.Arm32, Ubuntu.1604.Arm32 and Ubuntu.1804.Arm32 (running on Ubuntu.1604.Arm32) in internal project (FYI, we haven't had any Linux arm32 testing in internal so far)

* Enable Debian.9.Arm64.Open (running on Ubuntu.1604.Arm64.Docker.Open) against scheduled runs

* Enable Alpine.38.Arm64 (running on Ubuntu.1604.Arm64.Docker) in internal project

5 years agoChange PermissionSet.SyncRoot to return this instead of null (#23631)
Krzysztof Wicher [Mon, 1 Apr 2019 23:23:52 +0000 (16:23 -0700)]
Change PermissionSet.SyncRoot to return this instead of null (#23631)

5 years agoMatch BOX idioms early in the importer (#23550)
Jan Kotas [Mon, 1 Apr 2019 23:20:55 +0000 (16:20 -0700)]
Match BOX idioms early in the importer (#23550)

5 years agorevert comment change:
Brian Sullivan [Mon, 1 Apr 2019 23:03:50 +0000 (16:03 -0700)]
revert comment change:
# Checked test builds

5 years agoDisable load byte array (#23638)
Steve MacLean [Mon, 1 Apr 2019 22:09:41 +0000 (18:09 -0400)]
Disable load byte array (#23638)

* Disable AssemblyLoadByteArrayName test

* Fix typo

5 years agoDisable AssemblyLoadByteArrayName test (#23635)
Steve MacLean [Mon, 1 Apr 2019 21:52:51 +0000 (17:52 -0400)]
Disable AssemblyLoadByteArrayName test (#23635)

5 years agoFix bad Debug.Assert statements in UTF-8 processing (#23627)
Levi Broderick [Mon, 1 Apr 2019 21:25:55 +0000 (14:25 -0700)]
Fix bad Debug.Assert statements in UTF-8 processing (#23627)

5 years agoRemove s_isProcessExiting and Clear of ALC list at exit
Jan Vorlicek [Mon, 1 Apr 2019 21:12:04 +0000 (23:12 +0200)]
Remove s_isProcessExiting and Clear of ALC list at exit

5 years agoLSRA cleanup (#23617)
Carol Eidt [Mon, 1 Apr 2019 20:33:12 +0000 (13:33 -0700)]
LSRA cleanup (#23617)

* LSRA cleanup

These are zero-diff changes. Some cleanup, some in preparation for improvemetns to save/restore of upper vectors.

5 years agoAdd new era in Japan called "Reiwa" (#23614)
Acid Chicken (硫酸鶏) [Mon, 1 Apr 2019 19:53:10 +0000 (04:53 +0900)]
Add new era in Japan called "Reiwa" (#23614)

* Add new era in Japan called "Reiwa"

* Update Japanese eras English names

refs: <https://github.com/dotnet/coreclr/pull/23614#issuecomment-478680005>

5 years ago[master] Update dependencies from dotnet/corefx (#23593)
dotnet-maestro[bot] [Mon, 1 Apr 2019 19:32:01 +0000 (12:32 -0700)]
[master] Update dependencies from dotnet/corefx (#23593)

- Microsoft.NETCore.Platforms - 3.0.0-preview4.19181.2
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview4.19181.2

5 years agoEnable R2R compilation/inlining of PInvoke stubs where no marshalling is required...
Fadi Hanna [Mon, 1 Apr 2019 19:07:47 +0000 (12:07 -0700)]
Enable R2R compilation/inlining of PInvoke stubs where no marshalling is required (#22560)

* These changes enable the inlining of some PInvokes that do not require any marshalling. With inlined pinvokes, R2R performance should become slightly better, since we'll avoid jitting some of the pinvoke IL stubs that we jit today for S.P.CoreLib. Performance gains not yet measured.

* Added JIT_PInvokeBegin/End helpers for all architectures. Linux stubs not yet implemented
* Add INLINE_GETTHREAD for arm/arm64
* Set CORJIT_FLAG_USE_PINVOKE_HELPERS jit flag for ReadyToRun compilations
* Updating R2RDump tool to handle pinvokes

5 years agoMerge branch 'master' into pipeline-work
Brian Sullivan [Mon, 1 Apr 2019 17:33:46 +0000 (10:33 -0700)]
Merge branch 'master' into pipeline-work

5 years agoEnable negative type-check results in CoreLib version bubble (#23549)
Jan Kotas [Mon, 1 Apr 2019 15:37:03 +0000 (08:37 -0700)]
Enable negative type-check results in CoreLib version bubble (#23549)

This negative type-check results are necessary to generate good code for AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted

5 years agoDeliver Unload event at exit for all ALCs
Jan Vorlicek [Mon, 1 Apr 2019 10:07:35 +0000 (12:07 +0200)]
Deliver Unload event at exit for all ALCs

Sending it just for collectible ALCs is not correct at process exit.

5 years agore-add test exclusion for #23545 (#23598)
Carol Eidt [Mon, 1 Apr 2019 00:02:38 +0000 (17:02 -0700)]
re-add test exclusion for #23545 (#23598)

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190329.11 ...
Jan Kotas [Sat, 30 Mar 2019 15:03:14 +0000 (08:03 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190329.11 (#23594)

- Microsoft.NETCore.App - 3.0.0-preview4-27529-11

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190329.2 (#23592)
dotnet-maestro[bot] [Sat, 30 Mar 2019 15:02:49 +0000 (08:02 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190329.2 (#23592)

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

5 years agoFix ARM64 isFullyImplementedIsa (#23590)
Fei Peng [Sat, 30 Mar 2019 14:43:38 +0000 (07:43 -0700)]
Fix ARM64 isFullyImplementedIsa (#23590)

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190329.11
dotnet-maestro [Sat, 30 Mar 2019 12:57:35 +0000 (12:57 +0000)]
Update dependencies from https://github.com/dotnet/core-setup build 20190329.11

- Microsoft.NETCore.App - 3.0.0-preview4-27529-11

5 years agoImplement IEquatable to Memory and ReadOnlyMemory (#23586)
Ganbarukamo41 [Sat, 30 Mar 2019 02:10:00 +0000 (02:10 +0000)]
Implement IEquatable to Memory and ReadOnlyMemory (#23586)

5 years agoClean up AssemblyLoadContext30Extensions test (#23581)
Steve MacLean [Sat, 30 Mar 2019 01:51:39 +0000 (21:51 -0400)]
Clean up AssemblyLoadContext30Extensions test (#23581)

Build test against corefx ref facade
Enable Assembly.Load(byte[], ...) test

5 years agoMerge pull request #23579 from sandreenko/removeFedoraRuns
Sergey Andreenko [Sat, 30 Mar 2019 00:18:44 +0000 (17:18 -0700)]
Merge pull request #23579 from sandreenko/removeFedoraRuns

Remove Fedora runs.

5 years agoIncrease GCStress test timeouts. (#23576)
Sergey Andreenko [Fri, 29 Mar 2019 23:45:31 +0000 (16:45 -0700)]
Increase GCStress test timeouts. (#23576)

New machines are slower that we had before, so increate the timeout for the longest runs.

5 years agoMake tracelogging GCStressIncompatible. (#23578)
Sergey Andreenko [Fri, 29 Mar 2019 23:45:06 +0000 (16:45 -0700)]
Make tracelogging GCStressIncompatible. (#23578)

5 years agoA new way of tracking variables (#23373)
Brian Bohe [Fri, 29 Mar 2019 23:38:53 +0000 (16:38 -0700)]
A new way of tracking variables (#23373)

* Defining VariableLiveRange class

* Adding some typedefs to avoid rewriting

* Defining VariableLiveDescriptor class

* Initializing VariableLiveRange structures before BasicBlock code is being generated

* Getting a siVarLoc for variable homes from a given LclVarDsc and stack level

* Defining VariableLiveKeeper class

* Reporting VariableLiveRanges on changes of variable livenesss or variable homes

* Adding USING_VARIABLE_LIVE_RANGE flag to enable disable VariableLiveRange

* Send VariableLiveRanges to debugger

* Reporting variable homes on prolog

* Wrong argument

* Miss to change variable homes count before sending them to debugger

* Adding dumper of VariableLiveRanges for each blocks and end of code generation

* Close all open VaribleLiveRanges on last BasicBlock

* Changing order of properties initialization on VariableLiveRange constructor

* Type error on assignation

* Rephrasing comments, moving dumps and fixing typos

* Changing const VARSET_TP* for VARSET_VALARG_TP on args

* Variable home was variable location in VariableLiveRange context

* Rephrase and rename of VariableLiveKeeper properties

* Missing some renames

* Adding const where BasicBlock should not be modified

* siBeginBlock and siInit have support for debug code for VariableLiveRange and siScope info

* Adding USING_VARIABLE_LIVE_RANGE flags on methods definition.

* Variable home -> variable location

* Renaming and rephrasing names and uses of VariableLiveRange

* Moving LiveRangeDumper ctor to class declation

* Removing destructors

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Removing blank spaces and reordering functions inside class definition

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Miss to increment the index after refactoring

* Logic for keeping the last BasicBlock end IL offset is shared between siScope and VariableLiverange for debug code

* Missing to print on debug the last block VariableLiveRanges

* Avoid updating VariableLiveRange when unspilling and dying at the same assembly instruction

* Rephrasing #ifs and #ifdefs

* Calling VariableLiveKeeper in one line

* Avoid copying siVarLoc on genSetScopeInfo

* Removing unused args from eeSetLVinfo

* Changing VariableLiveKeeper ctor

* Typo

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Updating VariableLiveDescriptor ctor

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Error on first argument

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Changing reference for pointer

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Renaming assembly offset -> native offset

* removing unnecesary comments and asserts

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Update VariableLiveRange dump message

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Moving VariableLiveRanges classes inside VariableLiveKeeper

* Wrong flag name

* Adding documentation about how we track variables for debug info

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Adding opened issues to doc file

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Changing dump tittle

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Renaming VariableLiveKeeper property

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Update documentation

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Updating comments on flags

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
* Setting Scope Info as default way of tracking variables for debug info

Signed-off-by: Brian Bohe <brianbohe@gmail.com>
5 years agoFix HW intrinsic containment bugs (#23558)
Carol Eidt [Fri, 29 Mar 2019 23:35:09 +0000 (16:35 -0700)]
Fix HW intrinsic containment bugs (#23558)

* Fix HW intrinsic containment bugs

For the Fma case (#23430), fix the handling of contained 3-operand HW intrinsic nodes.
For the Bmi case (#23534), fix a bad assert placement, and re-enable the Bmi tests.

Fix #23530
Fix #23534

* Add guard for Fma test

5 years agoAssembly.Load ALC name (#23574)
Steve MacLean [Fri, 29 Mar 2019 23:33:37 +0000 (19:33 -0400)]
Assembly.Load ALC name (#23574)

Use normalized path for ALC name

5 years agoRemove Fedora runs.
Sergey Andreenko [Fri, 29 Mar 2019 23:28:19 +0000 (16:28 -0700)]
Remove Fedora runs.

GCStress fails there because it can't use external disasembler when it is available in CoreRoot.

5 years agoMerge pull request #23533 from briansull/Issue_23441
Brian Sullivan [Fri, 29 Mar 2019 23:14:20 +0000 (16:14 -0700)]
Merge pull request #23533 from briansull/Issue_23441

Fix for issue 23411

5 years agoIncrease GCStress test timeouts.
Sergey Andreenko [Fri, 29 Mar 2019 22:31:28 +0000 (15:31 -0700)]
Increase GCStress test timeouts.

New machines are slower that we had before, so increate the timeout for the longest runs.

5 years agoRework Debug/Release builds
Brian Sullivan [Fri, 29 Mar 2019 22:20:13 +0000 (15:20 -0700)]
Rework Debug/Release builds
Revert Check build changes

5 years agoUse GenTreeStmt* where it is implied. (#22963)
Sergey Andreenko [Fri, 29 Mar 2019 22:17:37 +0000 (15:17 -0700)]
Use GenTreeStmt* where it is implied. (#22963)

* Extract `impAppendStmt` and `impExtractLastStmt`.

* Delete `BEG_STMTS` fake stmt.

Use new functions to keep the list updated.

* Retype `impTreeList` and `impTreeLast` as statements.
Rename `impTreeList` and `impTreeLast` to show that they are statements.

* Fix fields that have to be stmt.

* Start using GenTreeStmt.

Change `optVNAssertionPropCurStmt` to use GenTreeStmt.
Replace `GenTree* stmt = block->bbTreeList` with `GenTreeStmt* stmt = block->firstStmt()`.
Save results of `FirstNonPhiDef` as `GenTreeStmt`.

* Replace do-while with for loop.

* Change type inside VNAssertionPropVisitorInfo.

* Delete unused args fron `optVNConstantPropOnTree`.

* Update fields to be stmt.

Update optVNConstantPropCurStmt to use Stmt.
Change `lvDefStmt` to stmt.
Update LoopCloning structs.
Update `optDebugLogLoopCloning`.
Make `compCurStmt` a statement.
Update declaration name in `BuildNode`.

* Clean simple cpp files.

Clean valuenum.
Clean ssabuilder.
Clean simd.
Clean optcse.
Clean loopcloning.
Clean copyprop.
Clean optimizer part1.

* Start cleaning importer, morph, flowgraph, gentree.

* Continue clean functons.

Clean assertionprop.
Clean morph.
Clean gentree.
Clean flowgraph.
Clean compiler.
Clean rangecheck.
Clean indirectcalltransofrmer.
Clean others.

* Create some temp stmt.

* Delete unnecessary noway_assert and casts.

* Init `impStmtList` and `impLastStmt` in release.

* Response review 1.

5 years agoSimplify and unify Vector64/128/256 platform-agnostic intrinsic handling (#23028)
Fei Peng [Fri, 29 Mar 2019 21:28:30 +0000 (14:28 -0700)]
Simplify and unify Vector64/128/256 platform-agnostic intrinsic handling (#23028)

* Simplify and unify Vector64/128/256 platform-agnostic intrinsic handling

* Removed unsupported ISAs

5 years agoRework the if statements
Brian Sullivan [Fri, 29 Mar 2019 21:13:00 +0000 (14:13 -0700)]
Rework the if statements

5 years agoclone the whole code block and have two separate blocks for jobs
Brian Sullivan [Fri, 29 Mar 2019 20:48:48 +0000 (13:48 -0700)]
clone the whole code block and have two separate blocks for jobs
 - one for coreclr-ci and another for coreclr-outerloop.

5 years agoUse char16_t for *_W macros in corhdr.h on Linux/MacOs (#23559)
Ilia [Fri, 29 Mar 2019 20:00:08 +0000 (23:00 +0300)]
Use char16_t for *_W macros in corhdr.h on Linux/MacOs (#23559)

It fixes COR_CTOR_METHOD_NAME_W and many other macros on Linux
to be of type char16_t[] (not wchar_t[]) by using W("") instead of L"".

Bug: #21977

5 years agoexclude failing test. (#23566)
Sergey Andreenko [Fri, 29 Mar 2019 19:32:33 +0000 (12:32 -0700)]
exclude failing test. (#23566)

5 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190328.7 (#23555)
dotnet-maestro[bot] [Fri, 29 Mar 2019 18:06:02 +0000 (14:06 -0400)]
Update dependencies from https://github.com/dotnet/corefx build 20190328.7 (#23555)

- Microsoft.NETCore.Platforms - 3.0.0-preview4.19178.7
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview4.19178.7

5 years agoRemove / move to outer loop:
Brian Sullivan [Fri, 29 Mar 2019 17:45:57 +0000 (10:45 -0700)]
Remove / move to outer loop:
coreclr-ci (Test Pri0 Linux_musl arm64 checked)
coreclr-ci (Build Linux_musl arm64 debug)
coreclr-ci (Build Linux arm64 debug)
coreclr-ci (Build Linux_musl arm64 release)
coreclr-ci (Build Linux arm debug)
coreclr-ci (Build Linux_rhel6 x64 checked)
coreclr-ci (Build Linux_rhel6 x64 debug)
coreclr-ci (Build Windows_NT arm64 Debug)
coreclr-ci (Test Pri0 Linux_rhel6 x64 checked)
coreclr-ci (Build Linux_musl x64 debug)
coreclr-ci (build OSX x64 Debug)
coreclr-ci (build OSX x64 Release)
coreclr-ci (Build Windows_NT arm Debug)
coreclr-ci (build Linux x64 Debug)
coreclr-ci (build Linux x64 Release)
coreclr-ci (Build Linux arm release)
coreclr-ci (Build Windows_NT x64 Debug)
coreclr-ci (build Windows_NT x86 Release)

5 years agoCorrectly marshal structure return values in member functions on Win-x64 and Win...
Jeremy Koritzinsky [Fri, 29 Mar 2019 16:49:55 +0000 (09:49 -0700)]
Correctly marshal structure return values in member functions on Win-x64 and Win-x86 (#23145)

* In Windows-x64, if we have a native member function signature with a struct return type, we need to do a by-ref return.

* Implement support for marshalling structure return values via a return buffer argument correctly in instance signatures on AMD64-Windows.

* Change field initialization ordering to satisfy warning.

* Try to narrow down the conditions that trigger these changes to just COM methods.

* Don't bash the return type on AMD64 Windows. Only treat it as a byref return buffer.

* PR feedback.

* Enable returning structs from COM methods via a return buffer on x86 for structs <= 8 bytes.

* Add test for struct returns with ThisCall. Extend the "struct return buffer" fix to functions marked as unmanaged thiscall since they all must be instance methods

* Don't include the return-type-bashing switch on AMD64 platforms.

* Don't do the signature swapping/copy on non-instance functions with struct returns.

* Cast the return type of GetStubTargetCallingConv to the right calling convention enum type.

* If we're doing a thiscall, marshal the "this" parameter before the return buffer (if the return buffer exists) on all platforms.

* Remove temporary logging code I added in for debugging.

* Clean up class naming.

* Try using a vtable instead of a pointer-to-member-function.

* Remove delete of class with non-virtual destructor

5 years agoMerge pull request #23423 from franksinankaya/gcc_cleanup_16
Jan Vorlicek [Fri, 29 Mar 2019 16:44:01 +0000 (17:44 +0100)]
Merge pull request #23423 from franksinankaya/gcc_cleanup_16

SSE abstraction for GCC and abstract __if_exists

5 years agoChange Timer implementation on Unixes to use only one scheduling thread (#7071)
Koundinya Veluri [Fri, 29 Mar 2019 13:53:35 +0000 (06:53 -0700)]
Change Timer implementation on Unixes to use only one scheduling thread (#7071)

* Change Timer implementation on Unixes to use only one scheduling thread

- Separated from https://github.com/dotnet/corert/pull/7066

* Address feedback from https://github.com/dotnet/corert/pull/7066

* Remove reference to s_lock

* Reduce work inside lock

* Move _id

* Fix duplicate timers in scheduled timer list, move info to TimerQueue

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190328.14 ...
dotnet-maestro[bot] [Fri, 29 Mar 2019 15:03:10 +0000 (11:03 -0400)]
Update dependencies from https://github.com/dotnet/core-setup build 20190328.14 (#23556)

- Microsoft.NETCore.App - 3.0.0-preview4-27528-14

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190329.1 (#23554)
dotnet-maestro[bot] [Fri, 29 Mar 2019 15:02:57 +0000 (11:02 -0400)]
Update dependencies from https://github.com/dotnet/arcade build 20190329.1 (#23554)

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

5 years agoif exists
Sinan Kaya [Sat, 16 Feb 2019 20:16:11 +0000 (20:16 +0000)]
if exists

llvm

5 years agoUnify clang with GNUC
Sinan Kaya [Sun, 24 Mar 2019 23:45:43 +0000 (23:45 +0000)]
Unify clang with GNUC

Enable SSE for GCC

5 years ago Updating BuildTools, CoreCLR to preview4-03828-01, preview4-27528-71, respectively...
Tanner Gooding [Fri, 29 Mar 2019 13:32:52 +0000 (06:32 -0700)]
 Updating BuildTools, CoreCLR to preview4-03828-01, preview4-27528-71, respectively (#23536)

* Removing FeedTasksPackageVersion from dependencies.props
* The corresponding metadata was removed in https://github.com/dotnet/coreclr/pull/22884

* Updating BuildTools, CoreCLR to preview4-03828-01, preview4-27528-71, respectively

* Adding a ! in String.Searching.cs

5 years agoFix accidental non-collectible context unloading
Jan Vorlicek [Fri, 29 Mar 2019 11:55:00 +0000 (12:55 +0100)]
Fix accidental non-collectible context unloading

The OnProcessExit was iterating over the s_contextsToUnload and calling
Unload on each of the contexts. However the s_contextsToUnload is a
misnomer, it contains all the contexts, both collectible and
non-collectible ones. So we were calling Unload on non-collectible
contexts too there. That resulted in InvalidOperationException being
thrown from the OnProcessExit.

This change fixes that by calling unload only on ALCs whose
IsCollectible returns true. It also renames the s_contextsToUnload to
s_allContexts.

Close #22902

5 years agoAvoid boxing allocations for async in Tier0 (#22984)
Ben Adams [Fri, 29 Mar 2019 06:49:08 +0000 (23:49 -0700)]
Avoid boxing allocations for async in Tier0 (#22984)

5 years agoDelete simple unused vars2 (#23491)
Sergey Andreenko [Fri, 29 Mar 2019 06:37:29 +0000 (23:37 -0700)]
Delete simple unused vars2 (#23491)

* Clean `valuenum.cpp`.

* Clean `emitarm64.cpp`.

* Clean `lsraarm64.cpp`.

* Clean `lsraarmarch.cpp`.

* Clean `lowerarmarch.cpp`.

* Clean `lower.cpp`.

* Clean `ssabuilder.cpp`.

* Clean `simd.cpp`.

* Clear `simdcodegenxarch.cpp`.

* Clean `lowerxarch.cpp`.

* Clean `scopeinfo.cpp`.

5 years ago[master] Update dependencies from dotnet/core-setup (#23407)
dotnet-maestro[bot] [Fri, 29 Mar 2019 06:10:26 +0000 (23:10 -0700)]
[master] Update dependencies from dotnet/core-setup (#23407)

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

- Microsoft.NETCore.App - 3.0.0-preview4-27528-01

5 years agoSimplify StackFrame class (#23483)
Marek Safar [Fri, 29 Mar 2019 06:09:12 +0000 (07:09 +0100)]
Simplify StackFrame class (#23483)

5 years agoDelete RuntimeThread.cs (#23532)
Jan Kotas [Fri, 29 Mar 2019 06:00:53 +0000 (23:00 -0700)]
Delete RuntimeThread.cs (#23532)

No longer needed

5 years agoImprove performance of Marvin32 (#22816)
Levi Broderick [Fri, 29 Mar 2019 05:25:16 +0000 (22:25 -0700)]
Improve performance of Marvin32 (#22816)