Tomáš Rylek [Tue, 13 Nov 2018 21:28:32 +0000 (22:28 +0100)]
Initial support for normalized 'naked' R2RDump output (dotnet/coreclr#20875)
* Initial support for normalized 'naked' R2RDump output
This change introduces a new option "--naked" that takes output
normalization even further - it intentionally leaves out any
position information to make the output easier to diff between
CPAOT and Crossgen.
One other new option is "--entrypoints" which dumps a plain
list of JITted methods in the R2R executable. This can be used
for comparisons between CPAOT and Crossgen and / or for static
analysis of what methods were actually emitted by the compiler.
* Addressed Zach's PR feedback
1) Added argument consistency check for the invalid combination
"--naked" + "--raw".
2) Added dump of multi-dimensional array lower bounds and sizes
when available.
Thanks
Tomas
Commit migrated from https://github.com/dotnet/coreclr/commit/
e586793e0fbf0fa3d42e4519663ed2d977198a23
Jan Kotas [Tue, 13 Nov 2018 21:20:35 +0000 (13:20 -0800)]
Unify ThrowHelper style (dotnet/coreclr#20974)
Commit migrated from https://github.com/dotnet/coreclr/commit/
168c4221ade5828a195e171924af86b9710d25dc
Russ Keldorph [Tue, 13 Nov 2018 15:24:44 +0000 (07:24 -0800)]
Increase FreeBSD job time allowance
Commit migrated from https://github.com/dotnet/coreclr/commit/
3d0aa77ed7e2ff27670d4a7ee3d23ce92431915b
Fadi Hanna [Tue, 13 Nov 2018 20:44:49 +0000 (12:44 -0800)]
Optimize vtable calls (dotnet/coreclr#20696)
* Implementation of R2R vtable call thunks. These thunks will fetch the target code pointer from the vtable of the input thisPtr, and jump to that address.
This is especially helpful with generics, since we can avoid a generic dictionary lookup cost for a simple vtable call.
Overall, these thunks cause the CPU to have less branch mispredictions, and give a small performance boost to vtable calls.
These stubs are under VirtualCallStubManager so that the managed debugger can handle stepping through them.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d2cd0df600cfa697d30cf7ef5a7cf1c3c33b9959
Michal Strehovský [Tue, 13 Nov 2018 13:01:34 +0000 (14:01 +0100)]
Handle generics in methodimpls for default interface methods (dotnet/coreclr#20404)
The existing logic looking at MethodImpls to find the default interface implementation was not correct in the presence of generics. The MethodImpl records we build during type load only contain inexact MethodDescs for the declMethod that are not suitable for comparisons.
The fix is to pipe through the token and resolve the declaring method from it at the time of dispatch.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e95c1f8fe6ae185b90b807170445c2e26cfbed66
Tanner Gooding [Tue, 13 Nov 2018 07:03:20 +0000 (23:03 -0800)]
Fixing Utf8Parser.Number to not modify the value of 'c' (dotnet/coreclr#20967)
Commit migrated from https://github.com/dotnet/coreclr/commit/
af659aff6dc7f91a3b82d5e39d877e69b567e580
Egor Chesakov [Tue, 13 Nov 2018 03:31:17 +0000 (19:31 -0800)]
Exclude failing System.Memory.Tests (dotnet/coreclr#20958) on Linux/ARM and Linux/ARM64 (dotnet/coreclr#20962)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9975c7e1b3f941caaa8809d36c712af6e500a91
Andrew Au [Tue, 13 Nov 2018 03:00:44 +0000 (19:00 -0800)]
Passing the CONTEXT in ICorDebugManagedCallback4::DataBreakpoint (dotnet/coreclr#20960)
* Passing the CONTEXT in ICorDebugManagedCallback4::DataBreakpoint
* ifdef out the message sending on configurations that does not support data breakpoint
Commit migrated from https://github.com/dotnet/coreclr/commit/
5cc14fc4b86252f6a729401c959a074e54e51249
Egor Chesakov [Tue, 13 Nov 2018 01:21:06 +0000 (17:21 -0800)]
Simplify build.sh command line arguments for Linux/arm cross build (Part 1) (dotnet/coreclr#20836)
* Don't use crosscomponent|-crosscomponent command line args in build.sh
* Don't use CROSSCOMPONENT environment variable in build.sh src/pal/tools/gen-buildsys-clang.sh
* Remove mentioning -crosscomponent from usage() in build-test.sh
* Don't use -crosscomponent in buildpipeline
* Don't use -crosscomponent in Groovy files
* Remove mentioning crosscomponent in Documentation/building/linux-instructions.md
* Stop building Hostx86/armel crossgen in build.sh
* Disable CrossGen-ing of System.Private.CoreLib on Linux/armel
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4bfbba75f40c3203267a235be5266d22adea6a3
Egor Chesakov [Tue, 13 Nov 2018 00:41:01 +0000 (16:41 -0800)]
Lower fast tail call wasn't patching control expression (dotnet/coreclr#20740)
Lower fast tail call can replace local variables (holding Caller stack arguments) with new temps in order to set up Callee stack arguments correctly. This involves patching corresponding LCL_VAR and LCL_VAR_ADDR nodes and replacing them with the location of a new temp.
This was not done for control expression which continued pointing to the old location and could contain a Callee argument.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce7e79770b924c3ed4649c60074fa36c1401b4ee
Eugene Rozenfeld [Mon, 12 Nov 2018 21:16:19 +0000 (13:16 -0800)]
Disable stress random inlining for object stack allocation tests.
ObjectStackAllocationTests are sensitive to inlining so we need
to disable stress random inlining.
Fixes dotnet/coreclr#20944.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7e263a2fafaddcb1fd787b001adb3ffda393c147
Tanner Gooding [Mon, 12 Nov 2018 23:46:55 +0000 (15:46 -0800)]
Moving the Utf8Formatter and Utf8Parser into S.P.Corelib (dotnet/coreclr#20934)
* Moving the Utf8Formatter and Utf8Parser into S.P.Corelib
* Doing some minimal cleanup to lineup types and get the Utf8Parser/Utf8Formatter building
* Updating the Utf8 Float Parser to have different buffers for Single vs Double
* Fixing the Utf8Parser to track trailing zero digits and to properly mark the end of the buffer
* Fixing a couple of issues in Utf8Parser.Number
Commit migrated from https://github.com/dotnet/coreclr/commit/
80c0a0ea2446b665d13e1632422802f4bf208ae5
Egor Chesakov [Mon, 12 Nov 2018 23:21:27 +0000 (15:21 -0800)]
Update tests/arm64/corefx_linux_test_exclusions.txt (dotnet/coreclr#20206)
Commit migrated from https://github.com/dotnet/coreclr/commit/
64250042dccf21e8391e9fd7e1c435d976f0e454
Fei Peng [Mon, 12 Nov 2018 22:07:49 +0000 (14:07 -0800)]
Remove SSE4.2 STTNI APIs for .NET Core 3.0 (dotnet/coreclr#20887)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ebfcb1e0aa563327f3ec1a79b53124144c81c654
Tomas Weinfurt [Mon, 12 Nov 2018 20:49:36 +0000 (12:49 -0800)]
enable build-id on FreeBSD (dotnet/coreclr#20945)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0aab97266ea6620a17a20804c7aebfcdbd37a5b0
Swaroop Sridhar [Mon, 12 Nov 2018 19:56:18 +0000 (11:56 -0800)]
LoadLibrary refactoring (dotnet/coreclr#20841)
* Refactor LoadLibrary Methods
This change refactors the code in DllImport in preparation
for implementing the new NativeLibrary API here:
dotnet/corefxdotnet/coreclr#32015
The two main changes are:
1) A change in the semantics of the internal LoadLibrary helper functions.
When a native library is loaded, there are two categories of callers
expecting different return values:
External callers like AssemblyNative::InternalLoadUnmanagedDllFromPath()
and the upcoming System.Runtime.Interop.Marshall.LoadLibrary()
need the raw system handle
Internal callers like LoadLibraryModule() need the PAL registered handle
This change modifies the internal LoadLibraryModule* methods to work
in terms of native system handles, so that external callers can obrain
them directly. Methods requiring PAL-handles can register them explicitly.
There is no change in external signature of DllImport class, or the
native Dll cache in AppDomain class.
2) Differentiate HMODULE and NATIVE_LIBRARY_HANDLE
This change defines NATIVE_LIBRARY_HANDLE type to represent
raw system handles to native libraries that are not registered
with the PAL (On Unix systems).
The types on PAL and DlImport methods are adjusted to make
this semantic distinction explicit.
*
Fix loading LibC via PAL_LoadLibraryDirect()
Commit migrated from https://github.com/dotnet/coreclr/commit/
214c3b62d889b2ff57425ab3f4ce70adf7503be6
Jan Kotas [Mon, 12 Nov 2018 07:23:21 +0000 (23:23 -0800)]
Fix CoreRT build breaks
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
853a01279327163b099fdd70d1c04d8aaf61f772
Andy Ayers [Mon, 12 Nov 2018 18:58:03 +0000 (10:58 -0800)]
Allow jit to examine type of initonly static ref typed fields (dotnet/coreclr#20886)
The jit incorporates the value of integer and float typed initonly static
fields into its codegen, if the class initializer has already run.
The jit can't incorporate the values of ref typed initonly static fields,
but the types of those values can't change, and the jit can use this knowledge
to enable type based optimizations like devirtualization.
In particular for static fields initialized by complex class factory logic the
jit can now see the end result of that logic instead of having to try and deduce
the type of object that will initialize or did initialize the field.
Examples of this factory pattern in include `EqualityComparer<T>.Default` and
`Comparer<T>.Default`. The former is already optimized in some cases by via
special-purpose modelling in the framework, jit, and runtime (see dotnet/coreclr#14125) but
the latter is not. With this change calls through `Comparer<T>.Default` may now
also devirtualize (though won't yet inline as the devirtualization happens
late).
Also update the reflection code to throw an exception instead of changing the value
of a fully initialized static readonly field.
Closes dotnet/coreclr#4108.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c2abe892b227740c4b8baa51f5433dfc1101a52f
Tanner Gooding [Mon, 12 Nov 2018 18:51:16 +0000 (10:51 -0800)]
Some cleanup of the Math functions from dotnet/coreclr#20788 (dotnet/coreclr#20912)
* Fixing Max, MaxMagnitude, Min, and MinMagnitude for Math/MathF to be IEEE compliant
* Disabling the System.Math.Max/Min tests
* Adding the new c_runtime PAL tests to the CMakeLists to ensure they actually get run.
* Fixing the casing of IlogB to ILogB
* Fixing the new PAL tests to match the correct/expected outputs
* Fixing up PAL_ilogb to correctly handle 0 and NaN
Commit migrated from https://github.com/dotnet/coreclr/commit/
a49296e266ae9aa0bee760f2fcf51d3497ba818d
dotnet-maestro-bot [Mon, 12 Nov 2018 14:45:38 +0000 (06:45 -0800)]
Update CoreClr, CoreFx, IbcData, PgoData to preview-27112-01, preview.18562.1, master-
20181112-0045, master-
20181112-0043, respectively (dotnet/coreclr#20929)
Commit migrated from https://github.com/dotnet/coreclr/commit/
cab9d87ee3244d84ffac29a0379a22525839f2a1
Oded Hanson [Mon, 12 Nov 2018 11:02:37 +0000 (13:02 +0200)]
Verify the application group container directory exists in Mac Sandbox (dotnet/coreclr#20916)
* Verify the application group container directory exists in Mac Sandbox
Added an additional check to verify that the shared files directory based on the application group ID exists when running in a Mac sandbox. If it doesn't then the initialization will fail.
As part of this change, also refactored the logic the sets the shared file path into a separate method.
* Changed bool to BOOL
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f9686f5beb1fd7b6f58fbe7269131db255b272e
Jeremy Koritzinsky [Sun, 11 Nov 2018 00:07:33 +0000 (16:07 -0800)]
Keep delegate fields alive across a full native call (dotnet/coreclr#20896)
* Repurpose CleanupWorkList to also preserve delegate references in structs across the full native call.
* Change CleanupWorkListElement to abstract base class instead of interface.
* Make CleanupWorkList a singlely linked list.
* PR Feedback.
* Remove CleanupWorkList and make CleanupWorkListElement be able to represent the full list.
* Add back throw in SafeHandle field marshalling.
* PR feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
463ba889b0c010eb9c6f9807eaf0ab4ab5624450
Sung Yoon Whang [Sat, 10 Nov 2018 23:59:02 +0000 (15:59 -0800)]
Remove VersionBlock struct for profiler attach (dotnet/coreclr#20889)
* Remove VersionBlock struct for profiler attach
* Change pipe/event names to not match the Desktop version pipe/event names
Commit migrated from https://github.com/dotnet/coreclr/commit/
845fc293bef24024f779e05ebc33971bea2728d3
Stephen Toub [Sat, 10 Nov 2018 20:44:05 +0000 (15:44 -0500)]
Fix invalid out of range exception thrown in ArrayPool trimming (dotnet/coreclr#20932)
The trim method had the wrong logic to get the relevant bucket size, resulting in InvalidOutOfRangeException exceptiosn being thrown and eaten on the finalizer thread.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dd6d2f82f0122e896a1a7385009b848237292749
Zeng Jiang [Sat, 10 Nov 2018 19:59:07 +0000 (03:59 +0800)]
Add PInvoke/BestFitMapping tests (dotnet/coreclr#19269)
* Add PInvoke/BestFitMapping tests
* Fix warning
* Make native side of tests xplat.
* Clean up managed side of the test build.
* Disable BestFitMapping tests off Windows.
* Individually disable tests.
* Disable the two tests that I missed last time.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e20c7f3d6194ef366a075371f9faee19ac68038
dotnet-maestro-bot [Sat, 10 Nov 2018 14:06:20 +0000 (06:06 -0800)]
Update IbcData, PgoData to master-
20181110-0042, master-
20181110-0040, respectively (dotnet/coreclr#20925)
Commit migrated from https://github.com/dotnet/coreclr/commit/
86de67ab5503aa1e40e853edfe8ad84925abffed
dotnet-maestro-bot [Sat, 10 Nov 2018 06:19:39 +0000 (22:19 -0800)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03407-01, preview-27110-01, preview.18560.1, preview-27109-05, master-
20181109-0043, master-
20181109-0044, respectively (dotnet/coreclr#20790)
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa82845277955d86ac36f8eb1b805f198109076a
Eric StJohn [Sat, 10 Nov 2018 01:54:47 +0000 (17:54 -0800)]
Add back support for deserialization of BinaryFormatted resources (dotnet/coreclr#20907)
* Add back support for deserialization of BinaryFormatted resources
This adds back support for using BinaryFormatter to deserialize resources when loaded
from assembly.
We conditionally load BinaryFormatter and will throw if asked to deserialize binary formatted
resources and cannot find it.
* Apply code-review feedback
Changes lazy initialization to use LazyInitializer
Remove special handling of missing serialization assembly.
Clean up comments,
* Use named parameter when specifying permitDeserialization
Commit migrated from https://github.com/dotnet/coreclr/commit/
791332b101524034ca9a69ab7669d5a87713447b
Jan Kotas [Sat, 10 Nov 2018 01:49:12 +0000 (17:49 -0800)]
Delete dead/unreachable code related to remoting (dotnet/coreclr#20880)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff5723233e6b4df6fe441b2ba453506f860aebe9
Tarek Mahmoud Sayed [Sat, 10 Nov 2018 01:46:06 +0000 (17:46 -0800)]
Expose Index and Range types (dotnet/coreclr#20899)
* Expose Index and Range types
* Address Review Comments
* Address more feedback
* Addressing more comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
3464b60b85c8e10d69d8da86d2eb3f9e7aaa7c4b
Michelle McDaniel [Fri, 9 Nov 2018 23:09:00 +0000 (15:09 -0800)]
Fix path to python on sod and illink jobs (dotnet/coreclr#20914)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c556159f28051ec091c42c9dcaf4385d9b8c8f6
Bruce Forstall [Fri, 9 Nov 2018 18:18:39 +0000 (10:18 -0800)]
Merge pull request dotnet/coreclr#20895 from dotnet/dev/unix_test_workflow
Adjust corefx output directory name
Commit migrated from https://github.com/dotnet/coreclr/commit/
0a1953f9c27f1fefa61cb936cca4c58b85be0957
Ben Adams [Fri, 9 Nov 2018 17:26:42 +0000 (17:26 +0000)]
Fast-path ExecutionContext for ThreadPool items (dotnet/coreclr#20308)
Fast-path ExecutionContext for ThreadPool items
Maintain the ThreadPool threads on the Default contexts between work items.
Always restore the Default context on the ThreadPool Dispatch loop after a workitem has run (to clean up any ExecutionContext leakage from changes on flow suppressed workitems, or AsyncLocal change eventhandlers; as well as firing their notifications if they have them)
Store the `CurrentThread` as part of the thread static `ThreadPoolWorkQueueThreadLocals` which are already looked up at the start of the Dispatch loop to avoid an additional lookup via `Thread.CurrentThread`.
As workitems are started on the Default context and are returned to it `QueueUserWorkItemCallbackDefaultContext` items can just be run their callbacks directly rather than via `ExecutionContext.Run` (as the EC don't need to move to Default and is always moved back to Default).
As `QueueUserWorkItemCallbackDefaultContext` now runs items directly; flow suppressed callbacks can use the smaller `QueueUserWorkItemCallbackDefaultContext` rather than `QueueUserWorkItemCallback` with a null context; and handling for flow suppression can be removed from `QueueUserWorkItemCallback`.
As `AwaitTaskContinuation`'s `IThreadPoolWorkItem.Execute` doesn't preform additional work after it completes, it can run `m_action` directly for Default context in addition to the flow suppressed context, rather than going via `ExecutionContext.Run`.
Given that the items on the ThreadPool are always started on the threadpool and restored to it; we can introduce some faster paths than `ExecutionContext:RunInternal` (328 bytes asm).
Introduce `ExecutionContext:RunForThreadPoolUnsafe` (71 bytes asm), for `IThreadPoolWorkItem`s where they need to run on a provided context, but do not need to execute anything after they complete so can rely on the Dispatch loop restore. This includes `QueueUserWorkItemCallback`, `QueueUserWorkItemCallback<TState>` and `AwaitTaskContinuation`.
Introduce `ExecutionContext:RunFromThreadPoolDispatchLoop` (225 bytes asm), for items run from the ThreadPool, so don't need to capture current context (Default) to restore later, however need to do need to restore back to Default after execution as they then perform additional work. This includes
`Task`/`AsyncStateMachineBox`/`AwaitTaskContinuation`/`Timer`.
Change `Task.ExecuteFromThreadPool()` to take the thread `Task.ExecuteFromThreadPool(Thread threadPoolThread)` from the ThreadPool Dispatch loop so it can pass it into the `ExecutionContext:RunFromThreadPoolDispatchLoop` overload and avoid the `Thread.CurrentThread` lookup.
Perf test: https://github.com/dotnet/coreclr/pull/20308#issuecomment-
436805786
Resolves: dotnet/corefxdotnet/coreclr#32695
Commit migrated from https://github.com/dotnet/coreclr/commit/
d9732f493c359b404bd5b45117f4d211148c591a
Li Shengqiu [Fri, 9 Nov 2018 14:35:58 +0000 (22:35 +0800)]
Fix typos in comments (dotnet/coreclr#20908)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f6e360d4b4c20c3bcff03ad27c4dcad38c07f41
Pent Ploompuu [Fri, 9 Nov 2018 14:32:16 +0000 (16:32 +0200)]
Optimize Char.GetUnicodeCategory and related checks (dotnet/coreclr#20864)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9406df8e5f93fd437b6af236df0b0aaba6cf9a31
Tanner Gooding [Fri, 9 Nov 2018 01:58:24 +0000 (17:58 -0800)]
Moving the Utf8Parser/Utf8Formatter to be shared (dotnet/corefxdotnet/coreclr#33348)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0fccc78cfea93bafbba07cc4a84a32582a3af88f
Eugene Rozenfeld [Tue, 30 Oct 2018 00:34:17 +0000 (17:34 -0700)]
Implement escape analysis and stack allocation of non-box objects without gc fields.
This change implements a conservative flow-insensitive escape analysis and stack allocation
of non-box objects without gc fields.
Handling of objects with gc fields, box objects, and fixed-size arrays is future work.
Escape analysis is based on the one described here: https://www.cc.gatech.edu/~harrold/6340/cs6340_fall2009/Readings/choi99escape.pdf
Main limitations of this version of the escape analysis:
1. The analysis is flow-insensitive.
2. The analysis is intra-procedural and only sees the current method and the inlined methods.
3. The analysis assumes that references passed to non-pure-helper calls escape.
4. The analysis assumes that any references assigned to fields of objects escape.
Some of these limitations will be removed in future work.
I started with prior prototypes from @echesakovMSFT and @AndyAyersMS and extended and refactored
parts of them.
I also added tests for cases that are currently handled or will be handled soon.
Commit migrated from https://github.com/dotnet/coreclr/commit/
00f5934a3e34977c7a1502da604f2dae90040888
Eugene Rozenfeld [Tue, 30 Oct 2018 00:08:02 +0000 (17:08 -0700)]
Make getClassGClayout work with with class types.
Also add an assert to getHeapClassSize to ensure it's not
called in R2R cross-version-bubble.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e472fd44778d8322db53284336c2a96e75d70244
Eugene Rozenfeld [Tue, 30 Oct 2018 00:05:44 +0000 (17:05 -0700)]
Allow creation of variables of TYP_STRUCT with non-value class handles.
Variables of TYP_STRUCT with non-value class handles represent stack-allocated objects.
Temporarily disable promotion of fields of stack-allocated objects.
Commit migrated from https://github.com/dotnet/coreclr/commit/
26df4f3346acff8bb347ef5134159aa8480debac
Eugene Rozenfeld [Tue, 16 Oct 2018 01:40:35 +0000 (18:40 -0700)]
Add JitObjectStackAllocation config option.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a5e5810bc22f6d9f4c181069ee94e059a81d14c
Jan Kotas [Thu, 8 Nov 2018 19:45:13 +0000 (11:45 -0800)]
Remove cached invariant globalization mode flag
Direct check of readonly flag is better with tiered JITing (the check is optimized out)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c090d9059f650fb903061e8633db0f4f3910f67a
Jan Kotas [Thu, 8 Nov 2018 21:42:34 +0000 (13:42 -0800)]
Delete unnecessary ReferenceSystemPrivateCoreLib
Commit migrated from https://github.com/dotnet/coreclr/commit/
c2f0fbab9a2d0fc9b89eecda2207e46816671674
Jan Kotas [Fri, 9 Nov 2018 05:12:57 +0000 (21:12 -0800)]
Revert "Passing the CONTEXT in ICorDebugManagedCallback4::DataBreakpoint"
This reverts commit dotnet/coreclr@
9dd2a3688320fa197a3a2a412523416f10e7fa3b.
Commit migrated from https://github.com/dotnet/coreclr/commit/
592bc01e8da6bb4f692b3b090a3c82d415a3b7d7
Stephen Toub [Fri, 9 Nov 2018 01:16:52 +0000 (20:16 -0500)]
Remove System.Memory reference from several libraries (dotnet/coreclr#33343)
Minor cleanup... they only have this System.Memory reference in order to support MemoryMarshal.GetReference, and we can just use the default GetPinnableReference instead. (We could also just stackalloc into a pointer instead of using span at all, but using span keeps it tidy and adds a tiny amount of additional safety).
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f41ff9d20c66a4b4fa8c273059085b8a8036343
Tanner Gooding [Fri, 9 Nov 2018 03:47:35 +0000 (19:47 -0800)]
Changing Number.NumberBuffer to carry a `Span<byte>` rather than a `Span<char>` (dotnet/coreclr#20879)
* Changing Number.NumberBuffer to carry a `Span<byte>` rather than a `Span<char>`
* Renaming NumberBuffer.Sign to NumberBuffer.IsNegative
* Renaming NumberBuffer.Precision to NumberBuffer.DigitsCount
* Adding a ToString and CheckConsistency method to NumberBuffer
* Adding some number.CheckConsistency() calls for debug validation
* Fixing the UTF16Formatter to meet the consistency checks
Commit migrated from https://github.com/dotnet/coreclr/commit/
3e6f7cb772febd83eaf3fecc3baf169ddd6a920f
Andrew Au [Thu, 8 Nov 2018 18:55:00 +0000 (10:55 -0800)]
Passing the CONTEXT in ICorDebugManagedCallback4::DataBreakpoint
Commit migrated from https://github.com/dotnet/coreclr/commit/
9dd2a3688320fa197a3a2a412523416f10e7fa3b
José Rivero [Fri, 9 Nov 2018 00:20:29 +0000 (16:20 -0800)]
EventPipe support for "Parameters" (dotnet/coreclr#20796)
These changes enable passing "arguments" to an EventSource.
Commit migrated from https://github.com/dotnet/coreclr/commit/
78570a239101f69200cfceab5e7527ca8cc312b8
Levi Broderick [Thu, 8 Nov 2018 23:35:32 +0000 (15:35 -0800)]
Enlighten ValueNumStore::EvalOpSpecialized about bswap nodes (dotnet/coreclr#20883)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a6c04ffea322382d5ed38c9278ade2c5c5b950ff
Brian Sullivan [Thu, 8 Nov 2018 23:01:32 +0000 (15:01 -0800)]
Merge pull request dotnet/coreclr#20838 from briansull/issue_18259
ValueNum add check for ZeroOffsetFldSeq on LclVar reads
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae4dc9cd50e50dd1f199fa457dc65495f26a71b4
Michelle McDaniel [Thu, 8 Nov 2018 21:56:00 +0000 (13:56 -0800)]
Specify path to python3.5 for perf jobs (dotnet/coreclr#20443)
* Specify path to python3.5 for perf jobs
* Change path to python in throughput testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
383f22ccf240f3b66c3e9f1d161a3a75c4e40d80
Michal Strehovský [Thu, 8 Nov 2018 16:15:26 +0000 (17:15 +0100)]
Replace reflection in an assert with ==
Reflection on private implementation of the CoreLib is disallowed in CoreRT to save disk space (we don't have to bother emitting the metadata).
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
3bab4929107943893c9f837bf8078e8533cc8e18
Bruce Forstall [Thu, 8 Nov 2018 21:17:59 +0000 (13:17 -0800)]
Merge pull request dotnet/coreclr#20890 from BruceForstall/FixMoreFxPaths
Fix more CoreFx 'artifacts' paths
Commit migrated from https://github.com/dotnet/coreclr/commit/
a0da3fe132e047d634896fde2f9e96d6ecc12d35
Bruce Forstall [Thu, 8 Nov 2018 21:16:41 +0000 (13:16 -0800)]
Fix more CoreFx 'artifacts' paths
Commit migrated from https://github.com/dotnet/coreclr/commit/
f68bd895fd3fe320abf4670ed9dfcf5f6d63c47f
Stephen Toub [Thu, 8 Nov 2018 20:34:27 +0000 (15:34 -0500)]
Add work item dumping support to SOS' ThreadPool command (dotnet/coreclr#20872)
Adds a -wi switch to the ThreadPool command that will enumerate all queues dumping out all found work items.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d793aa34a9f7f2bab8a1699456bc2047578a0a6d
Mike McLaughlin [Thu, 8 Nov 2018 20:29:10 +0000 (12:29 -0800)]
Fix "LTTng-UST: Error (-17) while registering..." error when debugging (20874)
Fixes issue dotnet/coreclr#20205.
This has been happening in more and more scenarios:
1) SOS when the coreclr hosting the SOS managed code is a different version that the one being debugged
2) Lee ran into it with ClrMD for Linux
3) The dotnet-diagnostictests repo with the current arcade build changes because the coreclr version hosting mdbg is different than the version running the debuggees.
This fix is simple: only link the tracepointprovider.cpp code that loads libcoreclrtraceptprovider.so into libcoreclr.so and not in any other module that uses the PAL library (libdbgshim.so, libmscordaccore.so, etc.). Create a new "tracepointprovider" library with the tracepointprovider.cpp source file in it and remove it from the "coreclrpal". Link this new lib into libcoreclr.so.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c60869f3768f4495cb1d54179db2c41eed921d50
Bruce Forstall [Thu, 8 Nov 2018 19:20:55 +0000 (11:20 -0800)]
Merge pull request dotnet/coreclr#20882 from BruceForstall/FixFxDir
Adjust for corefx output directory change
Commit migrated from https://github.com/dotnet/coreclr/commit/
06114b7394a2f41bfdd1270cb8f9e8307aadeefb
Bruce Forstall [Thu, 8 Nov 2018 19:12:09 +0000 (11:12 -0800)]
Adjust for corefx output directory change
The "bin" directory is now under the "artifacts" directory.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae6cc70495a07b4d6e9c60591a7a1bd710eaa2c9
Brian Sullivan [Tue, 6 Nov 2018 02:26:10 +0000 (18:26 -0800)]
Fixes issue 18259
The problem here was that we have an indirection of a LclVar that was a pointer to an array element whose type is a struct.
The following discussion refers to the test case GitHub_18259/GitHub_18259.cs
We recorded that the struct field F1.F0 is assigned 1234u.
With the bug all subsequent reads of vr7.F0 return this value.
We miss the update to zero because we didn't add the Zero Field sequence value to the LclVar vr7
Added Test case GitHub_18259.cs
Added Test case GitHub_20838.cs
Commit migrated from https://github.com/dotnet/coreclr/commit/
a35f0620007ca6f8f6c0223b7f6e0d7573a40121
Matt Galbraith [Thu, 8 Nov 2018 17:48:47 +0000 (09:48 -0800)]
Update FreeBSD build timeout to 120.
Commit migrated from https://github.com/dotnet/coreclr/commit/
624767281d5dfa75c82a72d56c348cc53db844b4
Sven Boemer [Thu, 8 Nov 2018 16:50:37 +0000 (08:50 -0800)]
Add azure-pipelines build and test definitions (dotnet/coreclr#20840)
This adds an azure pipeline definition with a matrix of product and test builds, using helix to run tests. The intention is that this definition will eventually be used for both our official build and CI testing.
There is one build job for each OS/platform/arch, and one test job for each OS/platform/arch/priority/R2Rflag. The test job builds tests and then submits them to helix, passing along a number of test run modes. One helix test job will be created for each OS/platform/arch/priority/R2Rflag/helixtargetqueue/testscenario.
There is a lot of work left to be done to get this up to parity with our official builds and CI, which I've tried to call out in comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8bc5616def9074d8457f85d22b1280493ad731ad
Michal Strehovský [Thu, 8 Nov 2018 11:11:25 +0000 (12:11 +0100)]
Add test coverage for custom modifiers (dotnet/coreclr#20546)
Custom modifiers are only lightly tested within the CLR test codebase (both closed and open). This adds targeted tests for:
* Resolution and overriding
* Various places that should ignore them
* Reflection
Commit migrated from https://github.com/dotnet/coreclr/commit/
f6e7568cc6d4901abb5e11ebc05267743a1c5205
Levi Broderick [Thu, 8 Nov 2018 07:54:11 +0000 (23:54 -0800)]
Add string.GetHashCode(ROS<char>) and related APIs (dotnet/coreclr#20422)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9400301e025ff2d64a93137d11ed1eba0781ced
Tanner Gooding [Thu, 8 Nov 2018 04:23:49 +0000 (20:23 -0800)]
Fixing up the Double/Single parsing code to be correct (dotnet/coreclr#20707)
* Don't normalize -0.0 to 0.0 when parsing
* Updating NumberBuffer to validate the constructor inputs
* Updating NumberToDouble to just get the precision
* Don't check for non-significant zero's in NumberToDouble
* Updating Number.BigInteger to carry additional space for the worst-case scenario
* Removing some dead code from double.TryParse
* Updating NumberToDouble to use the RealParser implementation from Roslyn
* Fixing TryNumberToDouble and TryNumberToSingle to apply the appropriate sign.
* Adding a fast path for double/single parsing when we have <= 15 digits and an absolute scale <= 22
* Update NumberBuffer to also track whether any input digits past maxDigCount were non-zero
* Renaming NumberToFloatingPointBitsRoslyn to NumberToFloatingPointBits
* Updating TryNumberToDouble and TryNumberToSingle to support Overflow to Infinity
* Fixing a Debug.Assert in TryParseNumber
* Fixing `DecimalNumberBufferLength` to 30
* Renaming NumberToFloatingPointBitsRoslyn to NumberToFloatingPointBits
* Clarifying the NumberBufferLength comments
* Fixing TryNumberToDecimal to check the last digit in the buffer, if it exists
* Disable some CoreFX tests due to the single/double/decimal parsing fixes
* Fix TryNumberToDecimal to not modify the value of p in the assert.
Co-Authored-By: tannergooding <tagoo@outlook.com>
* Updating NumberToFloatingPointBits to use single-precision arithmetic and extended-precision multiplication where possible
* Splitting the NumberToFloatingPointBits code into a fast and slow-path method
* Ensure Roslyn is properly attributed.
* Removing the 80-bit extended precision fast path for NumberToFloatingPointBits, due to a bug
* Fixing the double and single parser to ignore case for Infinity and NaN
* Add a clarifying comment to Number.NumberToFloatingPointBits that the code has been modified from the original source.
* Removing the remaining code that was used by the 80-bit extended precision fast-path in NumberToFloatingPointBits
* Adding a missing comma to the CoreFX.issues.json
* Remove licensing "glue" and re-release the Roslyn RealParser code under the MIT license.
* Some minor cleanup to the NumberToFloatingPointBits code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b30280d98e6c8e1980173a256609a0bde7f9c83d
Fei Peng [Thu, 8 Nov 2018 03:15:55 +0000 (19:15 -0800)]
Handle 64-bit only intrinisc by nested classes (dotnet/coreclr#20146)
Commit migrated from https://github.com/dotnet/coreclr/commit/
002603e22fe881fc501b344910740a529bed0d9c
Tanner Gooding [Thu, 8 Nov 2018 03:15:37 +0000 (19:15 -0800)]
Move the various helper intrinsics to be implemented on the S.R.Intrinsics.Vector types (dotnet/coreclr#20147)
* Renaming Vector64.cs, Vector128.cs, and Vector256.cs to be Vector64_1.cs, etc
* Adding some core helper methods to the Vector64, Vector128, and Vecto256 types.
* Adding some documentation comments to the System.Runtime.Intrinsics.Vector types
* Changing `Set` to `With`
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce586ae4073a15f634b68a1e81ae3649b1e7ac72
Jan Vorlicek [Thu, 8 Nov 2018 00:08:46 +0000 (01:08 +0100)]
Add unloadability support to ReliabilityFramework (dotnet/coreclr#20418)
* Add unloadability support to ReliabilityFramework
This change adds support for unloadable AssemblyLoadContext to the GC
ReliabilityFramework. It basically mimics what was there ifdef-ed out
for AppDomains.
It allows stress testing GC when running inside of an unloadable
AssemblyLoadContext. GC has some special handling for collectible
classes and this allows testing the respective code paths.
* Make tests run on separate threads
The tests running in the assembly load context were bot using separate
threads per test and so they were not really stressing GC as much as
possible. This change fixes that.
I've also merged code for AppDomains / AssemblyLoadContext at most
places so that the differences are clearly visible.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad581931c97f2b6278e21c381cf6adfc3f555134
Jan Vorlicek [Thu, 8 Nov 2018 00:08:20 +0000 (01:08 +0100)]
Remove need for full GC for unloadable stuff (dotnet/coreclr#20384)
This change removes enforcing of full GC after native LoaderAllocator is
destroyed. It turns out it was not needed. There is no regression in
running coreclr pri 1 tests inside an unloadable AssemblyLoadContext and
unloading the context after a test completes for each test.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b3859ce4debbeab0c0a04b8a519eded46bf67517
Tomas Weinfurt [Wed, 7 Nov 2018 14:55:12 +0000 (06:55 -0800)]
Fix string error handling for failed DNS lookup (dotnet/corefxdotnet/coreclr#32351)
* better handling for dns failures
* cleanup
* add test for DNS failure exception
* relaxt test a little bit to make it more robust for future
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
88ddaa1a3de6acac9924c3f57f5eef2138c1b956
Stephen Toub [Wed, 7 Nov 2018 20:14:00 +0000 (15:14 -0500)]
Improve DumpAsync SOS command (dotnet/coreclr#20845)
* Help DumpDelegate to dump more cases
* Improve DumpAsync command
- Add a stats summary at the beginning of the output
- Improved single-line-per-entry default behavior for increased readability
- Add option to include all tasks, not just async state machine objects
- Include state value for each async object, the state field for async state machines or the state flags for other tasks
- Support following continuation chains, rendered as "async stacks"
- Support resolving delegate names so that Task.Run and related items have the associated method name displayed
- Optional (experimental) DGML rendering of the graph
- Optionally include completed tasks, by default filtering them out
- Optionally display the fields of state machines
* Decode task state flags
* Add addr option and associated DumpAsync DML
* Fix cast warnings in checked / fprintf_s on Unix
* Remove DGML from DumpAsync
Not enough value right now, and complications in compilation on Unix given sos's current set up. Not worth it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8afc12db660da9d2218770a8309cd4ef0ccd4c3e
Stephen Toub [Wed, 7 Nov 2018 18:55:22 +0000 (13:55 -0500)]
Delete dead code from IdnMapping (dotnet/coreclr#20857)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c07d491548a04456ff69b182579ae83244890af4
Carol Eidt [Wed, 7 Nov 2018 15:06:40 +0000 (07:06 -0800)]
Merge pull request dotnet/coreclr#20787 from CarolEidt/Arm64IntrinsicsWindows
Add Windows support for Arm64 HW Intrinsics
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8ba00e0446e2a8b2f0e969aea249bf886e8ff5e
Bruce Forstall [Wed, 7 Nov 2018 06:35:12 +0000 (22:35 -0800)]
Force using clang5.0 for Ubuntu arm32 builds (dotnet/coreclr#20825)
* Force using clang5.0 for Ubuntu arm32 builds
* Update for code review feedback
to https://github.com/dotnet/corefx/pull/33261
Commit migrated from https://github.com/dotnet/coreclr/commit/
b107aaaa591c645978f17c20f547ccd902d4cf71
Tomas Weinfurt [Wed, 7 Nov 2018 03:48:02 +0000 (19:48 -0800)]
exclude freebsd symbols from publishing (dotnet/coreclr#20854)
* try to use exclude on same line as Include instead of remove in separate step
* update freebsd exclude pattern
Commit migrated from https://github.com/dotnet/coreclr/commit/
631407852a6332a659a6a57ede670d3e94c81efb
Andrew Au [Mon, 5 Nov 2018 19:34:49 +0000 (11:34 -0800)]
Pull out GetContainingObject
Commit migrated from https://github.com/dotnet/coreclr/commit/
53e0cce55692cd568a1dce218a2089146aa8e4f8
Andrew Au [Thu, 1 Nov 2018 23:59:55 +0000 (16:59 -0700)]
NITs
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b58f84275cc05ff3fbf003a70a5034fa5ecdf77
Andrew Au [Thu, 1 Nov 2018 19:01:54 +0000 (12:01 -0700)]
Comments in JIT helper
Commit migrated from https://github.com/dotnet/coreclr/commit/
57c2f001e9853090113b6437eb77d13ee16dcb7e
Andrew Au [Tue, 30 Oct 2018 17:50:47 +0000 (10:50 -0700)]
More code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8550e4724956c6a100fe2dbd29def59a3730a85
Andrew Au [Tue, 30 Oct 2018 01:31:45 +0000 (18:31 -0700)]
GetContainingObject should be a method of ICorDebugValue
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce5b9add89809c5d2235a54ceeb62d9c59c25fed
Andrew Au [Thu, 25 Oct 2018 02:22:44 +0000 (19:22 -0700)]
Change GetContainingObject API
Commit migrated from https://github.com/dotnet/coreclr/commit/
7cf7f086e17b7052eb1c34ce3b0000f900ac2ff0
Andrew Au [Tue, 23 Oct 2018 23:49:52 +0000 (16:49 -0700)]
FEATURE_DATABREAKPOINT
Commit migrated from https://github.com/dotnet/coreclr/commit/
d742a2f03ab849a2d6a101320d3f1107a8f82c13
Andrew Au [Thu, 18 Oct 2018 01:01:55 +0000 (18:01 -0700)]
Code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
24acddae18dedf44730f0db00a2d25dc6568eff0
Andrew Au [Mon, 15 Oct 2018 18:45:01 +0000 (11:45 -0700)]
Comment on jithelp.asm
Commit migrated from https://github.com/dotnet/coreclr/commit/
908245c286c5db92ba2de2113ad11788b066754f
Chuck Ries [Fri, 12 Oct 2018 23:28:36 +0000 (16:28 -0700)]
Ensure BeforeGC and AfterGC events are always sent in pairs
This latches the m_isGarbageCollectionEventsEnabled in BeforeGarbageCollection
to ensure that if we send a BeforeGC event we will send the corresponding
AfterGC event. It also ensure we will not send an AfterGC event if we did not
send the corresponding BeforeGC event.
Commit migrated from https://github.com/dotnet/coreclr/commit/
72eb917675fb960c9a6fb8678fdabb686d2be75b
Andrew Au [Sat, 13 Oct 2018 01:34:12 +0000 (18:34 -0700)]
Stepping out of the write barrier
Commit migrated from https://github.com/dotnet/coreclr/commit/
a08e10aa1472c4e75edab7f4fd51a0a423ec4a8c
Andrew Au [Thu, 11 Oct 2018 20:53:55 +0000 (13:53 -0700)]
Complete the work for AMD64 unwind out of write barrier work
Commit migrated from https://github.com/dotnet/coreclr/commit/
7fce1abec7f6b58f301840e0a9690e06cb70a039
Andrew Au [Wed, 10 Oct 2018 22:29:48 +0000 (15:29 -0700)]
Bringing up the AMD64 support for unwinding away from JIT WriteBarrier
Commit migrated from https://github.com/dotnet/coreclr/commit/
253a48b79c0309b54796382d23b50370a46c63c9
Andrew Au [Wed, 10 Oct 2018 17:16:29 +0000 (10:16 -0700)]
Make the write barrier unwinding fix works for coreclr release build
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6ab42f2d7183b2839e00917ca42227de281a9b2
Andrew Au [Wed, 10 Oct 2018 00:32:33 +0000 (17:32 -0700)]
x86 only stackwalk fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
b70d04f9112548b1718e1768cf0cb35943724946
Andrew Au [Thu, 20 Sep 2018 23:44:39 +0000 (16:44 -0700)]
Allocating the DebuggerDataBreakpoint object in the right heap
Commit migrated from https://github.com/dotnet/coreclr/commit/
2db5af268afc606a5ce4675899af5808c6b8a459
Andrew Au [Tue, 28 Aug 2018 03:48:54 +0000 (20:48 -0700)]
Avoid unused event types
Commit migrated from https://github.com/dotnet/coreclr/commit/
7b87997d398d0ece02f2f49e573280e5860a068a
Andrew Au [Tue, 28 Aug 2018 00:58:30 +0000 (17:58 -0700)]
Avoiding triggering data breakpoint in Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a479cf1cd6c1a67ad6d19360b700ff198f18071
Andrew Au [Tue, 28 Aug 2018 00:40:13 +0000 (17:40 -0700)]
Linux fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e324dad533a8cfe774d39c2bed2ebdc616547ac
Andrew Au [Mon, 13 Aug 2018 21:53:10 +0000 (14:53 -0700)]
Fix ARM compilation issue
Commit migrated from https://github.com/dotnet/coreclr/commit/
7e94efe87f48b990e77e87f6f643cdf1ab51f951
Andrew Au [Mon, 13 Aug 2018 18:14:18 +0000 (11:14 -0700)]
More code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
d5bb5d5b48feba48dbfe561c093a2b38e6f0e99d
Andrew Au [Sat, 11 Aug 2018 00:10:02 +0000 (17:10 -0700)]
Code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
a37aa3ac04cfbb6da2d39872cb0b546c10915cad
Andrew Au [Fri, 10 Aug 2018 22:39:51 +0000 (15:39 -0700)]
More comments about Debugger::SuspendComplete
Commit migrated from https://github.com/dotnet/coreclr/commit/
ec6d8cd42e9c1e326035ea9cabda0609d9b8f186
Andrew Au [Fri, 10 Aug 2018 22:17:01 +0000 (15:17 -0700)]
Use proper macros for GetContainingObject()
Commit migrated from https://github.com/dotnet/coreclr/commit/
31e996f77aad66847eaeb97e3e163ae0e14c4ae3
Andrew Au [Fri, 10 Aug 2018 22:16:48 +0000 (15:16 -0700)]
Adding comments for thread execution mode in DebuggerRCThread::SendIPCEvent
Commit migrated from https://github.com/dotnet/coreclr/commit/
1992834d8b4d80ab4227d0e6a7c0f9b6939d890b
Andrew Au [Fri, 10 Aug 2018 17:44:36 +0000 (10:44 -0700)]
More API comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
2015a6266ee239267997017bebaadb025ccd223b
Andrew Au [Fri, 10 Aug 2018 17:27:24 +0000 (10:27 -0700)]
Fix a couple bugs in GetContainingObject
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c2a1f099cf2150f5b3597bd3d40e1061ef13aa7