Eugene Rozenfeld [Tue, 29 Jan 2019 19:26:49 +0000 (11:26 -0800)]
Remove GTF_ADDR_ONSTACK and IsVarAddr.
IsVarAddr was checking GTF_ADDR_ONSTACK to determine if
the GT_ADDR node is an address of a local. This change removes both
GTF_ADDR_ONSTACK and IsVarAddr and uses IsLocalAdrExpr instead.
IsLocalAddrExpr uses opcodes to determine if GT_ADDR node is
a local address.
GTF_ADDR_ONSTACK flag is ancient, added before 2002 so I couldn't find
the checkin that introduced it.
I changed the assert to a check and an assignment since simplifications
inside fgMorphArgs between
https://github.com/dotnet/coreclr/blob/dotnet/coreclr@
1a1e4c4d5a8030cb8d82a2e5b06c2ab357b92534/src/jit/morph.cpp#L3709
(which causes https://github.com/dotnet/coreclr/blob/dotnet/coreclr@
1a1e4c4d5a8030cb8d82a2e5b06c2ab357b92534/src/jit/morph.cpp#L3057)
and
https://github.com/dotnet/coreclr/blob/dotnet/coreclr@
1a1e4c4d5a8030cb8d82a2e5b06c2ab357b92534/src/jit/morph.cpp#L3790
may result in more GT_ADDR nodes recognized by IsLocalAdrExpr.
x86 and x64 pmi frameworks had no code diffs and some gcinfo reductions
(15 methods with gcinfo diffs in x86).
Fixes dotnet/coreclr#22190.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4070994640bcc2c4c138b6f695d3fce14ea3efe7
Stephen Toub [Wed, 30 Jan 2019 21:22:27 +0000 (16:22 -0500)]
Switch CoreLib over to using shared Environment from corefx (dotnet/coreclr#22106)
This requires merging/adapting the implementation with EnvironmentAugments (which goes away completely), the shared files, what corert has, etc.
Commit migrated from https://github.com/dotnet/coreclr/commit/
91e1ffccc38fc87f6f496eb056396a1b775f08af
Michal Strehovský [Wed, 30 Jan 2019 20:16:13 +0000 (21:16 +0100)]
Fix CorError header file generation (dotnet/coreclr#22294)
The checked in batch script was only usable if you have a Razzle environment and even then it didn't update the right files.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a43dd765ea6341310fde3f83bb41ff88d94b435
Meir Blachman [Wed, 30 Jan 2019 15:44:57 +0000 (17:44 +0200)]
fixed pdf link in dotnet-standards.md (dotnet/coreclr#22292)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2e3a19be00af54c3bc4c76d94044aca9c32a45d
Michal Strehovský [Wed, 30 Jan 2019 12:41:44 +0000 (13:41 +0100)]
Fix namespace of the AmbiguousImplementationException (dotnet/coreclr#22291)
Moving to the namespace that was approved in dotnet/corefxdotnet/coreclr#34124.
Commit migrated from https://github.com/dotnet/coreclr/commit/
81e12aaff1d8671f1e7709afa3183458eaa79673
Michal Strehovský [Tue, 29 Jan 2019 21:38:31 +0000 (22:38 +0100)]
Recover some of the size lost with AsyncMethodBuilder/Task unification (dotnet/coreclr#6913)
When we unified the implementations of these across all of our runtimes, we lost all size optimizations people have been doing on the Project N side over the past six years.
This restores a bit of the loss. For one sample app with lots of async usage, this removes 2.1 MB of generic instantiations.
There is more we can do, but I can't spend time on that right now. These two things jumped out on me when I was looking at it back in December and were an easy fix I wanted to do for a while.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
a19ccc68afa0174a0cfbd58fa241a7f85785f567
Markus Kitsinger [Wed, 30 Jan 2019 04:57:23 +0000 (22:57 -0600)]
Add AmbiguousImplementationException (dotnet/coreclr#22280)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a01a40f4488e2cb8b796a708673386cb763fb97
Markus Kitsinger [Wed, 30 Jan 2019 04:56:32 +0000 (22:56 -0600)]
Do not cache error string in SerializationException (dotnet/coreclr#22281)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2bdab5ba7b1156eabf0e55f6ee6efa9b4203a95f
Egor Chesakov [Wed, 30 Jan 2019 01:17:18 +0000 (17:17 -0800)]
RunCrossGen in ReadyToRun tests, set TimeoutPerTest, set FailOnWorkItemFailure (dotnet/coreclr#22261)
* For ReadyToRun tests in AzDO set RunCrossGen=true during Helix test running
* Set __TestTimeout and introduce TimeoutPerTestInMinutes for test jobs
* Set FailOnWorkItemFailure - fail the AzDO step on Helix work item "catastrophic failure"
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab30991acb30b9f26d1a4297d3b59baa45eb8155
Marek Safar [Wed, 30 Jan 2019 00:35:09 +0000 (01:35 +0100)]
Move Marshal::StringTo* methods to shared partition (dotnet/coreclr#22266)
Commit migrated from https://github.com/dotnet/coreclr/commit/
25345fd1e070fdda233a43b7be070d66f187c557
Tanner Gooding [Tue, 29 Jan 2019 21:34:01 +0000 (13:34 -0800)]
Fixing several of the HWIntrinsic SoftwareFallback functions to be captureless (dotnet/coreclr#22263)
Commit migrated from https://github.com/dotnet/coreclr/commit/
69c8421c1177675d4df855d7bb73b0a77b19c643
Maoni Stephens [Tue, 29 Jan 2019 21:09:32 +0000 (13:09 -0800)]
To support container scenario, 2 HardLimit configs are added - (dotnet/coreclr#22180)
GCHeapHardLimit - specifies a hard limit for the GC heap
GCHeapHardLimitPercent - specifies a percentage of the physical memory this process is allowed to use
If both are specified, GCHeapHardLimit is checked first and only when it's not specified
would we check GCHeapHardLimitPercent.
If neither is specified but the process is running inside a container with a memory
limit specified, we will take this as the hard limit:
max (20mb, 75% of the memory limit on the container)
If one of the HardLimit configs is specified, and the process is running inside a container
with a memory limit, the GC heap usage will not exceed the HardLimit but the total memory
is still the memory limit on the container so when we calculate the memory load it's based
off the container memory limit.
An example,
process is running inside a container with 200mb limit
user also specified GCHeapHardLimit as 100mb.
if 50mb out of the 100mb is used for GC, and 100mb is used for other things, the memory load
is (50 + 100)/200 = 75%.
Some notes on these configs -
+ The limit is the commit size.
+ This is only supported on 64-bit.
+ For Server GC the minimum *reserved* segment size is 16mb per heap, this is to avoid the
scenario where the hard limit is small but the process can use many procs and we end up
with tiny segments which doesn't make sense. We then keep track of the committed on the segments
so the total does not exceed the hard limit.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ed52a006c01a582d4d34add40c318d6f324b99ba
Marek Safar [Tue, 29 Jan 2019 01:16:16 +0000 (02:16 +0100)]
Add Marshal ansi conversion to shared partition (dotnet/coreclr#22243)
* Add Marshal ansi conversion to shared partition
* Ignore bestFit/throwOnUnmappableChar on Unix
* Use same assert in StringToAnsiString
* wideCharLen parameter rename
Commit migrated from https://github.com/dotnet/coreclr/commit/
930abba4060fb528db2bb9835a1bc5a6e684bfec
mikedn [Mon, 28 Jan 2019 19:38:19 +0000 (21:38 +0200)]
Fix various fgMorphInitBlock issues (dotnet/coreclr#21820)
* Fix various fgMorphInitBlock issues
* Remove unnecessary destAddr variable
* Extend/fix comment headers
Commit migrated from https://github.com/dotnet/coreclr/commit/
1a1e4c4d5a8030cb8d82a2e5b06c2ab357b92534
Andy Ayers [Mon, 28 Jan 2019 18:45:45 +0000 (10:45 -0800)]
Fix finding entry point unwind record for a method with fragmented un… (dotnet/coreclr#22202)
On Arm and Arm64 unwind records can only cover a limited range of code
(512K and 1MB respectively). So for methods larger than this the jit
will emit multiple "fragment" unwind records to cover the full method code
range. Only the first of these describes the behavior of the method prolog.
When mapping an offset back to a method's entry point unwind, make sure to
find this "root" unwind record instead of one of the internal fragments.
Fixes dotnet/coreclr#19209.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b8df831c0513c0f84327cfb82e71ab03c263873
dotnet-maestro-bot [Mon, 28 Jan 2019 14:16:58 +0000 (06:16 -0800)]
Update PgoData to master-
20190128.1 (dotnet/coreclr#22237)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ddd85a9cc1375177b8e68e956fdcbdb76fce4e6a
Ben Adams [Mon, 28 Jan 2019 02:29:19 +0000 (03:29 +0100)]
string.EndsWith use SequenceEqual not SequenceCompareTo (dotnet/coreclr#22207)
Commit migrated from https://github.com/dotnet/coreclr/commit/
57fd77e6f8f7f2c37cc5c3b36df3ea4f302e143b
TW [Mon, 28 Jan 2019 02:26:53 +0000 (04:26 +0200)]
Improve BinaryReader.ReadUInt32() perf by 30% when using MemoryStream (dotnet/coreclr#22102)
BinaryReader.ReadInt32() has nice optimization which was missing from the ReadUInt32() version. Now both implementations are aligned.
ReadUInt32 and all the 64 bits types are now 30% to 50% faster than original implementation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
87cc71691e36950bb99739f32323805d4a0c29ce
Jan Kotas [Sun, 27 Jan 2019 19:48:53 +0000 (11:48 -0800)]
Keep CoreCLR-specific temporary hack under ifdef
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
731b40d96ba0b93057f7334115c3bc00eb434437
Ben Adams [Mon, 28 Jan 2019 02:01:22 +0000 (03:01 +0100)]
Shrink Task.Delay when used without cancellation (dotnet/coreclr#22233)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a29aa185e44c35af76bcb9f15881f23ddd0a84d
Stephen Toub [Sun, 27 Jan 2019 19:15:08 +0000 (14:15 -0500)]
Remove several uses of VoidTaskResult (dotnet/coreclr#22238)
* Remove defunct netstandard code from ValueTask
* Remove several uses of VoidTaskResult
Currently TrySetResult/Canceled/Exception live on `Task<T>`. There's no reason `TrySetCanceled` and `TrySetException` need to live there, as they only access state from the base `Task`, and so can be moved down. `TrySetResult` needs the `TResult`, however in a variety of cases `Task<T>` is used with a `VoidTaskResult`, and for such cases we can just have a parameterless `TrySetResult()` on the base class as well, which can be used any time there is no `TResult` or when `default(TResult)` is the desired result. This lets us switch several cases where we were using `Task<VoidTaskResult>` to just be `Task`, which saves 8 bytes on the task instance on 64-bit. It also avoids an Interlocked.Exchange as part of the TrySetResult call.
This primarily affects Task.Delay and the non-generic variants of Task.WhenAll, ValueTask.AsTask(), Task.FromCanceled, and Task.FromException.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d5d680e64769f4807d2e114b74e1304a58822d5
Filip Navara [Sun, 27 Jan 2019 19:12:30 +0000 (20:12 +0100)]
Move Timer to shared CoreLib partition. (dotnet/coreclr#22231)
* Move Timer to shared CoreLib partition.
* Move SignalNoCallbacksRunning back to shared code, add static EventWaitHandle.Set.
* Remove AppDomain references from shared Timer code, reshuffle some code out of SetTimer in non-shared code.
* Change m_ prefix to match code style.
Commit migrated from https://github.com/dotnet/coreclr/commit/
307ec0b724c01aec62d93cf2046f6b671c3eeced
dotnet-maestro-bot [Sun, 27 Jan 2019 04:26:13 +0000 (20:26 -0800)]
Update PgoData to master-
20190126.1 (dotnet/coreclr#22198)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d1c1cc91a85c510c7b10461acb35b8c545fe2b07
Filip Navara [Sun, 27 Jan 2019 04:25:06 +0000 (05:25 +0100)]
Make ResourceManager use Assembly instead of RuntimeAssembly internally. (dotnet/coreclr#21979)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6565634633f59b07511854fa1929157a7309b81f
Marek Safar [Sun, 27 Jan 2019 01:08:53 +0000 (02:08 +0100)]
Move Marshal::ZeroFree* to shared partition (dotnet/coreclr#22230)
* Move Marshal::ZeroFree* to shared partition
* Add managed version of SysStringByteLen
Commit migrated from https://github.com/dotnet/coreclr/commit/
2876addb7a425776470ca3ebac6e705e5adceb80
Jan Kotas [Sat, 26 Jan 2019 17:26:16 +0000 (09:26 -0800)]
Cleanup stackoverflow handling leftovers (dotnet/coreclr#22228)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3038b7484330012fb418dae61cfbdb54542719fd
Stephen Toub [Sat, 26 Jan 2019 11:26:35 +0000 (06:26 -0500)]
Factor WinRT GetFolderPath into static accessible via reflection (dotnet/coreclr#34873)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0657f407a95d78fcfa643a74d68a6562e8f67ba9
Marek Safar [Sat, 26 Jan 2019 02:32:24 +0000 (03:32 +0100)]
Move more Marshal methods to shared partition (dotnet/coreclr#22205)
* Move more Marshal methods to shared partition
* Implement ThrowExceptionForHR in managed
Commit migrated from https://github.com/dotnet/coreclr/commit/
bb734dc0df68229e37d11dbdb8aee70e6aff73e4
Egor Chesakov [Sat, 26 Jan 2019 01:05:33 +0000 (17:05 -0800)]
Submit to one Helix queue on pull requests and CI builds. Add CI trigger for master branch (dotnet/coreclr#22211)
This limits pull request and CI (push) triggered jobs to running only on one *default* Helix queue:
Linux arm32 - Ubuntu.1404.Arm32.Open
Linux arm64 - Ubuntu.1804.Arm64.Open
Linux x64 - Ubuntu.1804.Amd64.Open
Windows_NT x86/x64 - Windows.10.Amd64.Open
Windows_NT arm32/arm64 - we don't run these in AzDO
OSX - OSX.1013.Amd64.Open
Scheduled and manually triggered jobs will use more than one Helix queues for more comprehensive checking.
This enables CI (push) trigger for master branch. During CI build the following scenarios for Pri1 tests are going to run:
- normal
- no_tiered_compilation
Commit migrated from https://github.com/dotnet/coreclr/commit/
1c5ac86fe4dcdd3f2e83e52049b1e393978698b0
Egor Chesakov [Sat, 26 Jan 2019 01:02:12 +0000 (17:02 -0800)]
Switch to dnceng-linux-external-temp pool (dotnet/coreclr#22220)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b6fb99dd14c3782c7a10de4abf676aacc03eca59
Sung Yoon Whang [Fri, 25 Jan 2019 21:35:37 +0000 (13:35 -0800)]
Fix eventsource metadata exception (dotnet/coreclr#21993)
* Do not throw an exception when we fail to generate metadata for eventsource
* some build failures
* return null directly here
* remove FAILURE_UNSUPPORTED_TYPE
* address PR comments
* address more pr comments
* Fix potential incorrect generation of metadata blob when property metadata generation fails
Commit migrated from https://github.com/dotnet/coreclr/commit/
b697678e09b3731a02bedf928dad6c0148f01747
Sergey Andreenko [Fri, 25 Jan 2019 20:21:09 +0000 (12:21 -0800)]
this test should not be run under gcstress (dotnet/coreclr#22214)
Commit migrated from https://github.com/dotnet/coreclr/commit/
01bb02a90f8a42689416a9064233469b62360555
Ben Adams [Fri, 25 Jan 2019 19:03:33 +0000 (20:03 +0100)]
Skip rangecheck in string.EndsWith(char) (dotnet/coreclr#22206)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f487d60b8d48ecbb4e61cfb158038addcd486b0b
Jeremy Koritzinsky [Fri, 25 Jan 2019 16:37:43 +0000 (08:37 -0800)]
Remove reflection-based wraper for AssemblyDependencyResolver. (dotnet/coreclr#22195)
Now that AssemblyDependencyResolver is exposed in CoreFX and has propogated back to CoreCLR, we can remove the reflection-based wrapper for the unit tests for it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8568186a3b918c0239bf6485d56594843b9f544d
Ben Adams [Fri, 25 Jan 2019 16:17:58 +0000 (17:17 +0100)]
Use AggressiveOptimization for intrinsics-based SpanHelpers (dotnet/coreclr#22191)
* Use AggressiveOptimization for intrinsics-based SpanHelpers
* Remove from LastIndexOfAny
Commit migrated from https://github.com/dotnet/coreclr/commit/
e0d680101a93797c9e1a049bf582a874e2cb4113
Marek Safar [Fri, 25 Jan 2019 15:58:14 +0000 (16:58 +0100)]
Reduce Task's static ctor dependencies (dotnet/coreclr#22172)
* Reduce Task's static ctor dependencies
* Remove defensive check
* Revert "Remove defensive check"
This reverts commit dotnet/coreclr@
df15ab0350e8f44fc5cbb1a18c5211cd1de11989.
Commit migrated from https://github.com/dotnet/coreclr/commit/
150836d593540d2bb8ab6e627c699506d85f26dc
Elliot Prior [Fri, 25 Jan 2019 13:59:30 +0000 (13:59 +0000)]
Cancel CTS immediately if delay is zero. (dotnet/coreclr#18098)
The intended behaviour on specifying a delay of zero is that the CancellationTokenSource is cancelled immediately - before this change, it would depend on the scheduling of the timer callback which could lead to seeing a non-cancelled token. Now, it marks itself as cancelled immediately, without invoking any callbacks (as this method is called only from within the constructor of the object, before any callbacks could have been registered.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dcdfeea0b85b09e0f066fdfd05f5fef289977ab9
Brian Sullivan [Fri, 25 Jan 2019 11:20:23 +0000 (03:20 -0800)]
Fixes the desktop build (dotnet/coreclr#22197)
* Fixes the desktop build
warning C4311: 'reinterpret_cast': pointer truncation from 'BYTE *' to 'uint32_t' f:\j6\codegenmirror\src\ndp\clr\src\jit\emit.cpp(5636): warning C4302: 'reinterpret_cast': truncation from 'BYTE *' to 'uint32_t'
* Fix formatting
Commit migrated from https://github.com/dotnet/coreclr/commit/
cdd6e3315ff125aabc34378d5547f68df89c05c2
Ben Adams [Fri, 25 Jan 2019 02:48:43 +0000 (03:48 +0100)]
Speedup .SequenceCompareTo(byte, ...) (dotnet/coreclr#22127)
* Speedup .SequenceCompareTo(byte, ...)
* Rename jump location
* Better annotations for clarity
Commit migrated from https://github.com/dotnet/coreclr/commit/
665593ef7dbae3bcacd45dea9b3751b81582e4fe
Jan Vorlicek [Fri, 25 Jan 2019 01:34:39 +0000 (02:34 +0100)]
Fix collectible AssemblyLoadContext weak handle (dotnet/coreclr#22193)
Native runtime keeps short weak handle for collectible AssemblyLoadContext
until the unload time when it gets converted to a strong one. A test
running with gc stress has recently hit a problem caused by the fact
that the weak handle is "short weak" and thus doesn't track
resurrection. Here is what happened:
* The test code has lost reference to the AssemblyLoadContext
* Finalizer was just invoked on that context due to that and so the weak
short handle was destroyed.
* Native runtime called AssemblyLoadContext.Resolve with the now dead
handle, the function tried to get the managed object and failed.
The fix is to change the handle type to long weak so that it doesn't get
destroyed before the finalization.
Commit migrated from https://github.com/dotnet/coreclr/commit/
65918165dbeb24861f27fc96f0ccf380b13097d3
José Rivero [Fri, 25 Jan 2019 01:03:47 +0000 (17:03 -0800)]
Updating MicrosoftDiagnosticsTracingTraceEventPackageVersion (dotnet/coreclr#22071)
Commit migrated from https://github.com/dotnet/coreclr/commit/
4148763dedc110b3e549e2b9de5ac676262a235f
Dotnet-GitSync-Bot [Fri, 25 Jan 2019 01:02:36 +0000 (17:02 -0800)]
Fix argument checks in ThreadPool.RegisterWaitForSingleObject. (dotnet/coreclr#6887) (dotnet/coreclr#22196)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
71d31876aa9f4232c193c3f2fb879c75b04c0658
Jan Kotas [Fri, 25 Jan 2019 01:01:09 +0000 (17:01 -0800)]
Rename TplEtwProvider to TplEventSource (dotnet/coreclr#22194)
* Rename TplEtwProvider to TplEventSource
* Rename etwLog to log
Commit migrated from https://github.com/dotnet/coreclr/commit/
64e4a7cb99bdd945656846552700dcedb377cb35
Marek Safar [Fri, 25 Jan 2019 01:00:33 +0000 (02:00 +0100)]
Move Marshal to shared partition (dotnet/coreclr#22146)
* Move Marshal to shared partition
* Moved code optimizations
* Cosmetic changes
* Avoid duplicate arguments checks bys shipping Encoding.UTF8.GetString
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad03955be542a6ff2501481df676ce3d9e0f427f
Andy Ayers [Fri, 25 Jan 2019 00:18:23 +0000 (16:18 -0800)]
Fix SOS GCInfo for Arm/Arm64 (dotnet/coreclr#22188)
Add missing DECODE_HAS_TAILCALLS flag.
Closes dotnet/coreclr#22163
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f452e8e3c2773d94750ace942f54061717989ef
Tanner Gooding [Thu, 24 Jan 2019 21:58:28 +0000 (13:58 -0800)]
Fixing some issues with the decimal parser/formatter (dotnet/coreclr#22070)
* Fixing the decimal formatting so that -0 prints as 0
* Fixing the decimal parser to consider digits still in the buffer as part of the zero/non-zero tail check
Commit migrated from https://github.com/dotnet/coreclr/commit/
9af1a26b2d6ef3caebe29d8d5e99586134dbebd6
Mike McLaughlin [Thu, 24 Jan 2019 21:37:47 +0000 (13:37 -0800)]
Disable exception handling on MacOS when DLL like DAC, etc. (dotnet/coreclr#22171)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e0dc22947068e3a5f9b618dfb94ebbf07f24216b
Marek Safar [Thu, 24 Jan 2019 20:56:41 +0000 (21:56 +0100)]
Move TaskContinuation to shared partition (dotnet/coreclr#22167)
* Move TaskContinuation to shared partition
* Remove TASK_STATE_THREAD_WAS_ABORTED from Task
* Use already existing ThrowAsync
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef52964bb6db4687265abda8be65aa4c930796d0
Carol Eidt [Thu, 24 Jan 2019 20:23:51 +0000 (12:23 -0800)]
Merge pull request dotnet/coreclr#14393 from mikedn/float-neg-abs
Improve `new Vector2/3/4(c1, c2, c3, c4)` codegen
Commit migrated from https://github.com/dotnet/coreclr/commit/
aab30e3248b882ecad122127f3d60a2ce9ea14a6
Mike Danes [Thu, 24 Jan 2019 09:28:28 +0000 (11:28 +0200)]
Update SSE2 test
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba8b42444d7e9fe3b3b45eb931e111fa9f1347f2
Mike Danes [Thu, 13 Sep 2018 19:24:04 +0000 (22:24 +0300)]
Fix importer spilling in the presence of assignment side effects
Atomic ops like GT_CMPXCHG and some HW intrinsic nodes act like assignements so impAppendStmt has to account for them. They can be top level nodes or they can appear in the RHS of a GT_ASG node that perhaps is not considered to have an assignment side effect itself.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ca638f3b25336ae0aa9b3b3edd6b67c11a2533c
Egor Chesakov [Thu, 24 Jan 2019 18:25:46 +0000 (10:25 -0800)]
Use .asArray/.asString syntax for scenarios and helixQueues (dotnet/coreclr#22173)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ba6f7b6c28e1e80c4d3685b7f08f10c06c8b65c
Eugene Rozenfeld [Thu, 24 Jan 2019 17:26:53 +0000 (09:26 -0800)]
Fix test build warning. (dotnet/coreclr#22168)
I decided to suppress the warning for the test instead of
removing the test for test matrix completeness.
Fixes dotnet/coreclr#21519.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4ec2e2c724b86fac13b0445aee5200d1ea6761fd
dotnet-maestro-bot [Thu, 24 Jan 2019 17:25:59 +0000 (09:25 -0800)]
Update PgoData to master-
20190124.1 (dotnet/coreclr#22181)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d58c54c3ade3cb43f3558ddc22ab948169e95b1e
Michal Strehovský [Thu, 24 Jan 2019 15:25:00 +0000 (16:25 +0100)]
Fix UWP VirtualAlloc import (dotnet/corertdotnet/coreclr#6882)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
33fb6af7e624ff99462b8eea577940a5c6e891fb
Filip Navara [Thu, 24 Jan 2019 17:25:33 +0000 (18:25 +0100)]
Remove obsolete thread abortion flags. (dotnet/coreclr#22185)
Commit migrated from https://github.com/dotnet/coreclr/commit/
aa2221d9b1ea39cd6e92895be5e0c7d90072a581
Andrey Kvochko [Thu, 24 Jan 2019 16:09:34 +0000 (19:09 +0300)]
Disable PSPSym in filter prolog for CoreRT (dotnet/coreclr#22184)
Commit migrated from https://github.com/dotnet/coreclr/commit/
786d2e06023ee1dc96ed9cc062135b3e0aad4137
Koundinya Veluri [Thu, 24 Jan 2019 15:30:31 +0000 (07:30 -0800)]
Work around build failure (dotnet/coreclr#22138)
Fixes https://github.com/dotnet/coreclr/issues/22103
- There were reports of build failure from https://github.com/dotnet/coreclr/pull/21292, worked around it for now with a todo
Commit migrated from https://github.com/dotnet/coreclr/commit/
29d442f6f3aceba3629a216089c9262d3b047613
Jan Kotas [Thu, 24 Jan 2019 06:29:26 +0000 (22:29 -0800)]
IOCompletionCallback moved to shared partition
Commit migrated from https://github.com/dotnet/coreclr/commit/
335458f7317cdc7ce1f0e06a48ad270bf2fab7c3
Marek Safar [Thu, 24 Jan 2019 06:18:48 +0000 (07:18 +0100)]
Move IOCompletionCallback to shared partition (dotnet/corertdotnet/coreclr#6875)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
43d9e12a34399e917606f86f625ec076fa851c84
Filip Navara [Thu, 24 Jan 2019 12:34:09 +0000 (13:34 +0100)]
Remove no-op holder stack validation. (dotnet/coreclr#22182)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0a43d9c795c1903e3d31b7228e7785554e89b59f
Filip Navara [Thu, 24 Jan 2019 07:39:36 +0000 (08:39 +0100)]
Fix incorrect usage of wcscpy_s/wcscat_s. (dotnet/coreclr#22153)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b64035991c352f7f5a8350c361170ec1b0f97f60
Calum Grant [Thu, 24 Jan 2019 07:38:46 +0000 (07:38 +0000)]
Fix accidental assignment inside an assert. (dotnet/coreclr#22148)
Commit migrated from https://github.com/dotnet/coreclr/commit/
75da03d0d7743003064d15d7cda2f675bc367c1a
dotnet-maestro-bot [Thu, 24 Jan 2019 06:54:32 +0000 (22:54 -0800)]
Update CoreFx, PgoData to preview.19073.1, master-
20190123.4, respectively (dotnet/coreclr#22112)
Commit migrated from https://github.com/dotnet/coreclr/commit/
db6b5ab5eaf2f2499ef913880cd63bbbc3b3cbaf
Stephen Toub [Thu, 24 Jan 2019 03:47:03 +0000 (22:47 -0500)]
Enable warnings-as-errors for System.Private.CoreLib (dotnet/coreclr#22164)
And disable several NoWarns.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8652c69d6c0fbfbeed5e68b4d83d039d6217796
Ben Adams [Thu, 24 Jan 2019 03:33:49 +0000 (04:33 +0100)]
Speedup SpanHelpers.IndexOf{Any}(byte, ...) (dotnet/coreclr#22118)
* Speedup SpanHelpers.IndexOf(byte)
* 128 * 2 alignment
* Move TrailingZeroCountFallback to common SpanHelpers
So it can be used by other types than byte
* Speedup SpanHelpers.IndexOfAny(byte, ...)
* Indent for support flags
* More helpers, constency in local names/formatting, feedback
* Skip bounds check in software fallback
Commit migrated from https://github.com/dotnet/coreclr/commit/
07d1e6b0c5dc2b5353b9cbc9c3d2385af3587552
Maoni Stephens [Thu, 24 Jan 2019 03:06:35 +0000 (19:06 -0800)]
this test should not be run under gcstress (dotnet/coreclr#22175)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b41c67f0c457199953ad93c14fd1c08fa08fb5e0
Stephen Toub [Thu, 24 Jan 2019 01:51:34 +0000 (20:51 -0500)]
Implement IAsyncDisposable.ConfigureAwait (dotnet/coreclr#22160)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c6b200be7ea1af26a9d183d78e7ee5b06327639
Jan Kotas [Wed, 23 Jan 2019 17:52:31 +0000 (09:52 -0800)]
Fix CoreRT build after moving Task.cs to shared partition
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
8e882fe493331be39117ab029f99a58747967e74
Aditya Mandaleeka [Thu, 24 Jan 2019 01:07:21 +0000 (17:07 -0800)]
Merge pull request dotnet/coreclr#22003 from adityamandaleeka/writebarrier_updates_arm64
Write barrier optimizations for ARM64 Windows
Commit migrated from https://github.com/dotnet/coreclr/commit/
9fb7676b318f95504fbb9daf63e2ae5894bdf2ff
Jeremy Koritzinsky [Thu, 24 Jan 2019 01:02:09 +0000 (17:02 -0800)]
Add GC.KeepAlive to keep collectible ALC alive across usage. (dotnet/coreclr#22133)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad8975dd4b064381e1560536b77e5dcfb3195c84
Egor Chesakov [Wed, 23 Jan 2019 22:04:12 +0000 (14:04 -0800)]
Disable superpmicollection in r2r jobs until https://github.com/dotnet/coreclr/issues/22027 is fixed (dotnet/coreclr#22085)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c17985240178000ecab0849045fee600e5a10a8d
Jan Vorlicek [Wed, 23 Jan 2019 21:59:27 +0000 (22:59 +0100)]
Add unloadability testing tool (dotnet/coreclr#22064)
* Add unloadability testing tool
This change adds the unloadability testing tool that can be used to run
coreclr tests or any other .NET core app inside of unloadable
AssemblyLoadContext, unload it after its execution completes and verify
that the unload succeeded. It has also various additional testing
options:
* memory leak testing
* running multiple iterations of the load/run/unload sequence
* optional breaking into debugger at various interesting stages (before
executing the test assembly, after executing it, on unload failure)
* delegated load when the AssemblyLoadContext that loads the test
assembly delegates loading of all the dependencies to another
AssemblyLoadContext
Commit migrated from https://github.com/dotnet/coreclr/commit/
70e7fa10827d039dcf2f3c59284da85eac02ac09
Filip Navara [Wed, 23 Jan 2019 21:35:11 +0000 (22:35 +0100)]
Move common ThreadPool code to shared CoreLib partition. (dotnet/coreclr#22115)
* Move common ThreadPool code to shared CoreLib partition.
* Move numWorkingThreads counting out of shared code.
* Rename ThreadPoolGlobals.vmTpInitialized to threadPoolInitialized.
Remove exception handling from ThreadPoolWorkQueue.Dispatch.
Remove obsolete code from ThreadPoolWorkQueue.Dispatch.
Rename ThreadPool.EnsureVMInitialized to ThreadPool.EnsureInitialized.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a0f81f59a7beb7120d3147c1547ef8ec1f05e0ae
Filip Navara [Wed, 23 Jan 2019 21:13:01 +0000 (22:13 +0100)]
Remove all traces of FEATURE_STACK_PROBE. (dotnet/coreclr#22149)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a28b25aacdcd2adb0fdfa70bd869f53ba6565976
Filip Navara [Tue, 22 Jan 2019 17:14:53 +0000 (18:14 +0100)]
Update parameter names in PInvoke signatures to match MSDN documentation.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
797888982e264e2ecfbc436f782f2f6704644e84
Filip Navara [Tue, 22 Jan 2019 13:25:08 +0000 (14:25 +0100)]
Build fixes.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
04c465d2253945dea03c8e447a30dd6d1d7b55be
Filip Navara [Wed, 23 Jan 2019 20:47:47 +0000 (21:47 +0100)]
Fix possibly unintentional use of bit-wise or operator. (dotnet/coreclr#22152)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f558c3cef371c2a6d1363ced193992958822dd6
Mike Danes [Wed, 23 Jan 2019 20:44:29 +0000 (22:44 +0200)]
Remove obsolete LEGACY_BACKEND ifdef
Commit migrated from https://github.com/dotnet/coreclr/commit/
bae72694ddf8da1746a7231c4d36f0bd086de702
Egor Chesakov [Wed, 23 Jan 2019 20:29:35 +0000 (12:29 -0800)]
Disable OSX.1012.Amd64.Open in Azure DevOps (dotnet/coreclr#22158)
Commit migrated from https://github.com/dotnet/coreclr/commit/
079d87fcf9555c07366bdac921111da474a5ca7b
Eugene Rozenfeld [Sat, 19 Jan 2019 00:15:32 +0000 (16:15 -0800)]
Fix R2R failure in one of ObjectStackAllocation tests.
AllocateSimpleClassAndCheckTypeNoHelper fails because
the object is allocated on the heap in R2R mode. The reason for that is
that we always use a helper for isinst in R2R mode and helper calls
cause us to assume the object escapes.
We don't have to use a helper in this case (even for R2R), dotnet/coreclr#22086 tracks
fixing that.
For now the fix is not to check that the object was allocated on the stack
in this test case.
Fixes dotnet/coreclr#22026.
Commit migrated from https://github.com/dotnet/coreclr/commit/
765a65395dcc7b71d998577609e62dd3093509c0
Eugene Rozenfeld [Wed, 23 Jan 2019 00:47:33 +0000 (16:47 -0800)]
Fix for JIT\Directed\arglist\vararg test case.
TestEchoShortNoVararg was failing and disabled. The reason it was
failing was a mismatch between DllImport declaration for echo_short and
the native function: the former specified 2-byte arg and return while
the latter specified 1-byte arg and return. I fixed that and also added
a couple of test cases with 1-byte arg and 2-byte return and
vice versa.
Fixes dotnet/coreclr#19704.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7ba27cd6134a0d2f63a179ce9abb0f1b1055e159
Jeremy Koritzinsky [Wed, 23 Jan 2019 18:34:54 +0000 (10:34 -0800)]
Don't redirect stdlib wchar functions to our test platform shims. (dotnet/coreclr#22072)
* Don't redirect stdlib wchar functions to our test platform shims.
* Fix bad find-replaces.
* Remove unused overload and last wchar shadowing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5fb8eb38f89a099461db3b5985f281db1b7ae263
Bruce Forstall [Wed, 23 Jan 2019 18:12:30 +0000 (10:12 -0800)]
Merge pull request dotnet/coreclr#22053 from BruceForstall/FixSimd12StoreLclFld
Fix SIMD12 GT_STORE_LCL_FLD
Commit migrated from https://github.com/dotnet/coreclr/commit/
481a99f52bf0516f589368455ab05818d23e051e
alexk000 [Wed, 23 Jan 2019 17:36:20 +0000 (12:36 -0500)]
Remove variable name duplication (dotnet/coreclr#22155)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0382455522962275c0f9b0bbe9629b789e9d103e
Filip Navara [Wed, 23 Jan 2019 17:35:31 +0000 (18:35 +0100)]
Remove unused thread abortion methods. (dotnet/coreclr#22147)
Commit migrated from https://github.com/dotnet/coreclr/commit/
42b246a65afac0fa9b347d52974aeddf45c48a88
Marek Safar [Wed, 23 Jan 2019 16:44:56 +0000 (17:44 +0100)]
Move Task to shared partition (dotnet/coreclr#22105)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9dfd173cd4ae8adcb4e51b5b41613a02f84cde87
Egor Chesakov [Wed, 23 Jan 2019 16:11:49 +0000 (08:11 -0800)]
Use Windows.10.Arm64.Open with Jenkins ONLY (dotnet/coreclr#22144)
Commit migrated from https://github.com/dotnet/coreclr/commit/
34f870e82141cc42e282e1d80fc8bac66554696a
Bruce Forstall [Fri, 18 Jan 2019 01:10:24 +0000 (17:10 -0800)]
Fix SIMD12 GT_STORE_LCL_FLD
It was ignoring the local field offset, by checking for the wrong
operator.
This appeared as a recent regression, but I couldn't find any code
(including test) change that would have caused this.
The failure only happens for JitStress with remorphing stress. This
creates the STORE_LCL_FLD. Otherwise, it looks like we normally
end up with IND(LCL_FLD_ADDR). Maybe we should be morphing these
somewhere?
No x64 PMI asm diffs in corelib or the JIT\SIMD tree. With JitStress=1
there are exactly 6 asm diffs in the Vector3Interop test, which was the
one failing.
The same fix is made for both xarch and arm64 code generators.
Fixes dotnet/coreclr#21935
Commit migrated from https://github.com/dotnet/coreclr/commit/
0fa687ca0ea32e36c527322d1114c6500b55ce15
Ben Adams [Wed, 23 Jan 2019 03:05:25 +0000 (04:05 +0100)]
Remove duplicate requiresSynchronization params attribute (dotnet/coreclr#22143)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e567dfbb8662dade53da0138964711eab1920279
Egor Chesakov [Wed, 23 Jan 2019 00:46:47 +0000 (16:46 -0800)]
Don't use Ubuntu.1604.Arm64.Open in Azure DevOps (dotnet/coreclr#22135)
Commit migrated from https://github.com/dotnet/coreclr/commit/
321b3f986244e8f6a282ab89de1e65e790ed6518
Michal Strehovský [Tue, 22 Jan 2019 20:40:56 +0000 (21:40 +0100)]
Decouple JIT_FLAG_PREJIT from HW intrinsics (dotnet/coreclr#22117)
Per dotnet/corertdotnet/coreclr#6836 (comment) moving the decision whether to enable HW intrinsics to the EE side.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9e88989458e24fa9764e045917b141e3338eae7
Michal Strehovský [Tue, 22 Jan 2019 17:09:31 +0000 (18:09 +0100)]
Restrict HW intrinsic name check to intrinsic types (dotnet/coreclr#22116)
Avoids having to compare names of all types in CoreLib to see if they're HW intrinsics.
Commit migrated from https://github.com/dotnet/coreclr/commit/
aa70c0a8b47957f0addad13f3f23c189e44e5878
Michal Strehovský [Tue, 22 Jan 2019 17:08:31 +0000 (18:08 +0100)]
Do not throw from TraceResolver (dotnet/coreclr#22126)
Fixes dotnet/coreclr#22059.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1923d37f7f1ebc3d701621fa8bfed5cbdf26fba8
Filip Navara [Tue, 22 Jan 2019 12:16:45 +0000 (13:16 +0100)]
Move MemoryFailPoint to shared CoreLib partition (dotnet/coreclr#22104)
* Move MemoryFailPoint to shared CoreLib partition.
* Split MemoryFailPoint into Unix and Windows versions.
* Replace MemoryFailPoint.GetMemorySettings FCall with GC.GetSegmentSize to make sharing with CoreRT easier.
Commit migrated from https://github.com/dotnet/coreclr/commit/
635a609eba8db8082a4e1245ce1291f9bbe9835c
Jan Kotas [Tue, 22 Jan 2019 05:02:55 +0000 (21:02 -0800)]
Fix CoreRT build breaks
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
61ff7397e849273bafc8b1e46ec88ddd905ce187
Marek Safar [Tue, 22 Jan 2019 03:28:13 +0000 (04:28 +0100)]
Move TplEtwProvider to shared partition (dotnet/coreclr#22120)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c9febf6346f90c06e70b3cb9e002300e50fa54b
Stephen Toub [Tue, 22 Jan 2019 02:56:55 +0000 (21:56 -0500)]
Remove two unnecessary ToArray calls (dotnet/coreclr#22119)
We can just copy directly from the List, rather than first converting the list to an array and then copying that.
Commit migrated from https://github.com/dotnet/coreclr/commit/
edffbd9c545aa9c1f6cb7ae048efdf5db13d3991
Stephen Toub [Mon, 21 Jan 2019 21:20:18 +0000 (16:20 -0500)]
Avoid intermediate strings in some StringBuilder formatting (dotnet/coreclr#22111)
* Avoid intermediate strings in some StringBuilder formatting
Several appends to string builders are first creating strings and then appending those strings, and they're not using the existing Append(primitive) overloads because they want to customize the format string or provider as part of appending the value. This fixes a few of those cases, using another internal AppendSpanFormattable overload on StringBuilder.
* Address PR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
401e931714e9b0890aaaa047710d0eb582bb8722
dotnet-maestro-bot [Mon, 21 Jan 2019 06:09:52 +0000 (22:09 -0800)]
Update CoreFx to preview.19070.3 (dotnet/coreclr#22061)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a5c5feb8939ae6ae10d9d2b7f2bc8d43ed99bc38