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
Andrew Au [Thu, 9 Aug 2018 18:15:18 +0000 (11:15 -0700)]
Rename lite to isEESuspendedForGC
Commit migrated from https://github.com/dotnet/coreclr/commit/
0e3a4d9c419b41ddbbccc22b5d668442f2cbfd76
Andrew Au [Thu, 9 Aug 2018 17:27:23 +0000 (10:27 -0700)]
ICorDebug API documentation
Commit migrated from https://github.com/dotnet/coreclr/commit/
e66652e308426cc823b24e8f28dc6f775d49544a
Andrew Au [Tue, 7 Aug 2018 23:55:21 +0000 (16:55 -0700)]
Turn GarbageCollection events off by default and allow VS turning them on
Commit migrated from https://github.com/dotnet/coreclr/commit/
4143a9c607a387d16ffa724e37596501bb7e22f2
Andrew Au [Mon, 6 Aug 2018 22:04:37 +0000 (15:04 -0700)]
Fixing the deadlocks
Commit migrated from https://github.com/dotnet/coreclr/commit/
e467645dbefa58e144a42c3b742cee859b68d55d
Andrew Wang [Thu, 2 Aug 2018 01:53:21 +0000 (18:53 -0700)]
Fix collision with ICorDebugProcess9 to 10
Commit migrated from https://github.com/dotnet/coreclr/commit/
44f9453071131406569ea6167baf494b2ab11926
Andrew Au [Thu, 19 Jul 2018 20:00:49 +0000 (13:00 -0700)]
Fix a bug where a data breakpoint is accidentially deleted when the context is restored on FuncEval completion
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4d8496b0679f09791c4bfd889b215abef542b59
Andrew Au [Fri, 13 Jul 2018 18:12:24 +0000 (11:12 -0700)]
Using Debugger::SuspendComplete()
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9b02a4cc6cc96f6f99169ead5762b5aa2733181
Andrew Au [Wed, 11 Jul 2018 20:41:07 +0000 (13:41 -0700)]
Return better HR for failing to get managed thread context
Commit migrated from https://github.com/dotnet/coreclr/commit/
b8e2abe84f9c4d67ff4aa1e53b3ed775c2750c42
Andrew Au [Wed, 11 Jul 2018 00:20:42 +0000 (17:20 -0700)]
Do not handle the thread context for garbage collection events
Commit migrated from https://github.com/dotnet/coreclr/commit/
a89cd9e6654d21fc0f2a03eeaff71bcc84f69a1f
Andrew Au [Sat, 7 Jul 2018 16:33:14 +0000 (09:33 -0700)]
Simple fixes
Commit migrated from https://github.com/dotnet/coreclr/commit/
eba995ab407dea951c933e8804b4982215575c1b
Andrew Au [Fri, 29 Jun 2018 22:54:12 +0000 (15:54 -0700)]
Eliminate dataBreakpointMask from ICorDebug
Commit migrated from https://github.com/dotnet/coreclr/commit/
8fc1cb2b537845ce9f59e7cd422ba01bc2d3011c
Andrew Au [Wed, 27 Jun 2018 20:23:17 +0000 (13:23 -0700)]
Fixing linux build
Commit migrated from https://github.com/dotnet/coreclr/commit/
20b1e6c0ec19c90f67fb08e1f655e58871302a2d
Andrew Au [Wed, 27 Jun 2018 18:15:04 +0000 (11:15 -0700)]
Get/Set the ThreadContext natively if the debuggee is block on garbage collection events
Commit migrated from https://github.com/dotnet/coreclr/commit/
59acd546c2d326e8a4ec11f078a1f0edde4dabaa
Andrew Au [Tue, 26 Jun 2018 17:31:07 +0000 (10:31 -0700)]
Hacking CordbProcess::GetThreadContext / SetThreadContext to retrieve/modify managed ThreadContext
Commit migrated from https://github.com/dotnet/coreclr/commit/
f72bba95b01c790f92641b9d7d96bf23a014dd3e
Andrew Au [Thu, 21 Jun 2018 17:52:13 +0000 (10:52 -0700)]
Clear Canary cache unconditionally
Commit migrated from https://github.com/dotnet/coreclr/commit/
68b91a76475519cfc48b60c41ce28e5c737188d4
Andrew Au [Thu, 21 Jun 2018 17:45:31 +0000 (10:45 -0700)]
Fix linux build
Commit migrated from https://github.com/dotnet/coreclr/commit/
c799c456e48014896fa2cf04560e59e2f15348fc
Andrew Au [Wed, 20 Jun 2018 00:06:31 +0000 (17:06 -0700)]
This should fix the non-deterministic failures
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9ce722ab28b5a03e87072f914a1a91522abafbd
Andrew Au [Fri, 15 Jun 2018 23:18:48 +0000 (16:18 -0700)]
Properly fix the DB_IPCE_ASYNC_BREAK case
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a7ab918952d0cb06ef57e2cf5c255f237e49822
Andrew Au [Thu, 24 May 2018 22:52:32 +0000 (15:52 -0700)]
Removing unnecessary hacks
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a9384827f7e1059bec5e246425e46cc7f3fc140
Maoni0 [Wed, 23 May 2018 20:52:08 +0000 (13:52 -0700)]
find_object
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d6583e38f4e9b00ec21666225760a0df97afaec
Andrew Au [Thu, 24 May 2018 18:43:54 +0000 (11:43 -0700)]
Completed the lock reversal work
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d9206829c5ae9f2efcf70c5ee19977f0130bae8
Andrew Au [Tue, 22 May 2018 23:00:11 +0000 (16:00 -0700)]
Making sure issues are tracked by TODOs
Commit migrated from https://github.com/dotnet/coreclr/commit/
a00a15f6ab923ef9bfee8334f241f8163359316b
Andrew Au [Tue, 22 May 2018 22:08:25 +0000 (15:08 -0700)]
Firing the GC events within the thread suspension
Commit migrated from https://github.com/dotnet/coreclr/commit/
c5a69820e866fff47c9f415d872112c58f17a717
Andrew Au [Thu, 17 May 2018 22:20:15 +0000 (15:20 -0700)]
ContainerObject -> ContainingObject
Commit migrated from https://github.com/dotnet/coreclr/commit/
5fd5ef364611d5b608913d26f6ea003a59239594
Tom McDonald [Thu, 17 May 2018 02:20:06 +0000 (19:20 -0700)]
Pass databreakpoint mask into debugger
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e9171f9c0f718464e3a62614377100f3abae1c8
Tom McDonald [Wed, 16 May 2018 18:31:34 +0000 (11:31 -0700)]
Implement ICorDebugManagedCallback4::DataBreakpoint
Commit migrated from https://github.com/dotnet/coreclr/commit/
6fff658c9cd28e4c8c893596a34a1910099c4d70
Andrew Au [Wed, 16 May 2018 00:42:29 +0000 (17:42 -0700)]
Saving progress
Commit migrated from https://github.com/dotnet/coreclr/commit/
c1d7954ec6098e6f0acfde474522483a6767d1d2
Andrew Au [Tue, 15 May 2018 20:54:46 +0000 (13:54 -0700)]
ICorDebugValue -> ICorDebugObjectValue on GetContainerObject()
Commit migrated from https://github.com/dotnet/coreclr/commit/
731dd75e3dfe7f2ef6f857121c0eb2e460d38bce
Andrew Au [Mon, 14 May 2018 22:52:55 +0000 (15:52 -0700)]
A dummy implementation of the GetContainerObject API
Commit migrated from https://github.com/dotnet/coreclr/commit/
4d3bde0a60d1344590ca1643f8b9c2d9e758ae4e
Andrew Au [Mon, 14 May 2018 17:18:38 +0000 (10:18 -0700)]
Boilerplate for adding new DBI method
Commit migrated from https://github.com/dotnet/coreclr/commit/
c7d6bd7cffe9f1afe9e0aebd3206aedf904d66aa
Andrew Au [Thu, 10 May 2018 23:43:54 +0000 (16:43 -0700)]
Passing ICorDebugProcess instead of ICorDebugController
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b9a73155033098133df0605d6e3352cd672b3ef
Andrew Au [Thu, 10 May 2018 21:49:39 +0000 (14:49 -0700)]
The GC events are now working, somewhat ...
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6d26187c8ce8fc68829f262a79996f00b1e1a85
Andrew Au [Thu, 10 May 2018 16:39:33 +0000 (09:39 -0700)]
Make sure we block after sending the events
Commit migrated from https://github.com/dotnet/coreclr/commit/
e5744ae2855ee74f8f2f8020c0ef2d54bbfb746d
Andrew Au [Wed, 9 May 2018 16:40:47 +0000 (09:40 -0700)]
Saving progress - works towards gc events
Commit migrated from https://github.com/dotnet/coreclr/commit/
1df9f792fa4a421014354063f8a63eca925c20e7
Andrew Au [Fri, 4 May 2018 20:33:12 +0000 (13:33 -0700)]
Add x86 data breakpoint support
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a67567b0e75d396e3e088494465c6b1276b0c35
Cagri (Charlie) Aslan [Wed, 28 Mar 2018 02:39:16 +0000 (19:39 -0700)]
Initial data breakpoint changes
temporary changes towards multiple data breakpoints
add multiple hardware bp support
Remove Complus.log
revert log.cpp changes
Commit migrated from https://github.com/dotnet/coreclr/commit/
16d68bbd1fabde0af03e5086f50d2b5330afcb96
Jeremy Koritzinsky [Wed, 7 Nov 2018 00:26:40 +0000 (16:26 -0800)]
Disable running ILAsm round-trip build on COM Tests (dotnet/coreclr#20822)
* Disable running ILAsm round-trip build on COM (requires ilasm resource embedding support).
* ILAsmTestKind -> IlrtTestKind
Commit migrated from https://github.com/dotnet/coreclr/commit/
e965b1e9a6f23eafd11742cd4344eb8c1f1228cb
Tomas Weinfurt [Tue, 6 Nov 2018 23:10:18 +0000 (15:10 -0800)]
try to use exclude on same line as Include instead of remove in separate step (dotnet/coreclr#20846)
Commit migrated from https://github.com/dotnet/coreclr/commit/
73f6ece97f1ede995c0e846bd7349db2c067b543
Jack Pappas [Tue, 6 Nov 2018 23:07:47 +0000 (18:07 -0500)]
Loop-free GC rounding helpers with _BitScanReverse. (dotnet/coreclr#20157)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2bf55bc5ca8b09dd26e32a9ee259ab22fb69806b
Jeremy Koritzinsky [Tue, 6 Nov 2018 21:33:29 +0000 (13:33 -0800)]
Remove /RESOURCE flag documentation on ilasm. (dotnet/coreclr#20818)
* Remove /RESOURCE flag on ilasm.
* Revert "Remove /RESOURCE flag on ilasm."
This reverts commit dotnet/coreclr@
7d1a9ac959a94359d2f1ef5f70ec7041804ec6f4.
* Update documentation in ilasm switches.
* Update documentation to say that the obj file has to come from a .res file.
* Remove documentation of the /RESOURCE switch. Leave the switch code-path in place for corefx.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8826f6f8c07c325046b78f28c57b24b201e487d2
Levi Broderick [Tue, 6 Nov 2018 19:02:16 +0000 (11:02 -0800)]
Improve performance of Memory<T>.Span property getter (dotnet/coreclr#20386)
- We can use our knowledge of object representation in the runtime to speed up type checks.
- We leave the ref T and the length deconstructed until the very end, optimizing register usage.
- The Length property getter is once again just a simple field accessor with no bitwise logic.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef93a727984dbc5b8925a0c2d723be6580d20460
Bruce Forstall [Tue, 6 Nov 2018 18:52:40 +0000 (10:52 -0800)]
Merge pull request dotnet/coreclr#20633 from BruceForstall/FixSPCheck
Fix SP check for x64/x86, remove for arm32/arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
0dc37d16d734484b75e47cb243e347f5959a29bf
Mike McLaughlin [Tue, 6 Nov 2018 18:42:53 +0000 (10:42 -0800)]
Enable SyncBlk for xplat SOS (dotnet/coreclr#20830)
Add SyncBlk to xplat SOS.
Commit migrated from https://github.com/dotnet/coreclr/commit/
28b4285b4d71a9aa9b9deb40a17ee356e5ef440f
Sergey Andreenko [Tue, 6 Nov 2018 18:24:37 +0000 (10:24 -0800)]
fix corefx folder (dotnet/coreclr#20828)
Commit migrated from https://github.com/dotnet/coreclr/commit/
39d673dc3a6840c8d76a2baa86e9dcca4b1f784c
Bruce Forstall [Tue, 6 Nov 2018 17:52:29 +0000 (09:52 -0800)]
Merge pull request dotnet/coreclr#20834 from BruceForstall/FixArmElJob
Fix corefx folder for Tizen job
Commit migrated from https://github.com/dotnet/coreclr/commit/
39dc64dfb50e374162aa263514f9ad1a46061f0d
Bruce Forstall [Tue, 6 Nov 2018 17:28:45 +0000 (09:28 -0800)]
Fix corefx folder for Tizen job
https://ci.dot.net/job/dotnet_coreclr/job/master/job/armel_cross_checked_tizen_innerloop_prtest/
Commit migrated from https://github.com/dotnet/coreclr/commit/
05126bb441726cda23c0282e81068cd2a211f092
Oded Hanson [Tue, 6 Nov 2018 16:31:49 +0000 (18:31 +0200)]
Added support for running in a sandbox on Mac (dotnet/coreclr#20735)
* Added support for running in a sandbox on Mac
When running in a sandbox, the Mac operating system will limit access to resources, esp. the file system. Right now both Mutex and SharedMemory in the PAL are accessing the /tmp folder for which Mac does not provide the application permissions to access.
Instead, the sandbox provides the ability to share information between applications by using a shared container folder. This is done by registering the application with an Application Group ID. Using this ID, we can access the shared folder and read/write from it.
Since the .Net runtime can be loaded in multiple ways, we decided that the easiest way to let the runtime know what the application group ID is via an environment variable. Thus, if the NETCOREAPP_SANDBOX_APPLICATION_GROUP_ID environment variable is set (on Mac), the runtime will assume we are sandboxed, and will use the value provided as the application group ID. Note that due to limitations on semaphore file lengths, we will not allow application group IDs longer than 13 characters. This gives us 10 characters for the developer ID, and 3 extra characters for the group name.
When sandbox is disabled (the environment variable is empty) then the folder for Mutex and SharedMemory will continue to be rooted in /tmp. However when the sandbox is enabled, these files will be created under /user/{loginname}/Library/Group Containers/{AppGroupId}/.
Fixes dotnet/coreclr#20473
* Made gApplicationContainerPath a pointer so it does not get automatically deleted by the c runtime
* Made s_runtimeTempDirectoryPath and s_sharedMemoryDirectoryPath pointers so they are not automatically deleted by the c runtime
* Renamed gApplicationContainerPath to gSharedFilesPath
* Renamed NETCOREAPP_SANDBOX_APPLICATION_GROUP_ID to DOTNET_SANDBOX_APPLICATION_GROUP_ID
* Fixed usage of VerifyStringOperation
* Replaced new with InternalNew
* Wrapped Apple specific code with #ifdef
* Added exception handling during close
* Moved VerifyStringOperation macro into SharedMemoryManager
* Moved PathCharString variable declarations before AutoCleanup is declared.
* Fixed initialization functions not to throw
* Renamed CopyPath to BuildSharedFilesPath
* Fixed misc nits
* Fixed implicit conversions from BOOL to bool
* Moved MAX_APPLICATION_GROUP_ID_LENGTH inside ifdef APPLE
* Removed PAL_IsApplicationSandboxed
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c566d470db2f1be687e6da5f9935960d482bf72
Bruce Forstall [Tue, 6 Nov 2018 02:41:16 +0000 (18:41 -0800)]
Fix calling convention for 3 p/invoke test cases
Commit migrated from https://github.com/dotnet/coreclr/commit/
e250e6206fb7d20e436cb4d4ef0dd30da037e939
Bruce Forstall [Fri, 26 Oct 2018 07:06:38 +0000 (00:06 -0700)]
Fix SP check for x64/x86, remove for arm32/arm64
The actual checking had gotten lost between JIT32 and RyuJIT.
I fixed the "on return from function" case for x86/x64, and
the "around every call site" case for x86.
I removed the arm64 case because it's not easy to store SP to a
stack local or directly compare SP against a stack local without
a temporary. Also, for the fixed outgoing arg space ABIs (all but x86),
these checks don't seem too useful anyway, so I also removed the
arm case.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8cbbce04c80f03f90370231847865f620150f628
Mike McLaughlin [Tue, 6 Nov 2018 00:43:03 +0000 (16:43 -0800)]
Exclude FreeBSD symbol packages from symbol uploader (Part 3) (dotnet/coreclr#20824)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b1b424f741af16a5df052ef11609c65d99686435
Levi Broderick [Tue, 6 Nov 2018 00:06:32 +0000 (16:06 -0800)]
Add support for BSWAP intrinsic (dotnet/coreclr#18398)
With this change, the JIT will recognize a call to BinaryPrimitives.ReverseEndianness and will emit a bswap instruction.
This logic is currently only hooked up for x86 and x64; ARM still uses fallback logic.
If the JIT can't emit a bswap instruction (for example, trying to emit a 64-bit bswap in a 32-bit process), it will fall back to a software implementation, so the APIs will work across all architectures.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f72025c8b6d8a4fc3b4e22e2a3b6e1afeaef15ff
Tanner Gooding [Mon, 5 Nov 2018 23:37:36 +0000 (15:37 -0800)]
Adding some new functions to System.Math and System.MathF (dotnet/coreclr#20788)
* Adding BitIncrement, BitDecrement, CopySign, MaxMagnitude, and MinMagnitude to Math and MathF
* Adding FusedMultiplyAdd, IlogB, Log2, and ScaleB to Math and MathF
* Adding some basic PAL tests for fma, ilogb, log2, and scalbn
* Fixing a couple typos and adding clarifying comments
* Fixing the MSVC _VVV FCALL declarations
Commit migrated from https://github.com/dotnet/coreclr/commit/
28417584d8e98ae7eac22e92b952778f8ea94047
Tanner Gooding [Mon, 5 Nov 2018 23:37:14 +0000 (15:37 -0800)]
Updating the importer to throw a NotImplementedException if it finds a mustExpand intrinsic that it can't expand (dotnet/coreclr#20792)
* Updating the importer to throw a NotImplementedException if it finds a mustExpand hwintrinsic that it can't expand
* Updating the JITEEVersionIdentifier
Commit migrated from https://github.com/dotnet/coreclr/commit/
d3a7c973723bf2610c7dcdcd00318c06a72a36f8
Krzysztof Wicher [Mon, 5 Nov 2018 18:48:53 +0000 (10:48 -0800)]
Improve/fix SerialStream.Dispose (dotnet/corefxdotnet/coreclr#33221)
* Improve/fix SerialStream.Dispose
* Review feedback
* remove unused using statement
* Use ToFileDescriptor
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0eb2dbbc3cd45b2a118aa44ac05bac9b8ca1eec4
Brian Sullivan [Mon, 5 Nov 2018 23:13:05 +0000 (15:13 -0800)]
Merge pull request dotnet/coreclr#20736 from briansull/issue_18672
Fix ValueNumber constant propagation with nested structs
Commit migrated from https://github.com/dotnet/coreclr/commit/
139a9795911b059bd242ca6fbf7cd84bebe26a5b
Tobias Loew [Mon, 5 Nov 2018 19:28:01 +0000 (20:28 +0100)]
Fiber-friendly Vectored Exception Handling (dotnet/coreclr#20746)
* Fiber-friendly Vectored Exception Handling
Check during exception handling if the cached and the current stack-base match to detect Fibers.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f5aabc89487eeb2b1621cfb3b9ed8f5db243d9e
Brian Sullivan [Thu, 1 Nov 2018 00:11:38 +0000 (17:11 -0700)]
Fix constant propagation with nested structs
Fixes dotnet/coreclr#18672
Test case is here: JIT/Regression/JitBlue/GitHub_18672/GitHub_18672.cs
Commit migrated from https://github.com/dotnet/coreclr/commit/
adbc0f5f613eb72131d3224c24ef79ca589b1d06
Matt Galbraith [Mon, 5 Nov 2018 18:03:38 +0000 (10:03 -0800)]
Bump FreeBSD AzDO build timeout to 90 minutes
Commit migrated from https://github.com/dotnet/coreclr/commit/
2c2cab344c4909da0bd0ebcd6a80c6c16c2598dc
Sergey Andreenko [Mon, 5 Nov 2018 17:03:43 +0000 (09:03 -0800)]
Fix perf regression in (dotnet/coreclr#20762)
* Fix comments.
We count implict byref argument occurrences for all lclVars not only for promoted.
* Fix the regression.
Return the old behaiour where both parent and promoted lclVar have updated ref counters.
* rename `UpdateImplicitByRefCounter` to `UpdateEarlyRefCountForImplicitByRef`
* Fix comment.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ce06bbbc113ed67970d3af33a5f7292e5180ff5
Pent Ploompuu [Sun, 4 Nov 2018 20:42:11 +0000 (22:42 +0200)]
System.Decimal code style and comments clean-up (dotnet/coreclr#20793)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8780dc610b07d2e2921814e27351c8589b158ba9
Nick Craver [Sun, 4 Nov 2018 07:11:47 +0000 (02:11 -0500)]
Optimization: Reduce many array allocations in GetCustomAtttributes()'s inherited path (dotnet/coreclr#20779)
* Optimization: avoid 2 array allocations in inherited attribute misses
This is a follow-up to many allocations recognized in dotnet/coreclr#20448.
A lot of methods ultimately call through CustomAttributes.GetCustomAttributes(). In the inherited search path (default for most searches above), the inheritance path of a class is traversed, resulting in an array allocation per crawled type, a copy to the overall List<object> and then after that - in current code - an array allocation from that list and a typed array allocation it's copied to.
However, in the common miss case as simple as:
typeof(T).GetCustomAttributes(typeof(TAttr), true);
...and many other overloads, all the same path underneath...
We can avoid the last 2 arrays in the miss case. We have the List<object> to go off of. If that's a zero-entry list, we can return an Array.Empty<TAttr>(). That's effectively what this change does.
While converting the entire attribute pipeline to generics is problematic and has issue since some object[] return abstracts aren't sealed, we can at least somewhat trivially cache an array per attribute type (only one static, ultimately from Array.Empty<T> underneath) and return that for the miss case.
There are far more wins to be had here, but they require more changes.
* Move RuntimeType empty array cache generation to Attribute.CreateAttributeArrayHelper
This exposes Attribute.CreateAttributeArrayHelper to internal and uses it directly on the RuntimeType caching for empty arrays. Though this allocated 1 additional array overall, it's simpler, faster to init, and still is an infinite win over the per-call allocations before this overall changesets.
* CustomAttributes: remove needless array copy in the inherited hit case
This removes a .ToArray() for the sake of Array.Copy() where a simple for loop suffices and removes the allocation. Reversing the "empty" result checks is also just a bit cleaner here.
This also expands the same fix to the MemberInfo path.
Note: should DRY these up too (longstanding issue) - but let's do that in a separate commit for clarity.
* GetCusomAttributes: use ListBuilder<object> for inheritance crawls
This exposes RuntimeType.ListBuilder<T> for internal usage and replaces the List<T> allocation in GetCustomAttributes() paths to reduce allocations and increase performance in the inherited crawl paths (which is the default for many optional-parameter methods in layers above).
Note: there is a subtle behavior depending on previous-null (not possible with a struct now) in AttributeUsageCheck() that I believe still behaves correctly, but could use another set of eyes and a full test suite run to confirm. object[] attributes was removed there simply because it wasn't used before - only cleaning up.
* Attribute caching: use Array.CreateInstance() directly on RuntimeType
This also reverts the CreateAttributeArrayHelper => internal change, since it's no longer needed.
* Ref passing for RuntimeType.ListBuilder<object> & CustomAttribute simplification
This fixes the struct passing duplication and tweaks how we're creating arrays a bit, centralizing the zero-element checks to cover all cases as well as simplify the per-method code to rely on the fact this is happening underneath.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6d9fc60df3b721eab98ca08386a1f01358f93839
Jan Kotas [Sat, 3 Nov 2018 23:14:10 +0000 (16:14 -0700)]
Improve error messages for byref-like type loading errors (dotnet/coreclr#20789)
Related to dotnet/corefxdotnet/coreclr#33233
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2d56a9b2b5737ab04d322f03404b9faef9e5293
Bruce Forstall [Sat, 3 Nov 2018 22:23:17 +0000 (15:23 -0700)]
Merge pull request dotnet/coreclr#20780 from dotnet/dev/unix_test_workflow
PMI asm diffs changes
Commit migrated from https://github.com/dotnet/coreclr/commit/
1e68cab53a2855d7733ca230efad1be99bd471e2