platform/upstream/dotnet/runtime.git
4 years agoMerge pull request #2393 from EgorBo/fix-mono-sample
Egor Bogatov [Tue, 4 Feb 2020 17:52:00 +0000 (20:52 +0300)]
Merge pull request #2393 from EgorBo/fix-mono-sample

Add RunSample target to mono.proj

4 years agoOptimize `box + isinst + unbox.any` as `nop` (#1817)
Egor Bogatov [Tue, 4 Feb 2020 16:52:57 +0000 (19:52 +0300)]
Optimize `box + isinst + unbox.any` as `nop` (#1817)

Extend box pattern match to cover `box + isinst + unbox.any` .

4 years agoBump version to 6.13 (#31715)
monojenkins [Tue, 4 Feb 2020 16:42:34 +0000 (11:42 -0500)]
Bump version to 6.13 (#31715)

Co-authored-by: Jo Shields <directhex@apebox.org>
4 years agoLibraries code should not mutate string instances (#31700)
Levi Broderick [Tue, 4 Feb 2020 16:14:45 +0000 (08:14 -0800)]
Libraries code should not mutate string instances (#31700)

4 years agoUpdate src/mono/mono.proj
Egor Bogatov [Tue, 4 Feb 2020 15:06:20 +0000 (18:06 +0300)]
Update src/mono/mono.proj

Co-Authored-By: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoUpdate src/mono/mono.proj
Egor Bogatov [Tue, 4 Feb 2020 15:06:10 +0000 (18:06 +0300)]
Update src/mono/mono.proj

Co-Authored-By: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoRemove AppDomain usage from stack walk and related places (#31708)
Jan Vorlicek [Tue, 4 Feb 2020 15:03:47 +0000 (16:03 +0100)]
Remove AppDomain usage from stack walk and related places (#31708)

This is yet another cleanup removal of the AppDomain.

4 years agoAddress feedback
EgorBo [Tue, 4 Feb 2020 14:59:03 +0000 (17:59 +0300)]
Address feedback

4 years ago[interp] Remove goto for code_type unknown | interp | compiled. (#31667)
monojenkins [Tue, 4 Feb 2020 14:40:20 +0000 (09:40 -0500)]
[interp] Remove goto for code_type unknown | interp | compiled. (#31667)

[interp] Remove goto for code_type unknown | interp | compiled.

The goto kinda implies a loop, but it is really just handling one case
before the other, but the source misorders the checks, perhaps for perf,
which maybe, can be done equivalently with G_UNLIKELY, and also remove
some possible extra memory reads.

Co-authored-by: Jay Krell <jay.krell@cornell.edu>
4 years agoImplement Socket.DuplicateAndClose() for Windows (#1858)
Anton Firszov [Tue, 4 Feb 2020 13:18:19 +0000 (14:18 +0100)]
Implement Socket.DuplicateAndClose() for Windows (#1858)

* reimplement socket duplication, fix #1760

* additional cleanup

* ungroup PNSE tests, no RemoteExecutor timeout

* address review findings

* fix path for Interop.WSADuplicateSocket.cs

* remove swallowing in Socket(SocketInformation)

* review suggestions

* make sure duplicate socket is not inheritable

* remove debug code leftover

* harden SocketPal.CreateSocket()

* blittable WSAPROTOCOL_INFOW

* additional naming fixes,

default System.Net.Sockets.sln configurations to Windows_NT again

* disposal on errors, improve comments, more tests

* nits

* handle GetSockName() error

4 years agoUpdate ILLinkTasksVersion dependency (#2334)
Marek Safar [Tue, 4 Feb 2020 13:01:52 +0000 (14:01 +0100)]
Update ILLinkTasksVersion dependency (#2334)

4 years agoClean up
EgorBo [Tue, 4 Feb 2020 12:07:07 +0000 (15:07 +0300)]
Clean up

4 years agoWhen the interpreter does recurse, use a different function (#31635)
monojenkins [Tue, 4 Feb 2020 12:02:42 +0000 (07:02 -0500)]
When the interpreter does recurse, use a different function (#31635)

for each call site, so you can tell from a WebAssembly stack
which case it is. i.e. with function names but no line numbers.

With this, we can see that call_varargs contributes to the problem
here: https://github.com/mono/mono/issues/18646

Also, do not inline the interpreter, it probably/hopefully never was.

Co-authored-by: Jay Krell <jay.krell@cornell.edu>
4 years agoDon't require Checked config for coreclr tests
EgorBo [Tue, 4 Feb 2020 11:59:44 +0000 (14:59 +0300)]
Don't require Checked config for coreclr tests

4 years ago[runtime] Fix the --enable-minimal=aot build. (#31684)
Zoltan Varga [Tue, 4 Feb 2020 08:51:32 +0000 (03:51 -0500)]
[runtime] Fix the --enable-minimal=aot build. (#31684)

Fixes https://github.com/mono/mono/issues/18675.

4 years agoRemove remaining libraries references to string.Copy (#31706)
Levi Broderick [Tue, 4 Feb 2020 08:22:44 +0000 (00:22 -0800)]
Remove remaining libraries references to string.Copy (#31706)

4 years agoRevert "Revert "Optimize typeof(T1).IsAssignableFrom(typeof(T2))" (#31643)" (#31705)
Jan Kotas [Tue, 4 Feb 2020 08:08:50 +0000 (00:08 -0800)]
Revert "Revert "Optimize typeof(T1).IsAssignableFrom(typeof(T2))" (#31643)" (#31705)

This reverts commit 729276d30fbafdc28cd9813f74c0bb49702d775c.

4 years agoMerge pull request #31699 from AndyAyersMS/Fix31665
Andy Ayers [Tue, 4 Feb 2020 07:45:48 +0000 (23:45 -0800)]
Merge pull request #31699 from AndyAyersMS/Fix31665

JIT: remove assert from postorder return value optimizations

4 years agoRemove unused locals in System.ServiceProcess.ServiceController (#31704)
Next Turn [Tue, 4 Feb 2020 07:24:17 +0000 (15:24 +0800)]
Remove unused locals in System.ServiceProcess.ServiceController (#31704)

* Remove unused locals in System.ServiceProcess.ServiceController

* Inline status variable

* Apply suggestions from code review

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years ago[interp]Fix the type of clause_args. (#31651)
monojenkins [Tue, 4 Feb 2020 06:26:50 +0000 (01:26 -0500)]
[interp]Fix the type of clause_args. (#31651)

Co-authored-by: Jay Krell <jay.krell@cornell.edu>
4 years agoFix logic in compareTypesForCast (#31681)
Andy Ayers [Tue, 4 Feb 2020 05:30:56 +0000 (21:30 -0800)]
Fix logic in compareTypesForCast (#31681)

We weren't careful enough with `__Canon` in some cases, which lead to unsafely
returning `MustNot` when the cast outcome was not determined at jit time.

Add an extra check, update comments, and add some test cases.

Addresses the failures seen in #1195 (which was reverted).

4 years agoFix issue 1871 exception test failing (#31696)
Mike McLaughlin [Tue, 4 Feb 2020 05:04:27 +0000 (21:04 -0800)]
Fix issue 1871 exception test failing (#31696)

Don't adjust the offset by 1 instead of the architecture instruction size (STACKWALK_CONTROLPC_ADJUST_OFFSET).

4 years agoAllow null IV for Create{Encryptor,Decryptor}.
Kevin Jones [Tue, 4 Feb 2020 04:03:21 +0000 (23:03 -0500)]
Allow null IV for Create{Encryptor,Decryptor}.

The IV is permitted to be null for most ciphers when in ECB
mode.

4 years agoAdd missing nullability annotation to string ctor (#31702)
Levi Broderick [Tue, 4 Feb 2020 03:19:14 +0000 (19:19 -0800)]
Add missing nullability annotation to string ctor (#31702)

4 years agoset THUMB_CODE bit (#21180)
Yaroslav Yamshchikov [Tue, 4 Feb 2020 02:46:54 +0000 (05:46 +0300)]
set THUMB_CODE bit (#21180)

4 years ago[aot] Avoid inflating gparams with byreflike types during generic sharing. (#31670)
Zoltan Varga [Tue, 4 Feb 2020 02:35:04 +0000 (21:35 -0500)]
[aot] Avoid inflating gparams with byreflike types during generic sharing. (#31670)

Fixes https://github.com/mono/mono/issues/18676.

4 years ago[Arm64] Update execution characteristics for crc32b, crc32h, facge, facgt (#8500)
Egor Chesakov [Tue, 4 Feb 2020 01:47:14 +0000 (17:47 -0800)]
[Arm64] Update execution characteristics for crc32b, crc32h, facge, facgt (#8500)

* Add execution characteristics for Crc32 instructions in emitarm64.cpp

* Update execution characteristics for DV_3B instructions in emitarm64.cpp

* Add execution characteristics for DV_3D instructions in emitarm64.cpp

* Update comment in emitIns_R_R_R in emitarm64.cpp

4 years agoSave stack arguments size in InlinedCallFrame.m_Datum on x86 to handle callee's poppi...
Fadi Hanna [Tue, 4 Feb 2020 01:09:30 +0000 (20:09 -0500)]
Save stack arguments size in InlinedCallFrame.m_Datum on x86 to handle callee's popping of arguments (#26834)

* Save stack arguments size in InlinedCallFrame.m_Datum on x86 to handle callee's popping of arguments

* Move stack arguments sizes logic to Windows-only

4 years agoFix package testing run name prefix (#31690)
Santiago Fernandez Madero [Tue, 4 Feb 2020 00:44:33 +0000 (16:44 -0800)]
Fix package testing run name prefix (#31690)

4 years agoJIT: remove assert from postorder return value optimizations
Andy Ayers [Tue, 4 Feb 2020 00:34:34 +0000 (16:34 -0800)]
JIT: remove assert from postorder return value optimizations

We were trying to assert that we weren't losing side effects when folding
return value trees. But this seems to be more trouble than it is worth as
the set of side effects can also change.

Also re-enable the disabled tests, and make one of them Pri0.

Fixes #31665.

4 years agoDisable two JIT tests failing with known issue tracked under #31665 (#31674)
Tomáš Rylek [Tue, 4 Feb 2020 00:19:59 +0000 (01:19 +0100)]
Disable two JIT tests failing with known issue tracked under #31665 (#31674)

* Disable two JIT tests failing with known issue tracked under #31665

* Address Andy's PR feedback - make the exclusion clauses global

4 years agoDelete unnecessary netstandard builds (#31641)
Jan Kotas [Tue, 4 Feb 2020 00:14:05 +0000 (16:14 -0800)]
Delete unnecessary netstandard builds (#31641)

* Delete unnecessary netstandard builds and NuGet packages of inbox components

- Delete netstandard builds and NuGet packages for System.Reflection.Emit.*
- Delete netstandard builds and NuGet packages for System.Reflection.TypeExtensions
- Delete netstandard build for System.Buffers\ref
- Delete clrcompression UAP  build support

Contributes to #2138

* Remove packages from the baseline

4 years agoMerge pull request #31694 from DrewScoggins/anscoggi/FixArch
Drew Scoggins [Tue, 4 Feb 2020 00:08:52 +0000 (16:08 -0800)]
Merge pull request #31694 from DrewScoggins/anscoggi/FixArch

* Update Arch and add RunKind variable

* Fix up Linux script as well

4 years agoFix up Linux script as well
Drew Scoggins [Mon, 3 Feb 2020 23:58:12 +0000 (15:58 -0800)]
Fix up Linux script as well

4 years agoAdd Single and Double overloads to BinaryPrimitives (#6864)
Eric Erhardt [Mon, 3 Feb 2020 23:48:01 +0000 (17:48 -0600)]
Add Single and Double overloads to BinaryPrimitives (#6864)

* Add Single and Double overloads to BinaryPrimitives

Fix #2365

4 years agoRemove popped trees more aggressively. (#31677)
Eugene Rozenfeld [Mon, 3 Feb 2020 23:40:18 +0000 (15:40 -0800)]
Remove popped trees more aggressively. (#31677)

When processing CEE_POP the importer sometimes created trees
like
ASG(tmp1, expr)
followed by
COMMA(ADDR(tmp1), NOP))
and that was causing some CQ issues.

LocalAddressVisitor was then marking tmp1 as address-exposed
and we never get rid of the dead ASG(tmp1, expr). What's worse, we
then were adding a zero-initialization for tmp1 in the prolog.

The fix here is to create a NOP instead of a COMMA is there are
no side-effects in the first operand of the COMMA.

This addresses the first example in #2325.

4 years agoUpdate Arch and add RunKind variable
Drew Scoggins [Mon, 3 Feb 2020 23:39:42 +0000 (15:39 -0800)]
Update Arch and add RunKind variable

4 years agoMerge branch 'master' of https://www.github.com/dotnet/runtime
Drew Scoggins [Mon, 3 Feb 2020 23:38:14 +0000 (15:38 -0800)]
Merge branch 'master' of https://github.com/dotnet/runtime

4 years agoInitial Crossgen2 fixes for composite R2R support (#31652)
Tomáš Rylek [Mon, 3 Feb 2020 23:19:21 +0000 (00:19 +0100)]
Initial Crossgen2 fixes for composite R2R support (#31652)

With initial local changes to enable composite R2R I have finally
been able to compile a CoreCLR unit test in this mode. It doesn't
yet work at runtime, these changes just fix initial compiler issues
I hit during the build:

1) Delegate constructor signature was missing some comparison logic
that ended up asserting in the node comparer in the composite
build.

2) I have removed two seeminly superfluous parameters to
CreateMethodEntrypointNodeHelper.

3) I have removed an assertion related to multi-file RVA fields
that I believe to be no longer relevant after the refactorings
to copy the RVA fields around properly.

Thanks

Tomas

4 years agoLink System.Globalization.Native into coreclr (#6928)
Santiago Fernandez Madero [Mon, 3 Feb 2020 21:53:39 +0000 (13:53 -0800)]
Link System.Globalization.Native into coreclr (#6928)

* Link System.Globalization.Native into coreclr

* Add more paths to coreclr subset filters

* Fix linux build

* PR Feedback

* PR Feedback 2

* Fix build (pass -DREPO_ROOT_DIR only on coreclr atm), System.IO.Ports.Native needs to be built first

* Remove version header file from static libs

* Remove CORECLR_BUILD variable definition

4 years agohandle GetSockName() error
Anton Firszov [Mon, 3 Feb 2020 21:08:59 +0000 (22:08 +0100)]
handle GetSockName() error

4 years ago[mini] Add method-triggered printing for runtime stats (#2355)
monojenkins [Mon, 3 Feb 2020 21:05:51 +0000 (16:05 -0500)]
[mini] Add method-triggered printing for runtime stats (#2355)

This work extends the `--stats` command to take in an optional method name. When a matching method is compiled or transformed, the stats will be printed out at that point in addition to after program execution. This is useful for products looking to measure startup time and activity, as well as for ourselves to track any loader performance regressions.

Once this lands, we should see about running it on a cadence, ideally on both desktop and Android. Additionally, more work needs to be done to the counters to expose them in a way more friendly to consumption on Android/wasm (including a callback). We should also update the website to document this additional behavior.

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Co-authored-by: Kyle Markland <v-kymark@microsoft.com>
Co-authored-by: Rene Garcia <v-regarc@microsoft.com>
4 years agoLibraries native renames (#31668)
Steve MacLean [Mon, 3 Feb 2020 20:42:16 +0000 (15:42 -0500)]
Libraries native renames (#31668)

Match coreclr & cross compilation naming conventions

Rename BIT64                -> TARGET_64BIT   in src/libraries/Native
Rename BIT32                -> TARGET_32BIT   in src/libraries/Native
Rename FEATURE_PAL          -> TARGET_UNIX    in src/libraries/Native
Rename PLATFORM_UNIX        -> TARGET_UNIX    in src/libraries/Native
Rename PLATFORM_WINDOWS     -> TARGET_WINDOWS in src/libraries/Native
Rename PLATFORM_OSX         -> TARGET_OSX     in src/libraries/Native
Rename _ARM_                -> TARGET_ARM     in src/libraries/Native
Rename _ARM64_              -> TARGET_ARM64   in src/libraries/Native
Rename _AMD64_              -> TARGET_AMD64   in src/libraries/Native
Rename _X86_                -> TARGET_X86     in src/libraries/Native
Rename ARM                  -> TARGET_ARM     in src/libraries/Native
Rename ARM64                -> TARGET_ARM64   in src/libraries/Native
Rename AMD64                -> TARGET_AMD64   in src/libraries/Native
Rename X86_                 -> TARGET_X86     in src/libraries/Native

4 years agonits
Anton Firszov [Mon, 3 Feb 2020 19:51:04 +0000 (20:51 +0100)]
nits

4 years agoCatch ObjectDisposedException in SmtpClient.Abort (#22867)
Stephen Toub [Mon, 3 Feb 2020 19:19:38 +0000 (14:19 -0500)]
Catch ObjectDisposedException in SmtpClient.Abort (#22867)

* Catch ObjectDisposedException in SmtpClient.Abort

* Address PR feedback

* Apply suggestions from code review

Co-Authored-By: Cory Nelson <phrosty@gmail.com>
Co-authored-by: Cory Nelson <phrosty@gmail.com>
4 years agoClean up
EgorBo [Mon, 3 Feb 2020 18:24:47 +0000 (21:24 +0300)]
Clean up

4 years agoFix x86 InlinedCallFrame popping during EH (#2215)
Jan Vorlicek [Mon, 3 Feb 2020 18:16:19 +0000 (19:16 +0100)]
Fix x86 InlinedCallFrame popping during EH (#2215)

* Fix x86 InlinedCallFrame popping during EH

There is a bug in InlinedCallFrame popping on x86 during EH with R2R
compiled code. The code is popping this frame if it is at the top of
the explicit frames stack before executing catch handler. But it
is missing a check to see if the frame was actually in the unwound part
of the stack. So in some corner cases, it can end up popping a frame
that belongs to an active pinvoke somewhere up the call chain.

The fix is to do the popping only if the InlinedCallFrame is located at
an address smaller than the ESP of the caller of the method that
contains the exception handler.

* Fix typos in a comment close to my change
* Remove workaround for the original issue

4 years agoAnnotate System.ComponentModel.Composition for nullable (#1842)
buyaa-n [Mon, 3 Feb 2020 18:11:04 +0000 (10:11 -0800)]
Annotate System.ComponentModel.Composition for nullable (#1842)

* Annotating System.ComponentModel.Composition for nullable

4 years agoClean up
EgorBo [Mon, 3 Feb 2020 18:07:46 +0000 (21:07 +0300)]
Clean up

4 years agoMake fixup decoding lazy (#31646)
Andrew Au [Mon, 3 Feb 2020 18:05:51 +0000 (10:05 -0800)]
Make fixup decoding lazy (#31646)

4 years agoUpdate mono.proj
EgorBo [Mon, 3 Feb 2020 15:57:18 +0000 (18:57 +0300)]
Update mono.proj

4 years agoFix RunCoreClrTest on *nix
EgorBo [Mon, 3 Feb 2020 15:43:54 +0000 (18:43 +0300)]
Fix RunCoreClrTest on *nix

4 years agoNullable annotate System.Security.Principal.Windows (#2347)
Eirik Tsarpalis [Mon, 3 Feb 2020 15:17:28 +0000 (15:17 +0000)]
Nullable annotate System.Security.Principal.Windows (#2347)

* annotate System.Security.Principal.Windows

* enable nullable for ref assembly

* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/SID.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/SID.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* address feedback

* address feedback

* remove dead code

* remove ComVisibleAttribute

* Make domainSid optional in Sid constructor

* add omitted nullable annotation

* address feedback

* work around annotation issue

* try fixing build

* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/WindowsIdentity.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* Update src/libraries/System.Security.Principal.Windows/src/System/Security/Principal/WindowsIdentity.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
* address feedback

Co-authored-by: Stephen Toub <stoub@microsoft.com>
4 years agoAdd missing method dependency to Mono SPC (#2338)
Marek Safar [Mon, 3 Feb 2020 14:40:45 +0000 (15:40 +0100)]
Add missing method dependency to Mono SPC (#2338)

* Add missing method dependency to Mono SPC

Fixes #2227

* Reenable ILLinkTrimAssembly

* Fix entries in linker xml that used wrong names

* Add more entries to linker xml from CoreCLR

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agodisposal on errors, improve comments, more tests
Anton Firszov [Mon, 3 Feb 2020 14:34:10 +0000 (15:34 +0100)]
disposal on errors, improve comments, more tests

4 years agoAdd run-sample-coreclr rule
EgorBo [Mon, 3 Feb 2020 14:27:49 +0000 (17:27 +0300)]
Add run-sample-coreclr rule

4 years agoImprove RunCoreClrTests target
EgorBo [Mon, 3 Feb 2020 13:53:26 +0000 (16:53 +0300)]
Improve RunCoreClrTests target

4 years ago[build] Check for Python 3 in configure.ac (#2372)
monojenkins [Mon, 3 Feb 2020 13:46:10 +0000 (08:46 -0500)]
[build] Check for Python 3 in configure.ac (#2372)

* [build] Check for Python 3 in configure.ac

I fear this causing packaging problems, but as-is we require Python 3 for most of our Python files but don't actually check for that in configure. We should be consistent about this. Some projects (notably wasm) also use the Python version detected here, so bumping this will also bump the version used in those cases (a good thing, since there are some known bugs when using the scripts with Python 2).

* Update docker images to reflect py3 inclusion

* Update centos-7 image

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoAddress feedback
EgorBo [Mon, 3 Feb 2020 12:38:45 +0000 (15:38 +0300)]
Address feedback

4 years agofix build
EgorBo [Mon, 3 Feb 2020 12:36:33 +0000 (15:36 +0300)]
fix build

4 years agoAddress feedback
EgorBo [Mon, 3 Feb 2020 12:30:31 +0000 (15:30 +0300)]
Address feedback

4 years ago[interp] Fix enum constrained calls on netcore (#31618)
Vlad Brezae [Mon, 3 Feb 2020 11:08:05 +0000 (03:08 -0800)]
[interp] Fix enum constrained calls on netcore (#31618)

We were failing to dereference a managed pointer to the enum, due to incorrect checks, when doing a constrained call.

Fixes https://github.com/mono/mono/issues/18530

4 years agoAdd RunCoreClrTests target
EgorBo [Mon, 3 Feb 2020 11:04:14 +0000 (14:04 +0300)]
Add RunCoreClrTests target

4 years agoFix ppc64 build by fixing -mminimal-toc more correctly. (#31636)
monojenkins [Mon, 3 Feb 2020 10:17:03 +0000 (05:17 -0500)]
Fix ppc64 build by fixing -mminimal-toc more correctly. (#31636)

The original fix back at mono/mono#18554 did not work quite right, which was missed for lack of CI.
Reworked this check to instead test for `-mminimal-toc` on all powerpc hosts, and to only do the ELF version check on FreeBSD.

Fixes mono/mono#18554 mono/mono#18578 current CI build failures on AIX

Co-authored-by: Phil Jaenke <prj@rootwyrm.com>
4 years agoAdd RunCoreClrTest target
EgorBo [Mon, 3 Feb 2020 07:48:06 +0000 (10:48 +0300)]
Add RunCoreClrTest target

4 years agoRevert "Optimize typeof(T1).IsAssignableFrom(typeof(T2))" (#31643)
Jan Kotas [Mon, 3 Feb 2020 06:12:13 +0000 (22:12 -0800)]
Revert "Optimize typeof(T1).IsAssignableFrom(typeof(T2))" (#31643)

4 years agoSplit binder tracing tests into separate test projects (#3855)
Elinor Fung [Mon, 3 Feb 2020 05:56:51 +0000 (21:56 -0800)]
Split binder tracing tests into separate test projects (#3855)

* Split binder tracing tests into separate test projects

* Stop using specific time when waiting for events

* Don't run tests in a separate process under GC stress

4 years agoSkip EqualityComparer<TKey>.Default creation in Dictionary .ctor (#31629)
Ben Adams [Mon, 3 Feb 2020 04:18:06 +0000 (04:18 +0000)]
Skip EqualityComparer<TKey>.Default creation in Dictionary .ctor (#31629)

* Skip EqualityComparer<TKey>.Default creation in Ditctionary .ctor

* Update src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
4 years agoFix build
EgorBo [Sun, 2 Feb 2020 23:55:18 +0000 (02:55 +0300)]
Fix build

4 years agoFix build
EgorBo [Sun, 2 Feb 2020 23:36:37 +0000 (02:36 +0300)]
Fix build

4 years agoMerge branch 'master' of github.com:dotnet/runtime into fix-mono-sample
EgorBo [Sun, 2 Feb 2020 23:21:48 +0000 (02:21 +0300)]
Merge branch 'master' of github.com:dotnet/runtime into fix-mono-sample

4 years agoClean up
EgorBo [Sun, 2 Feb 2020 23:21:34 +0000 (02:21 +0300)]
Clean up

4 years agoMove more things from Makefile to mono.proj
EgorBo [Sun, 2 Feb 2020 22:34:10 +0000 (01:34 +0300)]
Move more things from Makefile to mono.proj

4 years agoEliminated info creation for non-public properties (#2278)
Yoh Deadfall [Sun, 2 Feb 2020 19:56:18 +0000 (22:56 +0300)]
Eliminated info creation for non-public properties (#2278)

4 years agoOptimize typeof(T1).IsAssignableFrom(typeof(T2)) (#1195)
Andy Ayers [Sun, 2 Feb 2020 18:52:45 +0000 (10:52 -0800)]
Optimize typeof(T1).IsAssignableFrom(typeof(T2)) (#1195)

* Optimize Type.IsAssignableFrom

* Add TypeIntrinsics.IsAssignableFrom to TypeIntrinsics.csproj

* Formatting

* Add License header

* Remove assert

* fix "mustexpand assert"

* Add tests for Arrays of vt

4 years agoMerge branch 'master' of github.com:dotnet/runtime into fix-mono-sample
EgorBo [Sun, 2 Feb 2020 18:35:40 +0000 (21:35 +0300)]
Merge branch 'master' of github.com:dotnet/runtime into fix-mono-sample

4 years agoAdjust mono_class_init_internal to no longer bypass cleanup when a fa… (#21964)
monojenkins [Sun, 2 Feb 2020 16:29:45 +0000 (11:29 -0500)]
Adjust mono_class_init_internal to no longer bypass cleanup when a fa… (#21964)

…ilure is detected.

This fixes: https://issuetracker.unity3d.com/issues/unity-physics-collisions-do-not-work-and-errors-are-thrown-when-entering-play-mode

<!--
Thank you for your Pull Request!

If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.

Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->

Co-authored-by: Alex Thibodeau <alexthibodeau@unity3d.com>
4 years agoAllow type mismatch for struct single field (#6102)
Carol Eidt [Sun, 2 Feb 2020 14:28:43 +0000 (06:28 -0800)]
Allow type mismatch for struct single field (#6102)

On Arm64, we can have an HVA or HFA with a single scalar or SIMD field. When it is the destination of an assigment to a call result, the assignment may be re-typed to the non-struct type. It may be ideal in the long run to defer this re-typing until Lowering, but allow this case for now.

Fix #2182

Loosen assert

4 years ago[llvm] Enable jump threading with LLVM JIT. (#25687)
monojenkins [Sun, 2 Feb 2020 06:18:23 +0000 (01:18 -0500)]
[llvm] Enable jump threading with LLVM JIT. (#25687)

See https://github.com/mono/mono/issues/16243. This will allow elision of redundant bounds checks. This pass is already used during AOT (as part of opt -O2).

Here's `FirstOrDefault` (from mono/mono#16243) with this change:
```
0000000000000000 <gram_FirstOrDefault__int___>:
<BB>:1
   0: 31 c0                 xor    %eax,%eax
   2: 48 85 ff              test   %rdi,%rdi
   5: 74 09                 je     10 <gram_FirstOrDefault__int___+0x10>
   7: 83 7f 18 01           cmpl   $0x1,0x18(%rdi)
   b: 7e 03                 jle    10 <gram_FirstOrDefault__int___+0x10>
   d: 8b 47 24              mov    0x24(%rdi),%eax
  10: c3                    retq
***
```

Co-authored-by: imhameed <imhameed@microsoft.com>
4 years agoHighlight directory (#31625)
Ben Adams [Sun, 2 Feb 2020 06:01:51 +0000 (06:01 +0000)]
Highlight directory (#31625)

4 years agoJIT: fold trees after inline return expression updates (#1751)
Andy Ayers [Sat, 1 Feb 2020 19:41:47 +0000 (11:41 -0800)]
JIT: fold trees after inline return expression updates (#1751)

Aggressively fold as we substitute inline return value trees in for the return
value placeholders. Notice when this folding leads to branch simplification,
and make the associated flow graph update.

The recently added early flow opt pass will then transitively remove any
newly unreachable code.

Resolves dotnet/coreclr#27395.

4 years agoAdd tests for Arrays of vt
EgorBo [Sat, 1 Feb 2020 19:27:27 +0000 (22:27 +0300)]
Add tests for Arrays of vt

4 years agoMerge branch 'master' of github.com:dotnet/runtime into type-isassignedfrom
EgorBo [Sat, 1 Feb 2020 19:13:47 +0000 (22:13 +0300)]
Merge branch 'master' of github.com:dotnet/runtime into type-isassignedfrom

4 years agoRevert "Improve call counting mechanism (#1457)" (#30105)
Jan Kotas [Sat, 1 Feb 2020 18:38:50 +0000 (10:38 -0800)]
Revert "Improve call counting mechanism (#1457)" (#30105)

* Revert "Revert "Disable test based on #129 (#130)" (#2310)"

This reverts commit 427cd918a027aed167b1c4bedb52c7ca50731aba.

* Revert "Fail FuncEval if slot backpatching lock is held by any thread (#2380)"

This reverts commit fc06054a774e28a5a47bbe862adcf03251abb43c.

* Revert "Improve call counting mechanism (#1457)"

This reverts commit 3a457cb4b552d9b32fbf844389ad2a08bcb2a7a6.

4 years agoMerge branch 'master' of github.com:dotnet/runtime into type-isassignedfrom
EgorBo [Sat, 1 Feb 2020 11:39:08 +0000 (14:39 +0300)]
Merge branch 'master' of github.com:dotnet/runtime into type-isassignedfrom

# Conflicts:
# src/coreclr/tests/src/JIT/Intrinsics/TypeIntrinsics.cs
# src/libraries/System.Private.CoreLib/src/System/Type.Helpers.cs

4 years agoEmit DebugDirectory section and all DebugDirectory entries (#2398)
Fadi Hanna [Sat, 1 Feb 2020 05:33:38 +0000 (00:33 -0500)]
Emit DebugDirectory section and all DebugDirectory entries (#2398)

* Emit DebugDirectory section and all DebugDirectory entries

- Add new RELOC type for raw data points
- Emit native DebugDirectory entry with proper MD5 hash of the output image
- Fix determinism issue: timestamp has to be copied from input IL image

4 years agoCleanup NETCOREAPP ifdef usage in System.Runtime.Tests (#22224)
Jan Kotas [Sat, 1 Feb 2020 03:17:23 +0000 (19:17 -0800)]
Cleanup NETCOREAPP ifdef usage in System.Runtime.Tests (#22224)

Fixes #21827

4 years agoDisable macOS 10.15 from fullMatrix runs
Jeremy Barton [Sat, 1 Feb 2020 01:47:45 +0000 (17:47 -0800)]
Disable macOS 10.15 from fullMatrix runs

This OS was just enabled a couple of days ago, and isn't testing so hot.

Turning it off until it can come back on in a passing state.

4 years agoFix UpperVector save asserts (#2268)
Carol Eidt [Sat, 1 Feb 2020 01:11:41 +0000 (17:11 -0800)]
Fix UpperVector save asserts (#2268)

Not all helper calls have standard kill sets.
Fix #2181

4 years ago Rename cross compilation related defines (#2256)
Steve MacLean [Sat, 1 Feb 2020 00:36:44 +0000 (19:36 -0500)]
 Rename cross compilation related defines (#2256)

* Rename identifiers to be more consistent

This patch was a machine generated search and replace of
identifiers.  The replacement was done in the order listed
for the path specified.

A regex was used to find the identifiers.

s/(^|[^A-CE-Za-z0-9_])${find}($|[^A-Za-z0-9_])

The 'D' character was specifically allowed a s a prefix
to catch add_definitions(-D${find}).

The patch also reverts all managed code changes after replacement.

    _ARM_                -> HOST_ARM       in src/coreclr
    _ARM64_              -> HOST_ARM64     in src/coreclr
    _AMD64_              -> HOST_AMD64     in src/coreclr
    _X86_                -> HOST_X86       in src/coreclr
    _HOST_UNIX_          -> HOST_UNIX      in src/coreclr
    _HOST_AMD64_         -> HOST_AMD64     in src/coreclr
    _HOST_ARM64_         -> HOST_ARM64     in src/coreclr
    _HOST_ARM_           -> HOST_ARM       in src/coreclr
    _HOST_X86_           -> HOST_X86       in src/coreclr
    DBG_TARGET_AMD64     -> TARGET_AMD64   in src/coreclr
    DBG_TARGET_ARM64     -> TARGET_ARM64   in src/coreclr
    DBG_TARGET_ARM       -> TARGET_ARM     in src/coreclr
    DBG_TARGET_X86       -> TARGET_X86     in src/coreclr
    _TARGET_AMD64_       -> TARGET_AMD64   in src/coreclr
    _TARGET_ARM_         -> TARGET_ARM     in src/coreclr
    _TARGET_ARM64_       -> TARGET_ARM64   in src/coreclr
    _TARGET_X86_         -> TARGET_X86     in src/coreclr
    _TARGET_ARMARCH_     -> TARGET_ARMARCH in src/coreclr
    _TARGET_XARCH_       -> TARGET_XARCH   in src/coreclr
    _HOST_64BIT_         -> HOST_64BIT     in src/coreclr
    BIT64                -> HOST_64BIT     in src/coreclr
    _TARGET_64BIT_       -> TARGET_64BIT   in src/coreclr
    DBG_TARGET_64BIT     -> TARGET_64BIT   in src/coreclr
    HOST_IS_WINDOWS_OS   -> HOST_WINDOWS   in src/coreclr
    PLATFORM_UNIX        -> HOST_UNIX      in src/coreclr/*.cmake
    PLATFORM_WINDOWS     -> HOST_WINDOWS   in src/coreclr/*.cmake
    _TARGET_MAC64        -> TARGET_OSX     in src/coreclr
    FEATURE_PAL          -> TARGET_UNIX    in src/coreclr
    _TARGET_UNIX_        -> TARGET_UNIX    in src/coreclr
    _TARGET_WINDOWS_     -> TARGET_WINDOWS in src/coreclr
    PLATFORM_UNIX        -> TARGET_UNIX    in src/coreclr
    PLATFORM_WINDOWS     -> TARGET_WINDOWS in src/coreclr

* Miscellaneous manual fixes to fix compilation

Remove unused defines

Remove BIT32
Remove DBG_TARGET_AMD64_UNIX
Remove DBG_TARGET_ARM64_UNIX
Remove DBG_TARGET_ARM_UNIX
Remove DBG_TARGET_32BIT

Fixes for HOST_<arch> rename

Move TARGET_<Arch> and TARGET_<bit>

Move from clrdefinitions.cmake
to configurecompiler.cmake so it is used globally.

More jit.h

* Whitespace by clang-format

4 years agocrossgen2 ARM support misc (#21109)
Yaroslav Yamshchikov [Fri, 31 Jan 2020 22:57:09 +0000 (01:57 +0300)]
crossgen2 ARM support misc (#21109)

4 years agoFix handling of missing ConfigurationGroup property (#24077)
Jared Parsons [Fri, 31 Jan 2020 22:11:05 +0000 (14:11 -0800)]
Fix handling of missing ConfigurationGroup property (#24077)

* Account for missing ConfigurationGroup

Our logic for setting the CoreCLR and Mono runtime configurations didn't
properly account for cases where only `$(Configuration)` was passed down
as a build property. It expects that both `$(Configuration)` and
`$(ConfigurationGroup)` are passed down as a pair.

This change guards against us accidentially setting the runtime
configuration to the current library definition of configuration which
is more like a target framework than Debug or Release.

Related to #23800

* Test for missing ConfigurationGroup

4 years agoAbort cmov optimization, when one of the out blocks is try block (#2373)
monojenkins [Fri, 31 Jan 2020 21:41:20 +0000 (16:41 -0500)]
Abort cmov optimization, when one of the out blocks is try block (#2373)

Fixes mono/mono#17733

Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
4 years agoAdd profiler APIs for writing EventPipe events (#2173)
David Mason [Fri, 31 Jan 2020 21:01:10 +0000 (13:01 -0800)]
Add profiler APIs for writing EventPipe events (#2173)

* Profiler APIs for writing events

* Code review feedback

* Change EVENTPIPE_EVENTID to EVENTPIPE_EVENT to avoid confusion with EventID

* have the runtime pack the arguments instead of the profiler

* Add more checks in asserts

4 years agoNew pgo format for crossgen2 (#2314)
David Wrighton [Fri, 31 Jan 2020 20:56:47 +0000 (12:56 -0800)]
New pgo format for crossgen2 (#2314)

* Adjust compilation model to support trace based profile guided optimization data in a new format
- Add parser for new format
- Adjust program startup and options parsing to make it simpler for the profiler guided logic to be aware of version bubbles
- Use CompilationModuleGroup and version bubble in parsing and handling of profile data

* Handle malformed and incorrect IBC data

4 years agoReferred GC Benchmarking Infra in the GC Performance testing docs (#5532)
Ivan Diaz Sanchez [Fri, 31 Jan 2020 20:30:05 +0000 (12:30 -0800)]
Referred GC Benchmarking Infra in the GC Performance testing docs (#5532)

4 years agoimport thunks for ARM just from zapper (#21072)
Yaroslav Yamshchikov [Fri, 31 Jan 2020 19:49:01 +0000 (22:49 +0300)]
import thunks for ARM just from zapper (#21072)

4 years agoKey should be non null (#5072)
buyaa-n [Fri, 31 Jan 2020 19:15:37 +0000 (11:15 -0800)]
Key should be non null (#5072)

4 years agoAdd runtime flavor to test run name for libraries outerloop runs (#12715)
Santiago Fernandez Madero [Fri, 31 Jan 2020 18:26:33 +0000 (10:26 -0800)]
Add runtime flavor to test run name for libraries outerloop runs (#12715)

* Add runtime flavor to test run name for libraries outerloop runs

* Bring Windows_x64 back

4 years agomove more rules from mono/mono
EgorBo [Fri, 31 Jan 2020 18:12:26 +0000 (21:12 +0300)]
move more rules from mono/mono