platform/upstream/dotnet/runtime.git
5 years agoRenamed VNCollectExc to VNUnionExcSet
Brian Sullivan [Mon, 10 Dec 2018 21:26:13 +0000 (13:26 -0800)]
Renamed VNCollectExc to VNUnionExcSet

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

5 years agoMerge branch 'master' into issue_19925
Brian Sullivan [Mon, 10 Dec 2018 21:18:11 +0000 (13:18 -0800)]
Merge branch 'master' into issue_19925

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

5 years agoInstead of using Win8+ api-sets use forwarder DLL to support downlevel versions of...
Aaron Robinson [Mon, 10 Dec 2018 20:21:48 +0000 (12:21 -0800)]
Instead of using Win8+ api-sets use forwarder DLL to support downlevel versions of Windows. (dotnet/coreclr#21469)

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

5 years agoUpdate CoreClr to preview-27210-02 (dotnet/coreclr#21467)
dotnet-maestro-bot [Mon, 10 Dec 2018 16:20:17 +0000 (08:20 -0800)]
Update CoreClr to preview-27210-02 (dotnet/coreclr#21467)

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

5 years agoAdd support for RVA fields to crossgen/R2R (dotnet/coreclr#21463)
Jan Kotas [Mon, 10 Dec 2018 15:52:15 +0000 (07:52 -0800)]
Add support for RVA fields to crossgen/R2R (dotnet/coreclr#21463)

* Add support for RVA fields to crossgen/R2R

RVA fields are became more common with pre-inititialized ReadOnlySpan<byte>. Fix crossgen to deal with them for R2R.

* Fix tests, map new JIT helper for R2R

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

5 years agoUpdate CoreClr, PgoData to preview-27210-01, master-20181210-0037, respectively ...
dotnet-maestro-bot [Mon, 10 Dec 2018 11:43:04 +0000 (03:43 -0800)]
Update CoreClr, PgoData to preview-27210-01, master-20181210-0037, respectively (dotnet/coreclr#21452)

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

5 years agoFix for dotnet/coreclr#21456 (Regressions in attribute allocations for non-generic...
Nick Craver [Mon, 10 Dec 2018 11:01:52 +0000 (06:01 -0500)]
Fix for dotnet/coreclr#21456 (Regressions in attribute allocations for non-generic attributes) (dotnet/coreclr#21462)

* Fix for dotnet/coreclr#21456 - restrict increased generic attribute allocations to only generic attributes

This is a trivial quick-fix for dotnet/coreclr#21456 where regressions between 2.1 and 3.0 were discovered on most attibute pathways due to the allocation overhead in the generic-supporting pathways. The workaround is to simply not take that slow/expensive path for non-generics.

While I'd like to optimize `RuntimeModule.ResolveMethod` further, there's a public surface area in play there that makes the changes non-trivial. There, we'll have to choose overhead on the public path (which may still be a net win), or duplication in code for another path.

* Update comments

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

5 years agoDelete vm/context.* (dotnet/coreclr#21459)
Jan Kotas [Mon, 10 Dec 2018 10:57:57 +0000 (02:57 -0800)]
Delete vm/context.* (dotnet/coreclr#21459)

* Delete vm/context.*

Leftover from remoting

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

5 years agoAdded Close On Exec Attribute for Mutex files (dotnet/coreclr#21455) (dotnet/coreclr...
Oded Hanson [Mon, 10 Dec 2018 09:51:48 +0000 (11:51 +0200)]
Added Close On Exec Attribute for Mutex files (dotnet/coreclr#21455) (dotnet/coreclr#21458)

* Added Close On Exec Attribute for mutex files (dotnet/coreclr#21455)

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

5 years agoFixed bug where "DCI_NUMA" was missing from debug channel names (dotnet/coreclr#21454...
Oded Hanson [Mon, 10 Dec 2018 09:49:39 +0000 (11:49 +0200)]
Fixed bug where "DCI_NUMA" was missing from debug channel names (dotnet/coreclr#21454) (dotnet/coreclr#21457)

In additional to adding "DCI_NUMA" to dbg_channel_names, a static assertion was added to verify that  dbg_channel_names length is valid. Also added some comments to help developpers not to forget to add corresponding entries in dbg_channel_names.

FIxes dotnet/coreclr#21454

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

5 years agoUpdate CoreClr, CoreFx, CoreSetup, PgoData to preview-27208-01, preview.18606.1,...
dotnet-maestro-bot [Sun, 9 Dec 2018 01:02:09 +0000 (17:02 -0800)]
Update CoreClr, CoreFx, CoreSetup, PgoData to preview-27208-01, preview.18606.1, preview-27206-02, master-20181208-0038, respectively (dotnet/coreclr#21374)

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

5 years agoFix regression in fat calls (dotnet/coreclr#21446)
Michal Strehovský [Sat, 8 Dec 2018 21:48:06 +0000 (22:48 +0100)]
Fix regression in fat calls (dotnet/coreclr#21446)

This seems to fix an AV in RyuJIT.

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

5 years agoLeap Seconds Support (dotnet/coreclr#21420)
Tarek Mahmoud Sayed [Sat, 8 Dec 2018 20:40:13 +0000 (12:40 -0800)]
Leap Seconds Support (dotnet/coreclr#21420)

* Leap Seconds Support

* Address Feedback

* More feedback addressing

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

5 years agoRemove `TryGetGuid()` and `GetDefaultInterfaceForCoclass()` from the (dotnet/coreclr...
Aaron Robinson [Sat, 8 Dec 2018 18:41:29 +0000 (10:41 -0800)]
Remove `TryGetGuid()` and `GetDefaultInterfaceForCoclass()` from the (dotnet/coreclr#21447)

* Remove `TryGetGuid()` and `GetDefaultInterfaceForCoclass()` from the
stdinterfaces API surface.

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

5 years agoAdd PNSE CustomMarshaler tests (for Tlbimp compat) (dotnet/coreclr#21438)
Jeremy Koritzinsky [Sat, 8 Dec 2018 05:36:01 +0000 (21:36 -0800)]
Add PNSE CustomMarshaler tests (for Tlbimp compat) (dotnet/coreclr#21438)

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

5 years agoUse string.Create in ConvertFromUtf32 (dotnet/coreclr#21409)
Stephen Toub [Sat, 8 Dec 2018 04:49:29 +0000 (23:49 -0500)]
Use string.Create in ConvertFromUtf32 (dotnet/coreclr#21409)

* Use string.Create in ConvertFromUtf32

Removes the unsafe code from the method.  Also happens to make it a bit faster.

* Improve Rune.ToString performance

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

5 years agoRemove some unnecessary spinning (dotnet/coreclr#21437)
Stephen Toub [Sat, 8 Dec 2018 02:14:44 +0000 (21:14 -0500)]
Remove some unnecessary spinning (dotnet/coreclr#21437)

Most of the use of SpinWait in CoreLib involves waiting for some short-lived operation to complete on another thread, in which case the spinning thread should backoff as it's unable to make forward progress until the other operation completes.  In a few cases, however, SpinWait is being used just around CompareExchange operations, such that at least one thread running this code path is guaranteed to make forward progress, and the backoff in the spinning doesn't actually help (in theory it could help to reduce contention if lots of threads were all trying to CompareExchange concurrently, but in such cases you'd actually want more randomized backoff, as otherwise it's likely all the threads would re-attempt at around the same time and similarly re-encounter contention).

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

5 years agoMoving various Vector128/256 helper method to be implemented using other intrinsics...
Tanner Gooding [Fri, 7 Dec 2018 23:01:23 +0000 (15:01 -0800)]
Moving various Vector128/256 helper method to be implemented using other intrinsics (dotnet/coreclr#21432)

* Updating Vector128.CreateScalar and Vector256.CreateScalar to be implemented using other intrinsics

* Updating Vector128.Equals and Vector256.Equals to be implemented using other intrinsics

* Updating Vector256.WithLower, Vector256.GetUpper, and Vector256.WithUpper to be implemented using other intrinsics

* Updating Vector128.Create(T) and Vector256.Create(T) to be implemented using other intrinsics

* Fixing the `NI_Base_Vector256_As` intrinsics to only fold the cast if AVX is supported and add a clarifying comment to the Vector128/256.Equals code

* Changing the various `*Software()` local functions in Vector128/256 to be `SoftwareFallback()`

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

5 years agoAdd support for loading registered TLBs (dotnet/coreclr#21430)
Aaron Robinson [Fri, 7 Dec 2018 22:31:24 +0000 (14:31 -0800)]
Add support for loading registered TLBs (dotnet/coreclr#21430)

* Add support for loading registered TLBs

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

5 years agoBuild Microsoft.NET.Sdk.IL in source-build
Davis Goodin [Thu, 6 Dec 2018 23:16:49 +0000 (17:16 -0600)]
Build Microsoft.NET.Sdk.IL in source-build

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

5 years agoAdding a note to the genBaseIntrinsic function header about operand assumptions ...
Tanner Gooding [Fri, 7 Dec 2018 21:00:35 +0000 (13:00 -0800)]
Adding a note to the genBaseIntrinsic function header about operand assumptions (dotnet/coreclr#21439)

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

5 years agoFix some SOS commands after SharedDomain removal (dotnet/coreclr#21401)
Jan Vorlicek [Fri, 7 Dec 2018 19:13:43 +0000 (20:13 +0100)]
Fix some SOS commands after SharedDomain removal (dotnet/coreclr#21401)

The recent removal of SharedDomain has broken some SOS commands, like
Name2EE or bpmd. There was a code that was enumerating domains and
obtaining some information on them. And the shared domain pointer from
DacpAppDomainStoreData was being included in the list of domains. As it
is NULL now, we have failed to get the information and the domain
iteration loop was exited prematurely.
I have made SOS resilient to the possibility of missing shared domain.
On older runtimes, the shared domain is still being reported.

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

5 years agoAdd CancellationToken parameter to GetAsyncEnumerator (dotnet/coreclr#21397)
Stephen Toub [Fri, 7 Dec 2018 18:56:32 +0000 (13:56 -0500)]
Add CancellationToken parameter to GetAsyncEnumerator (dotnet/coreclr#21397)

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

5 years agoFactor new AsyncIteratorStateMachineAttribute into TryResolveStateMachineMethod ...
Stephen Toub [Fri, 7 Dec 2018 18:55:53 +0000 (13:55 -0500)]
Factor new AsyncIteratorStateMachineAttribute into TryResolveStateMachineMethod (dotnet/coreclr#21396)

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

5 years agoMerge pull request dotnet/coreclr#21361 from fiigii/x64tests
Carol Eidt [Fri, 7 Dec 2018 18:11:30 +0000 (10:11 -0800)]
Merge pull request dotnet/coreclr#21361 from fiigii/x64tests

Improve hardware intrinsic tests

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

5 years agoAdd PNSE implementations of unsupported built-in custom marshalers to enable good...
Jeremy Koritzinsky [Fri, 7 Dec 2018 17:55:37 +0000 (09:55 -0800)]
Add PNSE implementations of unsupported built-in custom marshalers to enable good error messages on PIAs that could possibly directly use them. (dotnet/coreclr#21429)

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

5 years agoDisable ObjectStackAllocationTests for ARM32 (dotnet/coreclr#21421)
Bruce Forstall [Fri, 7 Dec 2018 16:10:00 +0000 (08:10 -0800)]
Disable ObjectStackAllocationTests for ARM32 (dotnet/coreclr#21421)

Issue dotnet/coreclr#21376

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

5 years agoFix Microsoft.IO.Redist compilation string.Create compilation failure
Stephen Toub [Fri, 7 Dec 2018 09:56:40 +0000 (04:56 -0500)]
Fix Microsoft.IO.Redist compilation string.Create compilation failure

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

5 years agoMerge pull request dotnet/coreclr#21431 from fiigii/fixbmi
Carol Eidt [Fri, 7 Dec 2018 14:20:49 +0000 (06:20 -0800)]
Merge pull request dotnet/coreclr#21431 from fiigii/fixbmi

Fix a bug that disabled Bmi1/2.X64

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

5 years agoWork around an MCG bug (dotnet/corertdotnet/coreclr#6658)
Michal Strehovský [Fri, 7 Dec 2018 10:46:27 +0000 (11:46 +0100)]
Work around an MCG bug (dotnet/corertdotnet/coreclr#6658)

This is blocking TFS integrations.

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

5 years agoFix SOS thread statics display (dotnet/coreclr#21426)
Jan Vorlicek [Fri, 7 Dec 2018 09:32:59 +0000 (10:32 +0100)]
Fix SOS thread statics display (dotnet/coreclr#21426)

I've noticed that when dumping an object with thread locals using SOS
dumpobj command, I never get the thread locals. I've stepped through the
code in SOS that displays thread statics and found that for some strange
reason, it dismisses threads where DomainLocalModule doesn't have
"initialized" flag set for the given class. However, when runtime
accesses thread statics, it just checks "allocated" flag set for the
given class in the ThreadLocalModule. Removing the extra check for
DomainLocalModule fixed the problem and now thread statics are displayed
properly.

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

5 years agoDisable obsolete collectible corefx tests (dotnet/coreclr#21428)
Jan Vorlicek [Fri, 7 Dec 2018 09:20:48 +0000 (10:20 +0100)]
Disable obsolete collectible corefx tests (dotnet/coreclr#21428)

Now that the COM interop support for collectible classes is in, we need
to disable couple of corefx tests that were checking that it fails.

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

5 years agoJIT: block general cloning of candidate calls (dotnet/coreclr#21418)
Andy Ayers [Fri, 7 Dec 2018 08:12:04 +0000 (00:12 -0800)]
JIT: block general cloning of candidate calls (dotnet/coreclr#21418)

Follow-up from dotnet/coreclr#21270 and dotnet/coreclr#21414.

Block general cloning from inadvertently cloning a candidate call.

Add a separate path for cloning calls that are inline and guarded
devirtualization candidates for use by guarded devirtualization.
Callers need to take extra steps after cloning one of these calls
to properly fix everything up.

Also fix up some issues in the large comment for the fat calli
transformation.

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

5 years agoFix a bug that disabled Bmi1/2.X64
Fei Peng [Fri, 7 Dec 2018 01:42:17 +0000 (17:42 -0800)]
Fix a bug that disabled Bmi1/2.X64

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

5 years agoMoving CreateScalarUnsafe, ToScalar, Vector128.ToVector256Unsafe, and Vector256.GetLo...
Tanner Gooding [Fri, 7 Dec 2018 01:15:03 +0000 (17:15 -0800)]
Moving CreateScalarUnsafe, ToScalar, Vector128.ToVector256Unsafe, and Vector256.GetLower to be intrinsics (dotnet/coreclr#21351)

* Moving CreateScalarUnsafe, ToScalar, Vector128.ToVector256Unsafe, and Vector256.GetLower to be intrinsics

* Adding containment support to the helper intrinsics

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

5 years agoMerge pull request dotnet/coreclr#21314 from CarolEidt/DontPromoteHwVector
Carol Eidt [Thu, 6 Dec 2018 21:50:19 +0000 (13:50 -0800)]
Merge pull request dotnet/coreclr#21314 from CarolEidt/DontPromoteHwVector

Don't struct-promote opaque vectors

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

5 years agoRevert "Move the perf jobs to Windows.10.Amd64.ClientRS4.DevEx.15.8.Open (dotnet...
Michelle McDaniel [Thu, 6 Dec 2018 21:18:28 +0000 (13:18 -0800)]
Revert "Move the perf jobs to Windows.10.Amd64.ClientRS4.DevEx.15.8.Open (dotnet/coreclr#21258)" (dotnet/coreclr#21412)

This reverts commit dotnet/coreclr@5bb1b41dd19bca8f25b6d048c27d6708b86326cb.

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

5 years agoUse Span instead of manual copy in MetadataImport.GetUserString (dotnet/coreclr#21405)
Stephen Toub [Thu, 6 Dec 2018 21:11:49 +0000 (16:11 -0500)]
Use Span instead of manual copy in MetadataImport.GetUserString (dotnet/coreclr#21405)

* Use Span instead of manual copy in MetadataImport.GetUserString

* Address PR feedback

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

5 years agoRemove char[] allocation from EventPipePayloadDecoder for strings (dotnet/coreclr...
Stephen Toub [Thu, 6 Dec 2018 21:11:33 +0000 (16:11 -0500)]
Remove char[] allocation from EventPipePayloadDecoder for strings (dotnet/coreclr#21407)

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

5 years agoUse string.Create in Path.GetRandomFilePath (dotnet/coreclr#21410)
Stephen Toub [Thu, 6 Dec 2018 21:11:09 +0000 (16:11 -0500)]
Use string.Create in Path.GetRandomFilePath (dotnet/coreclr#21410)

* Use string.Create in Path.GetRandomFilePath

Removes a good chunk of the unsafe code.

* Address PR feedback

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

5 years agoJIT: move indirect call transformations to a new source file (dotnet/coreclr#21414)
Andy Ayers [Thu, 6 Dec 2018 20:58:48 +0000 (12:58 -0800)]
JIT: move indirect call transformations to a new source file (dotnet/coreclr#21414)

Follow-up from a review comment in dotnet/coreclr#21270.

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

5 years agoReplace a few new string(char, 1) with char.ToString(char) (dotnet/coreclr#21406)
Stephen Toub [Thu, 6 Dec 2018 19:27:42 +0000 (14:27 -0500)]
Replace a few new string(char, 1) with char.ToString(char) (dotnet/coreclr#21406)

Slightly cleaner, slightly faster.

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

5 years agoWork around apparent bug in CMD's FOR /L
Russ Keldorph [Wed, 5 Dec 2018 23:58:32 +0000 (15:58 -0800)]
Work around apparent bug in CMD's FOR /L

Hopefully this will mean that official build failures during the actual build
phase will correctly be reported as failures.  There could be other places that
need to change, but this is all we know of right now.

Fixes dotnet/coreclr#18788 (at least part of it)

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

5 years agoFix CancellationTokenRegistration.Token after CTS.Dispose (dotnet/coreclr#21394)
Stephen Toub [Thu, 6 Dec 2018 18:41:54 +0000 (13:41 -0500)]
Fix CancellationTokenRegistration.Token after CTS.Dispose (dotnet/coreclr#21394)

CTR.Token should never throw, but it's currently throwing an ObjectDisposedException if the associated CancellationTokenSource has been disposed.

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

5 years agoRun MSBuild in parallel when submitting jobs to Helix (dotnet/coreclr#21390)
Egor Chesakov [Thu, 6 Dec 2018 18:22:50 +0000 (10:22 -0800)]
Run MSBuild in parallel when submitting jobs to Helix (dotnet/coreclr#21390)

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

5 years agoPort CustomMarshalers.dll to C# and .NET Core (dotnet/coreclr#21343)
Jeremy Koritzinsky [Thu, 6 Dec 2018 17:56:21 +0000 (09:56 -0800)]
Port CustomMarshalers.dll to C# and .NET Core (dotnet/coreclr#21343)

* Import CustomMarshalers from corefx PR.

* Add tests for marshalling IEnumerator and IEnumerable using the System.Runtime.InteropServices.CustomMarshalers.

* Verify that the marshaller is used in the managed -> native direction in the tests.

* Remove #if's

* PR Feedback.

* Move ComHelpers.h into interop common headers.

* Add some template machinery to ensure that we don't accidentally pass in an incorrect type into DoQueryInterface.

* Add VariantClear

* Make marshalers internal and root them in ILLinkTrim.xml

* Revert enable-if machinery.

* Add tests for the pass-through unwrapping done by the EnumeratorToEnumVariantMarshaler.

* Remove some of my helper code.

* Added todo about exposing EnumerableToDispatchMarshaler.

* PR Feedback.

* Removed the last placement new.

* Use the runtime hooks to enable us to not have to publically expose the custom marshalers.

* Remove out of date comments.

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

5 years agoGuarded devirtualization foundations (dotnet/coreclr#21270)
Andy Ayers [Thu, 6 Dec 2018 17:03:31 +0000 (09:03 -0800)]
Guarded devirtualization foundations (dotnet/coreclr#21270)

Lay the groundwork for guarded devirtualization of virtual and interface
calls in the jit.

Introduce the notion of a guarded devirtualization candidate and identify
these if regular devirtualization fails. Use simple heuristics to produce
a class to guess for. Require that the method that would be invoked if the class
guess is correct be a plausible inline candidate.

Generalize the calli transformer to become an indirect call transformer.
This runs after importation because it needs to introduce control flow and
runs before inlining so that the new direct calls it introduces can be inlined.

Implement the transformation to duplicate the call site, devirtualize on the side
where the class is now known exactly, and turn the resulting direct call into an
inline candidate.

Add a motivation and design document.

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

5 years agoUse array syntax in eng/test-job.yml (dotnet/coreclr#21393)
Egor Chesakov [Thu, 6 Dec 2018 03:41:47 +0000 (19:41 -0800)]
Use array syntax in eng/test-job.yml (dotnet/coreclr#21393)

Update eng/test-job.yml to use array syntax after changing from phase schema to job schema

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

5 years agoAdded NullChk exceptions for GT_ARR_LENTH, GT_ARR_ELEM and GT_ARR_OFFSET
Brian Sullivan [Thu, 6 Dec 2018 01:46:49 +0000 (17:46 -0800)]
Added NullChk exceptions for GT_ARR_LENTH, GT_ARR_ELEM and GT_ARR_OFFSET

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

5 years agoDelete FEATURE_TREAT_NI_AS_MSIL_DURING_DIAGNOSTICS (dotnet/coreclr#21387)
Jan Kotas [Thu, 6 Dec 2018 01:39:33 +0000 (17:39 -0800)]
Delete FEATURE_TREAT_NI_AS_MSIL_DURING_DIAGNOSTICS (dotnet/coreclr#21387)

Always defined in .NET Core

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

5 years agoDisable native image usage for collectible assemblies (dotnet/coreclr#21378)
Jan Vorlicek [Thu, 6 Dec 2018 00:21:43 +0000 (01:21 +0100)]
Disable native image usage for collectible assemblies (dotnet/coreclr#21378)

* Disable native image usage for collectible assemblies

There are couple of issues with using native images as collectible
assemblies. The most important one is that statics handling is different
for collectible and non-collectible classes. Collectible classes have
statics stored in per class allocated blocks while the non-collectible ones
are all stored per module. So the code that accesses them needs to use
different offsets relative to a statics base address in each of these cases.
The crossgen generates just a single form of code that corresponds to the
non-collectible case and so such code cannot be used when a module is
loaded as collectible.
To mitigate that, we disable using the native code from crossgen-ed
assemblies and JIT all the code instead.
We may want to revisit this in the future and e.g. unify the statics
handling for collectible and non-collectible classes.

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

5 years agoMerge branch 'master' into issue_19925
Brian Sullivan [Wed, 5 Dec 2018 23:33:52 +0000 (15:33 -0800)]
Merge branch 'master' into issue_19925

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

5 years agoUse fgValueNumberAddExceptionSetForIndirection to calculate the base address for...
Brian Sullivan [Wed, 5 Dec 2018 23:32:22 +0000 (15:32 -0800)]
Use fgValueNumberAddExceptionSetForIndirection to calculate the base address for the VNF_NullPtrExc

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

5 years agoRefactor genAllocLclFrame into two architecture-specific functions (dotnet/coreclr...
Egor Chesakov [Wed, 5 Dec 2018 23:29:48 +0000 (15:29 -0800)]
Refactor genAllocLclFrame into two architecture-specific functions (dotnet/coreclr#21074)

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

5 years agoMove the perf jobs to Windows.10.Amd64.ClientRS4.DevEx.15.8.Open (dotnet/coreclr...
Michelle McDaniel [Wed, 5 Dec 2018 23:02:57 +0000 (15:02 -0800)]
Move the perf jobs to Windows.10.Amd64.ClientRS4.DevEx.15.8.Open (dotnet/coreclr#21258)

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

5 years agoMerge pull request dotnet/coreclr#21322 from mikedn/div-small-int
Brian Sullivan [Wed, 5 Dec 2018 22:26:55 +0000 (14:26 -0800)]
Merge pull request dotnet/coreclr#21322 from mikedn/div-small-int

Fix lclvar "cloning" in const division lowering

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

5 years agoChange from phases to jobs (dotnet/coreclr#21384)
Jarret Shook [Wed, 5 Dec 2018 22:00:32 +0000 (14:00 -0800)]
Change from phases to jobs (dotnet/coreclr#21384)

* Initial change to use jobs/jobs.yml

* Fix If syntax

* Hopefully fix more syntax

* Change from jobs to job

* change from queue to pool

* change scope of container name

* Change build to sync and init tools inside build.sh

* Add workspace

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

5 years agoSuppress a CMake Warning (dotnet/coreclr#21147)
Swaroop Sridhar [Wed, 5 Dec 2018 20:55:39 +0000 (12:55 -0800)]
Suppress a CMake Warning (dotnet/coreclr#21147)

* Suppress a CMake Warning

This change adds a local cmake_policy rule to suppress
warnings about libraries with unicode names.

```
CMake Warning (dev) at tests/src/Interop/PInvoke/DllImportPath/CMakeLists.txt:14 (add_library):
  Policy CMP0037 is not set: Target names should not be reserved and should
  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  The target name "DllImportPath_U�n�i�c�o�d�e" is reserved or
  not valid for certain CMake features, such as generator expressions, and
  may result in undefined behavior.
This warning is for project developers.  Use -Wno-dev to suppress it.
```

* Update tests/src/Interop/PInvoke/DllImportPath/CMakeLists.txt

Co-Authored-By: swaroop-sridhar <Swaroop.Sridhar@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/31a132a9c58facbfde91de6119df8c4fbfa52d48

5 years agoPreserve the exception sets from child nodes when we create a new unique value number
Brian Sullivan [Wed, 5 Dec 2018 20:05:40 +0000 (12:05 -0800)]
Preserve the exception sets from child nodes when we create a new unique value number

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

5 years agoAdd tests for marshalling RuntimeHandle types. (dotnet/coreclr#21091)
Jeremy Koritzinsky [Wed, 5 Dec 2018 18:04:52 +0000 (10:04 -0800)]
Add tests for marshalling RuntimeHandle types. (dotnet/coreclr#21091)

* Add tests for marshalling runtime handles.

* Remove DLL signature for impossible test

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

5 years agoRemove FromGAC & OnTPAList (dotnet/coreclr#21371)
Steve MacLean [Wed, 5 Dec 2018 18:03:56 +0000 (13:03 -0500)]
Remove FromGAC & OnTPAList (dotnet/coreclr#21371)

* Remove FromGAC & OnTPAList
* PR feedback

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

5 years agoRevert Array enumerator behavior change (dotnet/coreclr#21368)
Jan Kotas [Wed, 5 Dec 2018 16:01:02 +0000 (08:01 -0800)]
Revert Array enumerator behavior change (dotnet/coreclr#21368)

Fixes dotnet/coreclr#21046

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

5 years agoConvert SDK projects into non-SDK projects (dotnet/coreclr#21369)
Aaron Robinson [Wed, 5 Dec 2018 04:13:48 +0000 (20:13 -0800)]
Convert SDK projects into non-SDK projects (dotnet/coreclr#21369)

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

5 years agoAdd repro for `(reg2 == REG_NEXT(reg1)) || (reg2 == REG_LR)` assert in `codegenarm64...
Sergey Andreenko [Wed, 5 Dec 2018 03:58:32 +0000 (19:58 -0800)]
Add repro for `(reg2 == REG_NEXT(reg1)) || (reg2 == REG_LR)` assert in `codegenarm64`. (dotnet/coreclr#21344)

* Add a repro.

* Exclude the failing test.

* fix formatting

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

5 years agoFix XML comments on *nux (dotnet/coreclr#21372)
Steve MacLean [Wed, 5 Dec 2018 02:57:17 +0000 (21:57 -0500)]
Fix XML comments on *nux (dotnet/coreclr#21372)

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

5 years agoAdditional tests for type equivalence (dotnet/coreclr#21340)
Aaron Robinson [Wed, 5 Dec 2018 01:59:28 +0000 (17:59 -0800)]
Additional tests for type equivalence (dotnet/coreclr#21340)

* Additional tests for type equivalence

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

5 years agoMerge pull request dotnet/coreclr#21313 from stephentoub/asynciteratorattr
Stephen Toub [Wed, 5 Dec 2018 00:14:33 +0000 (19:14 -0500)]
Merge pull request dotnet/coreclr#21313 from stephentoub/asynciteratorattr

Add AsyncIteratorStateMachineAttribute

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

5 years agoImprove BMI2 MultiplyNoFlags APIs (dotnet/coreclr#21362)
Fei Peng [Wed, 5 Dec 2018 00:06:39 +0000 (16:06 -0800)]
Improve BMI2 MultiplyNoFlags APIs (dotnet/coreclr#21362)

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

5 years agoUpdate the symbol uploader/publisher to version 1.0.0-beta-63604-05. (dotnet/coreclr...
Mike McLaughlin [Tue, 4 Dec 2018 20:51:50 +0000 (12:51 -0800)]
Update the symbol uploader/publisher to version 1.0.0-beta-63604-05. (dotnet/coreclr#21360)

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

5 years agoMove more SSE2 intrinsic tests to template
Fei Peng [Tue, 4 Dec 2018 20:09:53 +0000 (12:09 -0800)]
Move more SSE2 intrinsic tests to template

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

5 years agoRemove redundant checks in test templates
Fei Peng [Tue, 4 Dec 2018 19:41:02 +0000 (11:41 -0800)]
Remove redundant checks in test templates

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

5 years agoMerge pull request dotnet/coreclr#21356 from stephentoub/xmlcomments
Stephen Toub [Tue, 4 Dec 2018 18:55:52 +0000 (13:55 -0500)]
Merge pull request dotnet/coreclr#21356 from stephentoub/xmlcomments

Fix lots of malformed XML comments

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

5 years agoUpdate CoreClr, CoreFx, CoreSetup to preview-27204-02, preview.18604.2, preview-27204...
dotnet-maestro-bot [Tue, 4 Dec 2018 17:52:55 +0000 (09:52 -0800)]
Update CoreClr, CoreFx, CoreSetup to preview-27204-02, preview.18604.2, preview-27204-02, respectively (dotnet/coreclr#21353)

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

5 years agoDelete dead code in Task<T>
Stephen Toub [Tue, 4 Dec 2018 16:30:19 +0000 (11:30 -0500)]
Delete dead code in Task<T>

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

5 years agoEnable building/validating XML comments in CoreLib
Stephen Toub [Tue, 4 Dec 2018 16:28:52 +0000 (11:28 -0500)]
Enable building/validating XML comments in CoreLib

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

5 years agoFix lots of malformed XML comments
Stephen Toub [Tue, 4 Dec 2018 15:47:21 +0000 (10:47 -0500)]
Fix lots of malformed XML comments

These are causing errors in the source.dot.net build.  Turning on DocumentationFile and suppressing 1591, 1573, and 0419, Corelib builds clean after these changes.

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

5 years agoUpdate CoreClr, CoreFx, CoreSetup to preview-27204-01, preview.18604.1, preview-27203...
dotnet-maestro-bot [Tue, 4 Dec 2018 13:52:04 +0000 (05:52 -0800)]
Update CoreClr, CoreFx, CoreSetup to preview-27204-01, preview.18604.1, preview-27203-03, respectively (dotnet/coreclr#21346)

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

5 years agoFixing the Vector64/128/256<T>.ToString(string) methods to pass `null` for the format...
Tanner Gooding [Tue, 4 Dec 2018 13:51:50 +0000 (05:51 -0800)]
Fixing the Vector64/128/256<T>.ToString(string) methods to pass `null` for the formatProvider (dotnet/coreclr#21350)

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

5 years agoRemove *LoadContextHostBinder (dotnet/coreclr#21342)
Steve MacLean [Tue, 4 Dec 2018 07:27:31 +0000 (02:27 -0500)]
Remove *LoadContextHostBinder (dotnet/coreclr#21342)

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

5 years agoSort System.Private.CoreLib.csproj
Jan Kotas [Mon, 3 Dec 2018 20:57:56 +0000 (12:57 -0800)]
Sort System.Private.CoreLib.csproj

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

5 years agoAdd RuntimeFeature.IsDynamicCodeSupported/IsDynamicCodeCompiled
Jan Kotas [Mon, 3 Dec 2018 18:26:14 +0000 (10:26 -0800)]
Add RuntimeFeature.IsDynamicCodeSupported/IsDynamicCodeCompiled

Contributes to dotnet/corefxdotnet/coreclr#29258

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

5 years agoFinish (mostly) erradicating StringBuilder marshaling from corefx (dotnet/coreclr...
Stephen Toub [Tue, 4 Dec 2018 01:39:02 +0000 (20:39 -0500)]
Finish (mostly) erradicating StringBuilder marshaling from corefx (dotnet/coreclr#33780)

* Finish (mostly) erradicating StringBuilder marshaling from corefx

This should finish my quest of removing StringBuilder marshaling from coreclr and corefx, which I've strived to do because it often adds unnecessary overhead and often is done incorrectly because of intricacies in how the marshaling works; while not using it often leads to `unsafe` code at call sites, there's much less magic, and it affords the ability to optimize more if desired.

There are still three remaining [Out] StringBuilder's in Interop.Odbc.cs, which I've not removed because tests are limited and the call graph to these is non-trivial with StringBuilders passed through.  There may also be a few straggling DllImports I missed while scouring interop that's not following our guidelines of being in src\Common\.

Other than those, the remaining StringBuilder usage I found in DllImports was for [In] only, and in those cases it's reasonable, as the call sites are building up StringBuilders and then passing them off to the call sites; converting those to use `char*` or similar could actually make them more expensive.  I did, however, ensure they were properly annotated as [In], in order to make the intent clear and avoid potential marshaling costs for the unnecessary [Out] direction.

Where I was touching a function in one of these stray interop files that was duplicated elsewhere, I also consolidated it to a centralized location, but I've not in this PR done the cleanup work for the rest of the files.

* Address PR feedback

* Address further feedback

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

5 years agoRefactor all FCalls out of AppDomain.cs (dotnet/coreclr#21337)
Jan Kotas [Tue, 4 Dec 2018 00:11:29 +0000 (16:11 -0800)]
Refactor all FCalls out of AppDomain.cs (dotnet/coreclr#21337)

This saves the unmanaged->managed->unmanaged trip to initialize the assembly binder.

Includes small bits of unrelated cleanup.

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

5 years agoVectorize some Guid APIs (ctor, TryWriteBytes) (dotnet/coreclr#21336)
Egor Bogatov [Mon, 3 Dec 2018 22:56:38 +0000 (01:56 +0300)]
Vectorize some Guid APIs (ctor, TryWriteBytes) (dotnet/coreclr#21336)

* Optimize some Guid APIs

* get rid of WriteByteHelper

* use TryWrite instead of Write

* Optimize ctor `Guid(ReadOnlySpan<byte> b)` and remove `Equals` optimization (move to separate PR).

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

5 years agoRemove Hostx86/arm CrossGen from building and Simplify build.sh command line argument...
Egor Chesakov [Mon, 3 Dec 2018 22:51:28 +0000 (14:51 -0800)]
Remove Hostx86/arm CrossGen from building and Simplify build.sh command line arguments for Linux/arm cross build (Part 2) (dotnet/coreclr#21034)

* Stop building and publishing Hostx86/arm crossgen on Linux/arm

* Remove -crosscomponent argument and stop using CAC_ROOTFS_DIR environment variable in build.sh

* Simplify the related logic in build.sh

* Don't need to specify crosscomponent in tests/scripts/run-pmi-diffs.py

* Don't set CAC_ROOTFS_DIR in buildpipeline, Jenkins files and in tests/scripts/run-pmi-diffs.py

* Adjust documentation

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

5 years agoMerge pull request dotnet/coreclr#21264 from fiigii/x64only
Carol Eidt [Mon, 3 Dec 2018 20:52:20 +0000 (12:52 -0800)]
Merge pull request dotnet/coreclr#21264 from fiigii/x64only

 Implement 64-bit-only hardware intrinsic

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

5 years agoCorrect platorm reach for the Official build (dotnet/coreclr#21310)
Jarret Shook [Mon, 3 Dec 2018 20:46:35 +0000 (12:46 -0800)]
Correct platorm reach for the Official build (dotnet/coreclr#21310)

* Correct platorm reach for the Official build

Does the following:

1. Sets up a ci rule for master and a pr rule for master
2. Corrects the OSX queues
3. Corrects ubuntu internal queue
4. Converts all linux jobs to build using containers
5. Only runs official builds on: Pri1, release, bringing us to parity with old process
6. Fixes centos build-test
7. Adds a super-annoying groupname tag that avoids name mangling.

* make sure we only add triggers for internal builds

* Fix syntax

* Missing :

* Remove pr/ci

* Fix internal queue name

* Correct Public/internal choices.

* Add crossgen as well

* Correct indentation

* Correct checked pri1 tests

* Address pr feedback

* Add todo comments

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

5 years agoClarify use of LoadFromAssemblyName method (dotnet/coreclr#21256)
Rui [Mon, 3 Dec 2018 20:33:51 +0000 (15:33 -0500)]
Clarify use of LoadFromAssemblyName method (dotnet/coreclr#21256)

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

5 years agoImprovements for naked R2RDump output (dotnet/coreclr#21317)
Tomáš Rylek [Mon, 3 Dec 2018 19:33:49 +0000 (20:33 +0100)]
Improvements for naked R2RDump output (dotnet/coreclr#21317)

The initial impulse for this change was removing native offsets
from debug info that caused noise in naked R2R comparisons. Fixing
this required propagation of DumpOptions to some more call sites
prompting me to unify dumping logic to always use TextWriter
as the output medium. I have also fixed some minor bugs I noticed
around the naked disassembly.

Thanks

Tomas

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

5 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup to preview1-03430-01, preview-27203...
dotnet-maestro-bot [Mon, 3 Dec 2018 18:53:23 +0000 (10:53 -0800)]
Update BuildTools, CoreClr, CoreFx, CoreSetup to preview1-03430-01, preview-27203-03, preview.18603.1, preview-27203-01, respectively (dotnet/coreclr#21291)

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

5 years agoJIT: fix overly aggressive type propagation from returns (dotnet/coreclr#21316)
Andy Ayers [Mon, 3 Dec 2018 18:46:52 +0000 (10:46 -0800)]
JIT: fix overly aggressive type propagation from returns (dotnet/coreclr#21316)

For quite a while now the jit has been propagating return types from
callees to the return spill temp. However this is only safe when the
callee has a single return site (or all return sites return the same
type).

Because return spill temps often end up getting assigned to still more
temps we haven't seen this overly aggressive type propgagation lead to
bugs, but now that we're tracking single def temps and doing more type
propagation during the late devirtualization callback, the fact that
these types are wrong has been exposed and can lead to incorrect
devirtualization.

The fix is to only consider the return spill temp as single def if the
callee has a single return site, and to check that the return spill temp
is single def before trying to propagate the type.

Fixes dotnet/coreclr#21295.

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

5 years agoMake sure the debug registers are available in the SavedRedirectContext (dotnet/corec...
Andrew Au [Mon, 3 Dec 2018 18:17:20 +0000 (10:17 -0800)]
Make sure the debug registers are available in the SavedRedirectContext (dotnet/coreclr#21293)

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

5 years agoRemove IsNeutralDomain() (dotnet/coreclr#21318)
Steve MacLean [Mon, 3 Dec 2018 17:49:31 +0000 (12:49 -0500)]
Remove IsNeutralDomain() (dotnet/coreclr#21318)

* Remove IsNeutralDomain()

* PR feedback

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

5 years agoFixes abbreviated genitive (dotnet/coreclr#21230)
Rafael Lillo [Mon, 3 Dec 2018 17:19:14 +0000 (15:19 -0200)]
Fixes abbreviated genitive (dotnet/coreclr#21230)

* fixes abbreviation

* reverse .gitignore

* remove token lenght

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

5 years agoDon't typedef intptr_t/uintptr_t when PAL_STDCPP_COMPAT is defined (dotnet/coreclr...
Ilia [Mon, 3 Dec 2018 15:25:24 +0000 (18:25 +0300)]
Don't typedef intptr_t/uintptr_t when PAL_STDCPP_COMPAT is defined (dotnet/coreclr#21165)

Bug: 20766

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

5 years agoMake RyuJIT tolerate null CLASSID_RUNTIME_TYPE (dotnet/coreclr#21331)
Michal Strehovský [Mon, 3 Dec 2018 08:15:26 +0000 (09:15 +0100)]
Make RyuJIT tolerate null CLASSID_RUNTIME_TYPE (dotnet/coreclr#21331)

If we're compiling a class library that has no concept of reflection (and runtime types), EE cannot provide a class handle for this class. Make RyuJIT tolerant to null coming back.

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

5 years agoStore CurrentThread in ThreadStatic (dotnet/coreclr#21328)
Ben Adams [Mon, 3 Dec 2018 06:46:26 +0000 (06:46 +0000)]
Store CurrentThread in ThreadStatic (dotnet/coreclr#21328)

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

5 years agoRevert [publish symbols on FreeBSD (dotnet/coreclr#21179)] (dotnet/coreclr#21329)
Russ Keldorph [Mon, 3 Dec 2018 00:40:18 +0000 (16:40 -0800)]
Revert [publish symbols on FreeBSD (dotnet/coreclr#21179)] (dotnet/coreclr#21329)

This reverts commit dotnet/coreclr@6120021023647ff881d791a033dba38a94fd1c2c.

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

5 years agoRename CorElementType enum members to match the others definitions (dotnet/coreclr...
Jan Kotas [Sat, 1 Dec 2018 21:09:21 +0000 (13:09 -0800)]
Rename CorElementType enum members to match the others definitions (dotnet/coreclr#21324)

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

5 years agoadded info about the new .NET memory book (dotnet/coreclr#21326)
Maoni Stephens [Sat, 1 Dec 2018 20:38:36 +0000 (12:38 -0800)]
added info about the new .NET memory book (dotnet/coreclr#21326)

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