Santiago Fernandez Madero [Tue, 4 Jun 2019 21:09:50 +0000 (14:09 -0700)]
PR Feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
30402ab51681ee7d256a69acff6c0529d7eb4c6c
Santiago Fernandez Madero [Tue, 4 Jun 2019 06:37:44 +0000 (23:37 -0700)]
PR Feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
9d98b4875ae456d3f58cae75c009afabf19d0d15
Santiago Fernandez Madero [Tue, 4 Jun 2019 00:17:26 +0000 (17:17 -0700)]
Fix some nullable annotations from API Review
Commit migrated from https://github.com/dotnet/coreclr/commit/
4adb4abf3dbeff4fb3070315368f49d66c732862
Maoni Stephens [Tue, 4 Jun 2019 04:28:01 +0000 (21:28 -0700)]
fix doc for stress run instructions (dotnet/coreclr#24941)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1ab8b90ca9f8748776b00cc21cd5740b53dec67b
Stephen Toub [Tue, 4 Jun 2019 03:56:17 +0000 (23:56 -0400)]
Specify TaskScheduler.Default in EventPipeEventDispatcher (dotnet/coreclr#24930)
Just in case there's a non-default TaskScheduler in play, explicitly specify TaskScheduler.Default so that we don't accidentally schedule this task to another scheduler, in which case it's up to that scheduler if and how to respect the LongRunning request.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4bbbd6ea114eda756fe7f99e29ca8d908160521
Vladimir Sadov [Tue, 4 Jun 2019 03:55:42 +0000 (20:55 -0700)]
Added scenario to test that CallGetTotalAllocatedBytes is monotonic in imprecise mode. (dotnet/coreclr#24935)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9d4beb59887e94d3b6368cdc23e65c24fa0838fa
Andrew Au [Sat, 1 Jun 2019 06:58:38 +0000 (23:58 -0700)]
Avoid moving the bitOffset twice when enumerating safepoints
Commit migrated from https://github.com/dotnet/coreclr/commit/
a053e826dcb1ce3f58f7b368638b0ef03cf9f270
Jan Kotas [Tue, 4 Jun 2019 02:38:02 +0000 (19:38 -0700)]
Fix signature mismatch between managed and unmanaged GetCodeInfo signatures (dotnet/coreclr#24932)
Fixes dotnet/coreclr#24925
Commit migrated from https://github.com/dotnet/coreclr/commit/
f49eb0db686c4d647dd9e27b44946c5505bb72f4
Koundinya Veluri [Tue, 4 Jun 2019 02:07:06 +0000 (19:07 -0700)]
Remove some event trace asserts that can fail if tracing is stopped at a particular point (dotnet/coreclr#24897)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ebf3370498ddee49d921227c038418ae84dc351e
Stephen Toub [Tue, 4 Jun 2019 01:00:04 +0000 (21:00 -0400)]
Remove unnecessary Shared<T> class from Task (dotnet/coreclr#24931)
It's just StrongBox<T>.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4638845251f0ea0a6d222b645e2d04a406dc4ab6
Stephen Toub [Mon, 3 Jun 2019 20:26:24 +0000 (16:26 -0400)]
Adjust several `where T : class?` constraints (dotnet/coreclr#24894)
* Adjust several `where T : class?` constraints
* Address PR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
70850eae561ad9dd887ce6f9cb3f2bac251de0b5
Tanner Gooding [Mon, 3 Jun 2019 19:15:32 +0000 (12:15 -0700)]
Removing the TestAllOnes, TestAllZeros, and TestMixOnesZeros methods from the Sse41 class (dotnet/coreclr#24886)
* Removing the TestAllOnes, TestAllZeros, and TestMixOnesZeros methods from the Sse41 class
* Removing JIT support for the SSE41_TestAllOnes, SSE41_TestAllZeros, and SSE41_TestMixOnesZeros intrinsics
* Removing tests for the Sse41.TestAllOnes, Sse41.TestAllZeros, and Sse41.TestMixOnesZeros methods
Commit migrated from https://github.com/dotnet/coreclr/commit/
7fa9581750aca0d959c334a9767e306251611d82
John Salem [Mon, 3 Jun 2019 17:16:38 +0000 (10:16 -0700)]
Fix initialize methods to set m_Header correctly (dotnet/coreclr#24892)
* put check in to ensure incoming message header has reasonable size
Commit migrated from https://github.com/dotnet/coreclr/commit/
6631a7a0f9b6268f5e6c0f609a2d0d2a730a2118
Gleb Balykov [Mon, 3 Jun 2019 16:29:39 +0000 (19:29 +0300)]
Fix armel tests build (dotnet/coreclr#24678)
* Fix build-tests script for cross build and fix tests for armel
* Handle case of -skipcrossgen for cross builds
* Fix build error in case of cross builds when ROOTFS_DIR is not passed explicitly
* Fix portable build parameter setup for armel tests build
* Move force of non-portable build for armel from build.sh/build-test.sh to init-distro-rid.sh
* Fix priority1 tests build for armel
Commit migrated from https://github.com/dotnet/coreclr/commit/
2e28c8114d58870ebc1ae8aac51b4539d2314452
Juan Hoyos [Fri, 31 May 2019 19:40:44 +0000 (12:40 -0700)]
Reenable tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
faf97a0305fda484180877a256478012b1dda269
Juan Hoyos [Fri, 31 May 2019 19:33:04 +0000 (12:33 -0700)]
Fix logic for deletion
Commit migrated from https://github.com/dotnet/coreclr/commit/
0faf9d6188fb18c08d864dc2f5c480c0d60f4b7a
Juan Hoyos [Fri, 31 May 2019 17:44:00 +0000 (10:44 -0700)]
Disable event pipe tests for investigation
Commit migrated from https://github.com/dotnet/coreclr/commit/
befcd2ec983fcbdcf5df2f418749876b098cef07
Juan Sebastian Hoyos Ayala [Thu, 30 May 2019 18:16:00 +0000 (18:16 +0000)]
Reenable tests turned off in dotnet/coreclr#24772
Commit migrated from https://github.com/dotnet/coreclr/commit/
bfe34f5b7820452d00b1ec30d803a280decd5cb3
Juan Sebastian Hoyos Ayala [Thu, 30 May 2019 18:12:41 +0000 (18:12 +0000)]
Fix event pipe session provider list clear
Commit migrated from https://github.com/dotnet/coreclr/commit/
b71003fecff4821800cda022ef0d93f15db67329
Carol Eidt [Mon, 3 Jun 2019 13:48:47 +0000 (06:48 -0700)]
JIT HW Intrinsic implementation doc (dotnet/coreclr#23622)
* JIT HW Intrinsic implementation doc
Commit migrated from https://github.com/dotnet/coreclr/commit/
074ef022ab9cd69837d6b760f02762115568b777
Andrew Au [Fri, 31 May 2019 22:28:16 +0000 (15:28 -0700)]
Final touch
Commit migrated from https://github.com/dotnet/coreclr/commit/
5af77fa0dcc99abb3c9610f1a062493ddc2e0584
John Salem [Sat, 25 May 2019 00:13:06 +0000 (17:13 -0700)]
Productize auto_trace
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf1385c9867fa6a9a5dd1d2d3bfa5c7015f2acd7
Andrew Au [Fri, 3 May 2019 22:43:43 +0000 (15:43 -0700)]
AutoTrace - launch dotnet trace to capture trace as soon as the runtime is available to trace
Commit migrated from https://github.com/dotnet/coreclr/commit/
360d41f4ff93b6507863cb324a247fd7380b4f79
Dan Moseley [Sun, 2 Jun 2019 13:53:55 +0000 (06:53 -0700)]
Improve fatal err msg (dotnet/coreclr#24390)
* Improve fatal err msg
* Match SO format
* a
* Remove dead define
* More adjustments to ex msg
* And PAL
* Remove special case for SOE
* Remove excess Debug.Assert newline
* Remove excess newline
* typo
* New format
* Remove DebugProvider redundancy
* Adjustments
* Remove preceding newline
* Make other SOE and OOM consistent
* Tidy up assertion msg
* Fix missing newline after inner exception divider
* CR when no inner exception
* ToString never CR terminated
* disable corefx tests temporarily
Commit migrated from https://github.com/dotnet/coreclr/commit/
b0381d7bf05cc4a342eb1f7fa33d17885f47d999
Sung Yoon Whang [Sat, 1 Jun 2019 00:17:12 +0000 (17:17 -0700)]
Move EventPipeEventSource deletion to a better place (dotnet/coreclr#24901)
* Move EventPipeEventSource deletion to a better place
* typo
Commit migrated from https://github.com/dotnet/coreclr/commit/
6d783b29087b5f260c9a64f347867bf6f6391bfe
Stephen Toub [Fri, 31 May 2019 23:41:59 +0000 (19:41 -0400)]
Fix FileStream.FlushAsync() to behave like Flush() (dotnet/coreclr#24902)
Flush() behaves like Flush(false) and writes out any buffered data but doesn't P/Invoke to FlushFileBuffers/FSync to flush the OS buffers.
But whereas FlushAsync() is supposed to just be an async equivalent of Flush(), it's actually behaving like Flush(true). This makes FlushAsync() inconsistent and much more expensive. (This is separate from FlushAsync not actually being async, which is an impactful problem to be solved separately.)
This changes FlushAsync to behave like Flush()/Flush(false) rather than Flush(true). If someone wants the FlushFileBuffers/FSync behavior, they can call Flush(true).
Commit migrated from https://github.com/dotnet/coreclr/commit/
436debb93c390e144f9c25b5d1922ac7780745f4
William Godbe [Fri, 31 May 2019 19:48:54 +0000 (12:48 -0700)]
Update branding to preview7 in master (dotnet/coreclr#24895)
Commit migrated from https://github.com/dotnet/coreclr/commit/
525623770c07d83d637fb3f8c7856c85077ffea1
Carol Eidt [Fri, 31 May 2019 18:02:02 +0000 (11:02 -0700)]
Handle a zero byte cpblk (dotnet/coreclr#24871)
Fix dotnet/coreclr#24846
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d21b57657f8135622797f0db29460c975dd2339
Jan Vorlicek [Fri, 31 May 2019 16:46:12 +0000 (18:46 +0200)]
Fix overlooked moduleIndex initial value (dotnet/coreclr#24881)
When adding the signature copying some time ago, I have overlooked one
place where the moduleIndex was set to -1 instead of MODULE_INDEX_NONE.
I was using the -1 during the development and replaced it by creating
MODULE_INDEX_NONE during final cleanup at all but one places.
This caused issues during crossgen even without large version bubble
enabled. Methods requiring generic constraint were not crossgen-ed due
to this.
Commit migrated from https://github.com/dotnet/coreclr/commit/
795f2fd2a67047519b477cd1776626368c88e73c
Vladimir Sadov [Fri, 31 May 2019 14:45:03 +0000 (07:45 -0700)]
Makes GetTotalAllocatedBytes monotonic in nonprecise case. (dotnet/coreclr#24875)
* Makes GetTotalAllocatedBytes monotonic in nonprecise case.
Fixes:dotnet/coreclr#24615
* read `dead_threads_non_alloc_bytes` atomically on 32bit platforms
* Update src/vm/comutilnative.cpp
Co-Authored-By: Jan Kotas <jkotas@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0bbac00d8344195da3c9ee60dad31d0036b7dec0
Jan Kotas [Fri, 31 May 2019 06:35:35 +0000 (23:35 -0700)]
Delete dead code (dotnet/coreclr#24876)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b8d5b7b760f64d39e00554189ea0e5c66ed6bd62
Jeremy Koritzinsky [Fri, 31 May 2019 03:40:51 +0000 (20:40 -0700)]
Check that we are using a valid IDispatch invocation flag earlier to limit the amount of work we do when we're going to return early anyway. (dotnet/coreclr#24872)
Commit migrated from https://github.com/dotnet/coreclr/commit/
996c6ad8015ac8597c504df53aefebd58fad7395
Jarret Shook [Fri, 31 May 2019 02:07:50 +0000 (19:07 -0700)]
Fix dotnet/coreclr#24867 (dotnet/coreclr#24870)
Pre SDK 3.0, a project type that is not .csproj would not include Directory.Build.targets. Change empty.proj to empty.csproj to allow source build, which uses a 2.1 sdk to build, correctly import Directory.Build.targets.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6d6fc20a597b01ad0e2745b6933ca216746e7df
Aaron Robinson [Fri, 31 May 2019 01:38:33 +0000 (18:38 -0700)]
Remove unused code in vm/util.* (dotnet/coreclr#24863)
* Remove unused code in vm/util.*
Commit migrated from https://github.com/dotnet/coreclr/commit/
82bd51f001c8df3def3b327bb31fc7611539cbd8
Jeremy Koritzinsky [Fri, 31 May 2019 00:33:21 +0000 (17:33 -0700)]
Add information in docs for required Windows SDK version for test build. (dotnet/coreclr#24865)
Commit migrated from https://github.com/dotnet/coreclr/commit/
56c35e9b60e5f3a978ebe0b77f4b5b0c040495e4
Brian Sullivan [Thu, 30 May 2019 23:49:40 +0000 (16:49 -0700)]
Merge pull request dotnet/coreclr#24869 from briansull/desktop-build-fixes
Fixes for building the Desktop JIT in CodegenMirror
Commit migrated from https://github.com/dotnet/coreclr/commit/
7d8309f149d0de976a482941356ed0e48b309858
Egor Chesakov [Thu, 30 May 2019 23:40:50 +0000 (16:40 -0700)]
Create NearDiffer in SuperPMI based on specified targetArchitecture (dotnet/coreclr#24860)
Commit migrated from https://github.com/dotnet/coreclr/commit/
404e82becbadbd3def532047e5504e1313c1766a
Egor Chesakov [Thu, 30 May 2019 23:26:12 +0000 (16:26 -0700)]
Support running SuperPMI with ARM protononjit.dll (dotnet/coreclr#24840)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ee8a09345ea63f80996f0dde7ee4d8396efd902
Elinor Fung [Thu, 30 May 2019 21:58:09 +0000 (14:58 -0700)]
Remove BuildTools from product build (dotnet/coreclr#24841)
* Remove BuildTools imports from product build
* Split scripts for installing dotnet vs BuildTools
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa8383fb28be945cae900a5579afd5920f274fd4
Brian Sullivan [Thu, 30 May 2019 21:34:55 +0000 (14:34 -0700)]
Fixes for building the Desktop JIT in CodegenMirror
Commit migrated from https://github.com/dotnet/coreclr/commit/
a765642cab6f2242fcfe0fab27ca41ceb7c57490
Jan Vorlicek [Thu, 30 May 2019 20:07:06 +0000 (22:07 +0200)]
Add build-tools.cmd (dotnet/coreclr#24817)
* Add build-tools.cmd
This script builds selected tools in the src/tools directory (for the
time being, it builds just the runincontext tool). This is a preparation
step to enable nightly runs with unloadability tests. The
build-tools.cmd should build helper tools needed during test runs.
* Remove the build-tools.cmd
* Build the tools as part of the managed runtime build.
* Update the R2RDump project to put binaries into the bin/Product/...
* Update runincontext.cmd/sh scripts
Reflect the new location of the runincontext binary
Commit migrated from https://github.com/dotnet/coreclr/commit/
7e17986ff71a70ba328895e0b99e1de83d1bf5b5
Russ Keldorph [Tue, 28 May 2019 20:05:54 +0000 (13:05 -0700)]
Move CI to supported queues
Commit migrated from https://github.com/dotnet/coreclr/commit/
d651f0ae68a78741b5c9c18696245035d4aba27a
dotnet-maestro-bot [Thu, 30 May 2019 17:09:48 +0000 (10:09 -0700)]
Update CoreClr to preview6.19280.1 (dotnet/coreclr#24848)
Commit migrated from https://github.com/dotnet/coreclr/commit/
604a34b497219551a20abe266337b64e7124dac6
Stephen Toub [Thu, 30 May 2019 16:54:55 +0000 (12:54 -0400)]
Add Environment.TickCount64 (dotnet/coreclr#24857)
Commit migrated from https://github.com/dotnet/coreclr/commit/
31acad70cae93caf0afe753775f14ebe80db31ed
Michal Strehovský [Thu, 30 May 2019 15:37:23 +0000 (17:37 +0200)]
Implement R2R helpers for synchronized methods (dotnet/coreclr#24646)
Synchronized methods show up when `Console` is used and the missing helper mapping would cause us not to AOT compile them.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7143390a5834d22213ffbbc04f8817b1c401fb83
Sinan Kaya [Thu, 30 May 2019 08:35:37 +0000 (04:35 -0400)]
Frkaya/gcc fix 052919 (dotnet/coreclr#24845)
* fix compilation with gcc7.x
In file included from src/inc/sstring.h:1029:0,
from src/inc/ex.h:19,
from src/inc/stgpool.h:28,
from src/inc/../md/inc/metamodel.h:18,
from src/inc/../md/inc/metamodelro.h:19,
from src/inc/metadata.h:17,
from src/inc/corpriv.h:21,
from src/md/compiler/stdafx.h:20,
from src/md/compiler/mdutil.cpp:12:
src/inc/sstring.inl: In member function ‘const WCHAR* SString::GetUnicode() const’:
src/inc/sstring.inl:650:5: error: nonnull argument ‘this’ compared to NULL [-Werror=nonnull-compare]
if (this == NULL)
^~
add version check
* Use the abstracted version of __nodebug__
* cc1: warning: command line option ‘-fpermissive’ is valid for C++/ObjC++ but not for C
Commit migrated from https://github.com/dotnet/coreclr/commit/
41832cedbb2d46362239d2b272964a39ca37cd89
Michal Strehovský [Thu, 30 May 2019 07:48:07 +0000 (09:48 +0200)]
Allow generating HW intrinsics in crossgen (dotnet/coreclr#24689)
We currently don't precompile methods that use hardware intrinsics because we don't know the CPU that the generated code will run on. Jitting these methods slows down startup and accounts for 3% of startup time in PowerShell.
With this change, we're going to lift this restriction for CoreLib (the thing that matters for startup) and support generating HW intrinsics for our minimum supported target ISA (SSE/SSE2).
Commit migrated from https://github.com/dotnet/coreclr/commit/
d4fadf03b9964ba9a1bf96f5a2136c2c8f4f38fe
Aaron Robinson [Thu, 30 May 2019 06:51:51 +0000 (23:51 -0700)]
Remove all uses of CanRunManagedCode() (dotnet/coreclr#24847)
* Remove all uses of CanRunManagedCode()
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d16005b984b9b27ce59245bca87aa225b2ca0b7
Mike McLaughlin [Thu, 30 May 2019 06:39:31 +0000 (23:39 -0700)]
Use /proc/<pid>/mem to read memory in remote DBI data target. It makes the test case run at (dotnet/coreclr#24844)
least 4 to 5 times faster than before.
Fallback to old transport ReadMemory if /proc/<pid>/mem can't be opened. This happens
on attach because of permissions/access, but works fine on the launch (the most
important case).
Commit migrated from https://github.com/dotnet/coreclr/commit/
e46ae5921c510309f252af21c2a88d341e4e15ab
John Salem [Thu, 30 May 2019 01:59:27 +0000 (18:59 -0700)]
Add COMPlus_LTTng environment variable (dotnet/coreclr#24733)
* default value is 1, and when set to 0 will disable loading LTTng.
Co-Authored-By: Jan Kotas <jkotas@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
cc1f8ab68e645cd46601b1df50ff644dfffc4dae
mikedn [Thu, 30 May 2019 00:53:11 +0000 (03:53 +0300)]
Sort out ARM load/store instruction size issues (dotnet/coreclr#20126)
* Avoid using ins_Load/ins_Store with constant type
* Use ldr to load array lengths/lower bounds
genCodeForArrIndex and genCodeForArrOffset emit a ldrsw on ARM64 but that's not necessary. Array lengths are always positive. Lower bounds are signed but then the subsequent subtract is anyway EA_4BYTE so sign extension isn't actually needed. Just use ldr on both ARM32 and ARM64.
* Use ldr to load array length (part 2)
genCodeForIndexAddr's range check generation is messed up:
- It uses ldrsw to load array length on ARM64. Not needed, the length is positive.
- It uses sxtw to sign etxend the array length if the index is native int. But it was already extended by the load.
- It creates IND and LEA nodes out of thin air. Just call the appropiate emitter functions.
- It always generates a TYP_I_IMPL cmp, even when the index is TYP_INT. Well, that's just bogus.
* Stop the using the instruction size for immediate scaling on ARM32
The scaling of immediate operands is a property of the instruction and its encoding. It doesnt' make sense to throw the instruction size (emitAttr) into the mix, that's a codegen/emitter specific concept. On ARM32 it's also almost meaningless, at least in the case of integer types - all instructions are really EA_4BYTE, even ldrb, ldrh etc.
The ARM64 emitter already extracts the scaling factor from the instruction. It can't use the instruction size as on ARM64 the size is used to select between 32 bit and 64 bit instructions so it's never EA_1BYTE/EA_2BYTE.
* Stop using ldrsw for TYP_INT loads
ARM64's ins_Load returns INS_ldrsw for TYP_INT but there's nothing in the JIT type system that requires sign extending TYP_INT values on load. The fact that an indir node has TYP_INT doesn't even imply that the value to load is signed, it may be unsigned and indir nodes will never have type TYP_UINT nor have the GTF_UNSIGNED flag set.
XARCH uses a mov (rather than movsxd, the equivalent of ldrsw) so it zero extends. There's no reason for ARM64 to behave differently and doing so makes it more difficult to share codegen logic between XARCH and ARM64
Other ARM64 compilers also use ldr rather than ldrsw.
This requires patching up emitInsAdjustLoadStoreAttr so EA_4BYTE loads don't end up using EA_8BYTE, which ldrsw requires.
* Cleanup genCodeForIndir/genCodeForStoreInd
In particular, cleanup selection of acquire/release instructions. The existing code starts by selecting a "normal" instruction, only to throw it away and redo the type/size logic in the volatile case. And get it wrong in the process, it required that "targetType" be TYP_UINT or TYP_LONG to use ldar. But there are no TYP_UINT indirs.
Also rename "targetType" to "type", using "target" is misleading. The real target type would be genActualType(tree->TypeGet()).
* Remove ARM32/64 load/store instruction size inconsistencies
- Require EA_4BYTE for byte/halfword instructions on ARM32.
- Remove emitInsAdjustLoadStoreAttr on ARM64. Getting the correct instruction size simply requires using emitActualTypeSize, that will provide the correct size on both ARM32 and ARM64.
- Replace emitTypeSize with emitActualTypeSize as needed.
* Remove unnecessary insUnscaleImm parameter
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6824d52873d0f6382b4f733c50f510491d37b12
Elinor Fung [Thu, 30 May 2019 00:10:41 +0000 (17:10 -0700)]
Stop using %~dp0 in build scripts after args processing (dotnet/coreclr#24842)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0950e5200eaefab9ac75edd59d23ef69eaccf539
dotnet-maestro-bot [Wed, 29 May 2019 22:57:42 +0000 (15:57 -0700)]
Update CoreClr to preview6.19279.1 (dotnet/coreclr#24829)
Commit migrated from https://github.com/dotnet/coreclr/commit/
42d8e40e469cf00128e0cfa48f24297afa13c36f
Jeremy Koritzinsky [Wed, 29 May 2019 21:40:31 +0000 (14:40 -0700)]
Refactor native build to remove the compiler-override files (dotnet/coreclr#23897)
* On systems that have both cmake 2 and cmake 3, use cmake 3.
Move CMAKE_EXPORT_COMPILE_COMMANDS to top level instead of in gen-buildsys-*. Define the CMake install prefix in gen-buildsys-* instead of pulling from an environment variable.
Define C++ standard as CMake property instead of as flag.
Move CLR_DEFINES_*_INIT out of overrides and into configurecompiler.cmake
Move flags that generate debug info into configurecompiler.cmake
Remove the CMAKE_USER_RULES_OVERRIDE files.
Add cmake version output for determining what cmake versions each CI system has.
Fix syntax in gen-buildsys-clang.
Change add_compile_definitions back to add_definitions
Add -D prefix for adding definitions via add_definitions
Remove extraneous double-quote
Change default config definition adding to the syntax in master
Switch back to old CMAKE_<LANG>_FLAGS way of setting the language standards and try to go back to 2.8.12 minimum
Switch back setting compile definitions for non-Windows branch too.
Use SET with CMAKE_<LANG>_FLAGS. Convert some usages of appending to CMAKE_<LANG>_FLAGS to add_compile_options where possible.
Set CMAKE_<LANG>_FLAGS_INIT instead of CMAKE_<LANG>_FLAGS
Make sure configureopimitzation.cmake is included correctly in test build.
Try to add brackets to get the Linux ARM compilation working correctly.
Define standard language version in configurecompiler.cmake instead of root CMakeLists (so tests get it)
Try to move langauge standard check to configure.cmake
define language standard in each root CMakeLists.txt
Fix off-Windows test build.
Set CMAKE_EXPORT_COMPILE_COMMANDS after the project() call
* Set CMAKE_USER_MAKE_RULES_OVERRIDE to "" to not break incremental builds after building on a branch that had it set to a path.
* Remove CMake version output.
* Move comment outside of multiline command.
* Retry setting CMAKE_USER_MAKE_RULES_OVERRIDE
* Remove unnecessary variable wrappers.
* Simplify cmake 3 resolution.
* Explicitly use CMAKE_CXX_FLAGS for C++-only flags that GCC complains about on C files.
* Set -Wall via CMAKE_<LANG>_FLAGS until we can move all flag settings to add_compile_options
* Fix typos
* Another temporary precedence issue.
* include configureoptimization.cmake in configurecompiler.cmake
* Move setting CMAKE_EXPORT_COMPILE_COMMANDS to configurecompiler.cmake.
* Rename configure.cmake -> verify_lto.cmake.
* Fix path to verify-lto
* Try using CMAKE_<LANG>_FLAGS instead of CMAKE_<LANG>_FLAGS_INIT.
* Revert name change to configure.camek
Commit migrated from https://github.com/dotnet/coreclr/commit/
38f121b06910b25080b5f3259152effc0fe3c672
Jeremy Koritzinsky [Wed, 29 May 2019 20:47:52 +0000 (13:47 -0700)]
Use Ubuntu 14.04-on-16.04 Docker image for arm cross builds. (dotnet/coreclr#23999)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ac776125f4b9182de05abb1daccb98221509cc1
Elinor Fung [Wed, 29 May 2019 20:32:07 +0000 (13:32 -0700)]
Stop specifying cdecl for ComponentEntryPoint (default to stdcall) (dotnet/coreclr#24833)
Commit migrated from https://github.com/dotnet/coreclr/commit/
85af89bbbf22b30f3f7f46c961b3f484c8783630
mikedn [Wed, 29 May 2019 17:37:25 +0000 (20:37 +0300)]
Change binary op tree display (dotnet/coreclr#20045)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2eeeac5b0239cc619c1d71dc33896fa2bdced12c
Sven Boemer [Wed, 29 May 2019 16:06:55 +0000 (09:06 -0700)]
Add back AssemblyDescription attribute (dotnet/coreclr#24819)
This was present in System.Private.CoreLib previously, but removed in recent versions (I compared 3.0.0-preview5-27610-03 and 3.0.0-preview6-27715-05 on macos). It's unclear to me what used to be adding the attribute - https://github.com/dotnet/coreclr/commit/dotnet/coreclr@
099177b0899156a4e8a352083a273805240c0ccd touched the SPC logic, but even in that change I see no mention of it. Maybe it used to be autogenerated by the old project files. In any case, I believe it should be added back.
Its value used to be System.Private.CoreLib:
```diff
- .custom instance void System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 16 53 79 73 74 65 6D 2E 50 72 69 76 61 74 // ...System.Privat
- 65 2E 43 6F 72 65 4C 69 62 00 00 ) // e.CoreLib..
```
Commit migrated from https://github.com/dotnet/coreclr/commit/
90e7b68a9616b7c643a3e0e0e918102d94e527a2
Egor Chesakov [Wed, 29 May 2019 14:42:55 +0000 (07:42 -0700)]
Update MicrosoftDotNetXUnitConsoleRunnerVersion to reflect changes in Arcade (dotnet/coreclr#24822)
* Update tf to netcoreapp2.1
* Bump up version of xunit.console package to 2.5.1-beta.19278.1
* Fix type in the version
Commit migrated from https://github.com/dotnet/coreclr/commit/
90f2960e19700914c15abe1ead895c0ebea0db22
Elinor Fung [Wed, 29 May 2019 07:40:39 +0000 (00:40 -0700)]
Specify restore sources in optdata.csproj (dotnet/coreclr#24825)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b795318badbb2b7dd25715fff9f26153f261b4d4
José Rivero [Wed, 29 May 2019 06:17:02 +0000 (23:17 -0700)]
Create the Concept of Multiple EventPipe Sessions (dotnet/coreclr#24417)
This is the initial work to enable https://github.com/dotnet/coreclr/issues/15377
## What's here?
- A lot of code move/split. Some important moves:
- `EventPipe` has a colection of `EventPipeSessions` instead of a single session.
- `EventPipeSession` now owns a `EventPipeBufferManager` and a `EventPipeFile`
- `EventPipeThread` now owns a collection of { EventPipeBufferManager, EventPipeBuffer }, and a collection of { EventPipeBufferManager, EventPipeBufferList }
- There is a cap on the max number of `EventPipeSession` (64 sessions)
- `EventPipeProvider` and `EventPipeEvent` use a 64-bit mask to keep track of the sessions that are listening to provider/events.
## What's pending?
https://github.com/dotnet/coreclr/issues/24753
Commit migrated from https://github.com/dotnet/coreclr/commit/
19edba3699daca1002bcd748e152d526d5b7bb69
Jeremy Koritzinsky [Wed, 29 May 2019 03:55:52 +0000 (20:55 -0700)]
Change DllImportPath policy to create unicode-named test library immediately before use (dotnet/coreclr#24812)
* Change DllImportPath_Unicode to use valid unicode characters. Create DllImportPath_Unicode via copying in a MSBuild property (copying in the test script doesn't work with batch).
* Have the test create the unicode native library right before use.
* Get first Dllimportpath_local that has the correct extension (check instead of assuming that the first one is the correct one).
Commit migrated from https://github.com/dotnet/coreclr/commit/
c614a00fed86ffa921b55d169bb6a7eb8625c7ff
Elinor Fung [Wed, 29 May 2019 01:46:08 +0000 (18:46 -0700)]
Use Arcade for native versioning (dotnet/coreclr#24785)
Commit migrated from https://github.com/dotnet/coreclr/commit/
34805dc3852ba218fcfd695bc0b9eb996860e025
Jan Kotas [Tue, 28 May 2019 22:48:40 +0000 (15:48 -0700)]
Fix nullable annotation
Commit migrated from https://github.com/dotnet/coreclr/commit/
420884ff6f4244f0e6ca8c5cfc2f59a708d89379
Jan Kotas [Tue, 28 May 2019 20:55:06 +0000 (13:55 -0700)]
Fix superfluous delegate allocations in Unix WaitSubsystem (dotnet/coreclr#7454)
Fixes dotnet/coreclr#7452
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
cdcc588fba1158a3ec7f45a539eece687426e917
Jan Kotas [Wed, 29 May 2019 01:38:42 +0000 (18:38 -0700)]
Add null checks before calling ClassLoader::EnsureLoaded (dotnet/coreclr#24818)
Fixes dotnet/coreclr#24816
Commit migrated from https://github.com/dotnet/coreclr/commit/
02e75ab55272902aed4c2501ab7c6740bae30485
Elinor Fung [Wed, 29 May 2019 00:37:52 +0000 (17:37 -0700)]
Stop adding 7 before the build revision number (dotnet/coreclr#24805)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7f9e1aef945a2115b337688976fa1c4cfebe1825
Stephen Toub [Wed, 29 May 2019 00:36:52 +0000 (20:36 -0400)]
Change StreamReader.ReadBufferAsync to return ValueTask<int> (dotnet/coreclr#24810)
It's a private helper that's always directly awaited. No need to allocate a task each time it's called and data is synchronously available.
Commit migrated from https://github.com/dotnet/coreclr/commit/
13405da4ba21095f7673a10eaabfef990117478d
Jan Kotas [Tue, 28 May 2019 23:37:49 +0000 (16:37 -0700)]
Fix IBC data collection (dotnet/coreclr#24814)
Commit migrated from https://github.com/dotnet/coreclr/commit/
88ebe4fab2945d6f45894e0e58f64a3054142664
Elinor Fung [Tue, 28 May 2019 23:09:46 +0000 (16:09 -0700)]
Stop using BuildTools for signing (dotnet/coreclr#24808)
Commit migrated from https://github.com/dotnet/coreclr/commit/
052042e8268d8f6e8743a7505666016c7b71f26c
Elinor Fung [Tue, 28 May 2019 23:05:28 +0000 (16:05 -0700)]
Rename CreateNativeDelegate -> LoadAssemblyAndGetFunctionPointer (dotnet/coreclr#24804)
Change extensibility parameter to void *
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff39e7f372515ecefac3f30640bffbeafc20adb6
Vladimir Sadov [Tue, 28 May 2019 21:28:56 +0000 (14:28 -0700)]
Using AllocateUninitializedArray in array pool (dotnet/coreclr#24504)
* Just use `new T[]` when elements are not pointer-free
* reduce zeroing out when not necessary.
* use AllocateUninitializedArray in ArrayPool
Commit migrated from https://github.com/dotnet/coreclr/commit/
4ca032d49b0718eb40f2105f94db2b243cf94957
Marek Safar [Tue, 28 May 2019 20:54:38 +0000 (22:54 +0200)]
Move parts of WeakReference to shared partition (dotnet/coreclr#24800)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2b08a111cc77d77221889700d169c9c636153355
Andrew Au [Sun, 26 May 2019 23:30:39 +0000 (16:30 -0700)]
Fixing the epilog size decoding
Commit migrated from https://github.com/dotnet/coreclr/commit/
c690daea096f44d6563de58cd4b5d50cce83d9bf
Jan Kotas [Tue, 28 May 2019 18:18:28 +0000 (11:18 -0700)]
Cleanup unnecessary code in exception formatting (dotnet/coreclr#24797)
* Cleanup unnecessary code in exception formatting
* Delete fNeedFileInfo argument for GetStackTrace
Fixes dotnet/coreclr#8694
Commit migrated from https://github.com/dotnet/coreclr/commit/
156240d59b8acc277504fe43f148fe53e63f40bc
Marco Rossignoli [Tue, 28 May 2019 18:14:05 +0000 (20:14 +0200)]
Expose Path.TrimEndingDirectorySeparator (dotnet/coreclr#20805)
* expose TrimEndingDirectorySeparator
* address PR feedback
* updates
* address PR feedback
* fix comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
e44730085c65ddb98dad1a3059b4e8f7a1ae33ea
Egor Bogatov [Tue, 28 May 2019 18:12:01 +0000 (21:12 +0300)]
Move some CustomAttribute related types to shared (dotnet/coreclr#23651)
Commit migrated from https://github.com/dotnet/coreclr/commit/
89517b04ae89a39b4bde720f8cca87cfa4f12d2e
Andrew Au [Tue, 28 May 2019 08:02:26 +0000 (01:02 -0700)]
Make sure the layout of coreclr!Module is the same as mscordaccore!Module
Commit migrated from https://github.com/dotnet/coreclr/commit/
4f325ce1a17a5ec5a0ac424cded0c98f268605f1
Jan Vorlicek [Tue, 28 May 2019 16:06:38 +0000 (18:06 +0200)]
Fix initial thread affinity on Linux (dotnet/coreclr#24801)
* Fix initial thread affinity on Linux
On Linux, a new thread inherits the affinity mask of the thread
that created the new thread. This is a problem for background GC
threads that are created by one of the server GC threads that are
affinitized to single core.
This change adds resetting each new thread affinity to match the
current process affinity.
In addition to that, I've also fixed the extraction of the CPU count
that was using PID 0. While the doc says that 0 represents current process,
it in fact means current thread.
And as a small bonus, I've added caching of the value returned by
the PAL_GetLogicalCpuCountFromOS, since it cannot change during runtime.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3489e56c875c6144c729b51063300c7d60b1ae31
dotnet-maestro-bot [Tue, 28 May 2019 10:07:21 +0000 (03:07 -0700)]
Update CoreClr to preview6.19277.72 (dotnet/coreclr#24795)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7631331183266734342de351b25519a07743e13e
Stephen Toub [Sat, 25 May 2019 02:06:37 +0000 (22:06 -0400)]
Improve performance of !dumpasync SOS command
A significant majority of the time spent in dumpasync was in getting the type name of each object in order to compare it to "AsyncStateMachineBox". This switches to comparing by module and mdTypeDef. On an ~1GB dump, the time to execute !dumpasync dropped from 43 to 11 seconds on my machine.
Commit migrated from https://github.com/dotnet/coreclr/commit/
25878db0c11bfb8d52088c75ccfcc13e4c8383f2
Stephen Toub [Thu, 23 May 2019 02:56:33 +0000 (22:56 -0400)]
Display state machine fields in DumpAsync for -stacks
Currently the DumpAsync -fields option just impacts whether the state machine fields are output for the top-level state machines. We received feedback that it would be more expected for -fields to also cause the fields to be output for all state machines listed as part of continuation chains. This does that.
Commit migrated from https://github.com/dotnet/coreclr/commit/
66134f6e3646f22ac551fb5d720033d26d4cbf8d
Stephen Toub [Tue, 28 May 2019 10:04:13 +0000 (06:04 -0400)]
Add and apply nullable attributes (dotnet/coreclr#24679)
* Add and apply nullable attributes
* Adapt to API review decisions
* Address PR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
4a1275434fff99206f2a28f5f0e87f124069eb7f
Dan Moseley [Tue, 28 May 2019 02:34:19 +0000 (19:34 -0700)]
Call derived ToString on inner exceptions (dotnet/coreclr#24793)
* Remove special Appx path and METHOD__EXCEPTION__TO_STRING
* Remove Exception.ToString(bool, bool)
* Remove Exception.InternalToString and callers
* Cache message
Commit migrated from https://github.com/dotnet/coreclr/commit/
bb75edbac9c40034b6683c17d86057ee9bf4192d
Egor Chesakov [Tue, 28 May 2019 00:23:52 +0000 (17:23 -0700)]
Use PublishBuildArtifacts instead of PublishPipelineArtifact (dotnet/coreclr#24788)
* Use PublishBuildArtifacts instead of PublishPipelineArtifacts
* Use DownloadBuildArtifacts instead of DownloadPipelineArtifact
* Try to specify itemPattern
* Use PublishBuildArtifacts instead of PublishPipelineArtifacts
* Try copy files in a separate step
* Add missing $
Commit migrated from https://github.com/dotnet/coreclr/commit/
064686ce3a5501ffaa4eace5f2f21bd454642124
Jan Vorlicek [Mon, 27 May 2019 16:42:16 +0000 (18:42 +0200)]
Fix module override for recursive generic signatures (dotnet/coreclr#24707)
* Fix module override for recursive generic signatures
When crossgen-ing with large version bubble enabled, generic signatures
that got copied from the source IL were missing module overrides at
deeper levels of the generic signature.
For example, in case of X<Y<A,B>,Z>, the override was applied only to Y
and Z, but not to A and B.
This change fixes that by inserting module override zapsig at all
levels.
Commit migrated from https://github.com/dotnet/coreclr/commit/
419b46fc7d0fe0659e7ab521c222b7c921b36e35
Stephen Toub [Sun, 26 May 2019 02:13:05 +0000 (22:13 -0400)]
Stop nulling out lock object in SemaphoreSlim (dotnet/coreclr#24776)
SemaphoreSlim.Dispose nulls out its lock object, and that's then used as an indication in other methods whether they should throw ObjectDisposedException. But nulling out an object used for synchronization in other methods is a bad practice, and while SemaphoreSlim.Dispose is not thread-safe to be used concurrently with other usage of the instance, it's still confusing when such usage leads to NullReferenceExceptions due to trying to lock on a null lock object. This change just changes the lock to be readonly, always set, and then whether the instance has been disposed is just a value set on that object (such that it's no larger than it used to be).
Commit migrated from https://github.com/dotnet/coreclr/commit/
580152a50e4092d32c7d05ec876cd6976483ebf1
Jeremy Koritzinsky [Sat, 25 May 2019 16:19:03 +0000 (09:19 -0700)]
Make sure all of the calculations of enregistered return types match correctly. (dotnet/coreclr#24771)
* Make sure all of the calculations of enregistered return types match correctly.
* Revert "Disable ARM64 IDispatch tests (dotnet/coreclr#24770)"
This reverts commit dotnet/coreclr@
852f40d5f1a3cff4d381c2de2d2a86fe8b1f29b4.
Commit migrated from https://github.com/dotnet/coreclr/commit/
83309575a1552e39fe505cbd883391f3dcbea8b4
Jan Kotas [Sat, 25 May 2019 06:10:21 +0000 (23:10 -0700)]
Delete FEATURE_USE_LCID (dotnet/coreclr#24767)
Never defined and obsolete
Commit migrated from https://github.com/dotnet/coreclr/commit/
5b283a18625f7a8009c18221592ec81c3cd32375
Sung Yoon Whang [Sat, 25 May 2019 03:16:11 +0000 (20:16 -0700)]
Add more runtime GC counters (dotnet/coreclr#24561)
* Add Series/CounterType to CounterPayload and IncrementingCounterPayload
* merging with master
* Add Generation sizes counter
* Some cleanup
* Add allocation rate counter
* Fix build
* add Allocation Rate runtime counter
* Fix a potential div by zero exception
* Add back in code commented out
* Add LOH size counter
* Fix linux build
* GetTotalAllocated -> GetTotalAllocation
* PR feedback
* More cleanup + renaming per PR feedback
* undo comments
* more pr feedback
* Use existing GC.GetTotalAllocatedBytes API instead
* Remove duplicate GetTotalAllocation
* More PR feedback
* Fix x86 build
* Match type between C++/C#
* remove unused variables'
Commit migrated from https://github.com/dotnet/coreclr/commit/
b676246c1dd880b7290a1313cdac309fe020aa6f
Jeremy Koritzinsky [Fri, 24 May 2019 23:39:50 +0000 (16:39 -0700)]
Disable ARM64 IDispatch tests (dotnet/coreclr#24770)
Commit migrated from https://github.com/dotnet/coreclr/commit/
852f40d5f1a3cff4d381c2de2d2a86fe8b1f29b4
Tamar Christina [Fri, 24 May 2019 23:26:18 +0000 (00:26 +0100)]
Arm64: Take more bounds checks into consideration when inlining immediates (dotnet/coreclr#24762)
* Arm64: Take GT_ARR_BOUNDS_CHECK to consideration for inlining immediate in cmp
* Arm64: Add SIMD and HW_INTRINSIC to IsContainableImmed
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6b3b61ae4d9ec1f928f02d4272135bca8d75f52
Jeremy Koritzinsky [Fri, 24 May 2019 22:26:14 +0000 (15:26 -0700)]
Set the HasExplicitSize flag when a class size is specified in metadata. (dotnet/coreclr#24763)
* Set the HasExplicitSize flag when a class size is specified in metadata.
* Add test from @mikedn.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0bdf613f09a3bf409717beb939195b39e40c6828
Jan Kotas [Fri, 24 May 2019 22:24:17 +0000 (15:24 -0700)]
Fix nulable annotations build break (dotnet/coreclr#24768)
Commit migrated from https://github.com/dotnet/coreclr/commit/
74d90fdaaa9a0aea2ee5da2cf38dfc07b0bf95fa
dotnet-maestro-bot [Fri, 24 May 2019 21:37:04 +0000 (14:37 -0700)]
Update CoreClr to preview6.19274.71 (dotnet/coreclr#24761)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f428dbc5554191dadd27511cd5cd181e4a60efb
dotnet-maestro[bot] [Fri, 24 May 2019 21:36:24 +0000 (14:36 -0700)]
[master] Update dependencies from dotnet/arcade (dotnet/coreclr#24333)
* Update dependencies from https://github.com/dotnet/arcade build
20190522.13
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19272.13
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19272.13
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19272.13
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19272.13
* Update Unix permissions
* Set the versions same way as CoreFX repo
* Fix the product branding version
* Delete .NET Framework reference assemblies reference
* Workaround for https://github.com/dotnet/arcade/issues/2673
Commit migrated from https://github.com/dotnet/coreclr/commit/
d3b5e99a75be2344ec7bc9e1f28319cd3d31ccc2
Santiago Fernandez Madero [Fri, 24 May 2019 21:14:42 +0000 (14:14 -0700)]
Merge pull request dotnet/coreclr#24764 from safern/FixArraySetValueNullable
Fix some nullable annotations
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d85833c0169de7a8a54351184238a0525da5073
Elinor Fung [Fri, 24 May 2019 18:53:42 +0000 (11:53 -0700)]
Fix publishing in official build
Commit migrated from https://github.com/dotnet/coreclr/commit/
79c3f85963a3447cbf349c421a78e2a585a8dafe
Jeremy Koritzinsky [Fri, 24 May 2019 20:20:23 +0000 (13:20 -0700)]
Enable LCID marshalling and clean up our LCID marshalling tests. (dotnet/coreclr#24642)
* Enable LCID marshalling and clean up our LCID marshalling tests.
* Fix return type.
* Enable LCID IDispatch reverse marshalling
* Add more tests for LCID marshalling.
* Add testing for reverse-IDispatch. Fix bug in Thread::GetCulture when culture has not been initialized on the managed side.
* PR Feedback.
* Fix install command.
Commit migrated from https://github.com/dotnet/coreclr/commit/
73217c884caeca4bcfbb9cc93ffe4c90db79cf7a
Santiago Fernandez Madero [Fri, 24 May 2019 19:00:48 +0000 (12:00 -0700)]
PR Feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
75c8c865ea12b079df314d3a14a614bb5e243972