Vance Morrison [Mon, 6 Aug 2018 16:00:07 +0000 (09:00 -0700)]
Review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba567402151b15ddd858dd1ab9b35e29c8e79b6d
Vance Morrison [Tue, 31 Jul 2018 18:24:18 +0000 (11:24 -0700)]
Fixed from testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
bebdeb0ef467e0ebc4108f1398692e52108bca38
Vance Morrison [Mon, 30 Jul 2018 22:54:14 +0000 (15:54 -0700)]
fix spelling
Commit migrated from https://github.com/dotnet/coreclr/commit/
23fce0f3a1dd28f04e04f088323fb2d43e0bc8bc
Vance Morrison [Mon, 30 Jul 2018 22:02:17 +0000 (15:02 -0700)]
Add try-catch
Commit migrated from https://github.com/dotnet/coreclr/commit/
678bf5985bc7bf2de11e6ea39f25bb9c148b526e
Vance Morrison [Mon, 30 Jul 2018 21:57:26 +0000 (14:57 -0700)]
Fix for passing enums to EventSources based on unsigned types.
See https://github.com/dotnet/coreclr/issues/19204
Commit migrated from https://github.com/dotnet/coreclr/commit/
a46b34b81a223117be9fd83365e5ab6f756ee09a
Jacek Blaszczynski [Sun, 29 Jul 2018 01:11:48 +0000 (03:11 +0200)]
Fix HW intrinsics test projects naming and optimization levels according to repo conventions
Commit migrated from https://github.com/dotnet/coreclr/commit/
96853b2487f7fc16281c61926f007b5dd67145bf
Koundinya Veluri [Mon, 30 Jul 2018 19:23:32 +0000 (12:23 -0700)]
Temporarily flag a SIMD test as optimization-sensitive (dotnet/coreclr#19163)
The test runs in several PR-triggered jobs. It fails with minopts and once tiering is enabled it would fail in every PR. See https://github.com/dotnet/coreclr/issues/19124.
Commit migrated from https://github.com/dotnet/coreclr/commit/
855ddf52c7b05994cf6728b9169fa6cdc694a537
Jan Kotas [Mon, 30 Jul 2018 14:16:11 +0000 (07:16 -0700)]
Change type of EnumLocaleData to struct (dotnet/coreclr#19193)
Saves allocation and makes the code smaller. It had to be class before we had ref locals.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba54b408472d7a4ded3c144d7c4791b991d58454
Jacek Blaszczynski [Mon, 30 Jul 2018 00:56:32 +0000 (02:56 +0200)]
Fix invalid IntPtr == null comparisons, set strict mode for Roslyn (dotnet/coreclr#19191)
Issue reported in https://github.com/dotnet/corefx/issues/31456
Solution is to compare always against IntPtr.Zero and use Roslyn
stric mode for reporting warnings for IntPtr == null comparisons
Commit migrated from https://github.com/dotnet/coreclr/commit/
93cf012db8396f5ea16f70b781a5de0d012fc65d
Dávid Kaya [Sat, 28 Jul 2018 04:14:32 +0000 (06:14 +0200)]
Added version increment for TrimExcess and EnsureCapacity (dotnet/coreclr#19096)
* Added version increment for TrimExcess and EnsureCapacity
* Added old unit test to exclusion list
* Excluded missing unit tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d31194880e800a9df8eef76e7a0a53646aa72d3
Jacek Blaszczynski [Sat, 28 Jul 2018 03:50:55 +0000 (05:50 +0200)]
build-test - fix TestWrapper CS warnings (dotnet/coreclr#19180)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae5909995075f916e0a91804c41f7cf3994779c5
Sergey Andreenko [Sat, 28 Jul 2018 01:44:32 +0000 (18:44 -0700)]
spmi: exclude methods using a file with saved md5 hashes. (dotnet/coreclr#18769)
* read md5, linear search for each method.
* rewrite with HANDLE
* fix linux
* do not waste time dumping md5 if no methods exluded
Commit migrated from https://github.com/dotnet/coreclr/commit/
6227652bcf2158df7f52be71106e9264b876fa2a
Bruce Forstall [Sat, 28 Jul 2018 00:21:03 +0000 (17:21 -0700)]
Merge pull request dotnet/coreclr#19165 from BruceForstall/FixCodeGenBringUpTestsBuilds
Specify specific build flavors for CodeGenBringUpTests tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
6510cdc02d791447afe9b766407a6b59135f420f
Ahson Khan [Sat, 28 Jul 2018 00:18:29 +0000 (17:18 -0700)]
Add comment explaining the return value of ToUpper/ToLower (dotnet/coreclr#19176)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9871b8ee439c32392ce611409354d1512c706b71
Carol Eidt [Fri, 27 Jul 2018 23:19:48 +0000 (16:19 -0700)]
Lowering: Atomic ops can produce a value (dotnet/coreclr#19173)
* Lowering: Atomic ops can produce a value
dotnet/coreclr#18887 changed OperIsStore to include the atomic functions, but `Lowering::LowerArg()` and `Lowering::CheckCallArg()` assume that stores do not produce a value, so it doesn't correctly set the argument register (or build a `PUTARG_REG`) for the case where the result of an atomic op is passed to a call.
Fix this and add additional asserts.
Fix dotnet/coreclr#19171
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b126cf6d62790a70ea15b6c4a35d8de3ddfd795
Tanner Gooding [Thu, 26 Jul 2018 16:00:34 +0000 (09:00 -0700)]
Updating emitInsCanOnlyWriteSSE2OrAVXReg to cover some of the newer instructions.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e59139eaaa78ae79a47c2373488c872818b05efe
Carol Eidt [Fri, 27 Jul 2018 20:26:30 +0000 (13:26 -0700)]
Merge pull request dotnet/coreclr#19145 from CarolEidt/Fix19081
Include long shifts in OperIsShiftOrRotate
Commit migrated from https://github.com/dotnet/coreclr/commit/
9e433bc15ec499a71ac5f41884a489aa28dca064
Bruce Forstall [Fri, 27 Jul 2018 17:13:21 +0000 (10:13 -0700)]
Specify specific build flavors for CodeGenBringUpTests tests
Don't let them "float" based on the current build type.
Update the arm/arm64 tests.lst files to use the new `_ro` versions.
It is expected these files will disappear soon, so don't add all
the new versions to them.
Fixes dotnet/coreclr#9722
Commit migrated from https://github.com/dotnet/coreclr/commit/
4d651c83f395125e21c80d2a096c8e8dd8343c3d
Andy Ayers [Fri, 27 Jul 2018 18:09:02 +0000 (11:09 -0700)]
JIT: add extra check to struct of struct of x promotion (dotnet/coreclr#19156)
Avoid promoting structs that contain struct fields that themselves
wrap single simple fields, if those single simple fields are smaller
than their enclosing struct.
Otherwise we run the risk of losing track of the "extra" bytes in the
innner struct.
Addresses dotnet/coreclr#19149.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d38774d80e07436eadc28f7255a8c9f8edb1e570
Koundinya Veluri [Fri, 27 Jul 2018 16:54:40 +0000 (09:54 -0700)]
Add CI PR-triggered Ubuntu x64 innerloop no-tiering job (dotnet/coreclr#19123)
Commit migrated from https://github.com/dotnet/coreclr/commit/
826c55f9a24926d64b042c083e09dfdf78ffe4ae
Bruce Forstall [Fri, 27 Jul 2018 16:25:54 +0000 (09:25 -0700)]
Merge pull request dotnet/coreclr#19154 from BruceForstall/FixArm64Localloc
Fix overallocation of arm64 small constant localloc
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e86a0e487fbafb582628b07ca6613798111968c
dotnet-maestro-bot [Fri, 27 Jul 2018 13:29:25 +0000 (06:29 -0700)]
Update CoreClr, CoreFx, PgoData to preview1-26727-01, preview1-26727-01, master-
20180727-0226, respectively (dotnet/coreclr#19102)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2b91f03ecd2834768f960d094cdc2445aa879073
Jacek Blaszczynski [Fri, 27 Jul 2018 05:35:51 +0000 (07:35 +0200)]
Reference in box HW intrinsics (dotnet/coreclr#19137)
* Update BuildTools, CoreClr, CoreFx, PgoData to preview1-03025-01, preview1-26726-01, preview1-26725-04, master-
20180726-0111, respectively
* Reference System.Runtime.Intrinsics in box package
* Disable X509Certificates tests for CoreFX update
Commit migrated from https://github.com/dotnet/coreclr/commit/
dd619659c7cd552e9e874db56ecde6f6f2ca338d
Bruce Forstall [Fri, 27 Jul 2018 04:42:30 +0000 (21:42 -0700)]
Merge pull request dotnet/coreclr#19144 from BruceForstall/Fix13796
Re-enable arm64 tests that no longer fail
Commit migrated from https://github.com/dotnet/coreclr/commit/
2194ecc60e3fae9a235e5722934660c342366d63
Tanner Gooding [Thu, 26 Jul 2018 20:46:48 +0000 (13:46 -0700)]
Fixing the x86 hwintrinsics to not assert for invalid generic types.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e61e50db63a1ca5a23428d17d76fb879dab690da
Bruce Forstall [Thu, 26 Jul 2018 23:18:44 +0000 (16:18 -0700)]
Fix overallocation of arm64 small constant localloc
We were dividing the number of bytes to allocate by 8 (right shift by 3)
to determine the number of loops, then allocating and zeroing 16 bytes
per loop.
Simplify this by removing the number of `STACK_ALIGN_SHIFT` cases we have.
Add a small test case that exhibits this behavior.
Fixes dotnet/coreclr#4571
Commit migrated from https://github.com/dotnet/coreclr/commit/
7cd8f70d30963df4aa85203ba5f39f41285b2cd3
Aditya Mandaleeka [Thu, 26 Jul 2018 23:04:13 +0000 (16:04 -0700)]
Merge pull request dotnet/coreclr#19153 from adityamandaleeka/fix_buildtest_help
Fix batch syntax error in help text
Commit migrated from https://github.com/dotnet/coreclr/commit/
e7c696cd18e648da4eeadc43fbc3e4ad3639eb7d
Aditya Mandaleeka [Thu, 26 Jul 2018 22:56:01 +0000 (15:56 -0700)]
Fix syntax error in help text.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c012d768bf7ae41d7cf1f8b18cb54701ecb7f28d
Sergey Andreenko [Thu, 26 Jul 2018 22:46:53 +0000 (15:46 -0700)]
reenable corefx System.Runtime.Tests on arm32 (dotnet/coreclr#19128)
dotnet/coreclr#17585 the issue was fixed long time ago, but this exclusion was forgotten.
Commit migrated from https://github.com/dotnet/coreclr/commit/
53eb0afc3d3e0f1adaeb00ac9e9bf1c0f5976302
Tanner Gooding [Fri, 20 Jul 2018 20:33:10 +0000 (13:33 -0700)]
Adding the Microsoft.NET.Sdk.IL pkgproj
Commit migrated from https://github.com/dotnet/coreclr/commit/
3077c95af36a074a8e00d45ebc576fa87520e536
Carol Eidt [Thu, 26 Jul 2018 20:44:47 +0000 (13:44 -0700)]
Include long shifts in OperIsShiftOrRotate
The register allocator uses `OperIsShiftOrRotate` as the assertion for the method that gets the kills for the class of instructions that use RCX as the shift amount register. Expand it to include `RSH_LO` and `LSH_HI`.
Fix dotnet/coreclr#19081
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f020204f27aa10f778f9e549e01c6717d939d47
Bruce Forstall [Thu, 26 Jul 2018 20:37:20 +0000 (13:37 -0700)]
Re-enable arm64 tests that no longer fail
Fixes dotnet/coreclr#13796, dotnet/coreclr#12549
Note that test GitHub_11408 is still disabled, now against issue dotnet/coreclr#11408.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7e1f53ff2a939cd5a9e6ec73cbada63db828dd72
Chris Sienkiewicz [Thu, 26 Jul 2018 16:57:19 +0000 (09:57 -0700)]
Switch to using MicrosoftNETCorePlatformsPackageVersion as the RuntimeFrameworkVersion parameter in the test wrappers and SDK props file (dotnet/coreclr#19130)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ccf735e789dff2c3fce183c599c192a79bf64752
Andon Andonov [Thu, 26 Jul 2018 02:10:17 +0000 (19:10 -0700)]
Update CoreFX documentation (dotnet/coreclr#19092)
* Update CoreFX documentation
* Add test binary refresh and parallelization sections
* Add test exclusion information
Commit migrated from https://github.com/dotnet/coreclr/commit/
e7d8e4dadbbf8c93b99eaffc66f2e3ef805a0c41
Chris Sienkiewicz [Wed, 25 Jul 2018 18:13:27 +0000 (11:13 -0700)]
Sdk test projects (dotnet/coreclr#19044)
Change the associated targets and props files in the test directory to allow the test csproj's to be built as SDK style projects alongside traditional style projects.
Remove CodeTaskFactory:
- Allows the projects to be built using the core version of msbuild/dotnet build
- Converted to using msbuild property expansion instead
Add directory.build.{props,targets}:
- Currently we just import the dirs.props and targets, but means SDK style projects don't need to explicitly include these files
- We probably want to move all projects over to using these in the future, but this keeps the changes smaller for now
Specific code for SDK projects:
- There are a several changes required to build an SDK project. This change guards them behind conditionals so that only the new style projects see them. When we get to the point that there are only new projects, we can remove the guards (probably at the same time as ditching the dir.props)
Reordered build targets:
- Because SDK projects implicitly import the build targets, we can no longer re-define the build targets unconditionally knowing they will likely be overwritten.
- Instead we move the overwritten targets to separate files, and include these conditionally based on properties. In this way there is always a build defined for SDK projects, which can then be overwritten to do nothing as needed.
Commit migrated from https://github.com/dotnet/coreclr/commit/
eddc1a621b66d63ac9feda289f08fc0e9f67f850
Tanner Gooding [Fri, 20 Jul 2018 18:07:30 +0000 (11:07 -0700)]
Removing duplicate CoreCLRTestLibrary project references
Commit migrated from https://github.com/dotnet/coreclr/commit/
2b92e13d9c015de34b12487131932410148ffb80
Tanner Gooding [Fri, 20 Jul 2018 17:52:21 +0000 (10:52 -0700)]
Regenerating the x86 HWIntrinsic templated tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
24323ada560f5e81d068b67e68250ead1626a7f8
Tanner Gooding [Fri, 20 Jul 2018 17:50:14 +0000 (10:50 -0700)]
Removing `Random random = new Random()` from the HWIntrinsic templates
Commit migrated from https://github.com/dotnet/coreclr/commit/
b945d37e9721612636dc7f1cf4b3cb82b6a3aecf
Tanner Gooding [Fri, 20 Jul 2018 17:47:47 +0000 (10:47 -0700)]
Realigning the HWIntrinsic template metadata tables
Commit migrated from https://github.com/dotnet/coreclr/commit/
494542c96f36009ed99200da3c5ca0a46b31edd2
Tanner Gooding [Fri, 20 Jul 2018 17:32:47 +0000 (10:32 -0700)]
Replacing usages of random with TestLibrary.Generator in the HWIntrinsic template metadata
Commit migrated from https://github.com/dotnet/coreclr/commit/
6093842bb9d279fbcb03c29b679e782bdef54b7f
Tanner Gooding [Fri, 20 Jul 2018 17:19:33 +0000 (10:19 -0700)]
Adding TestLibrary.Generator methods for unsigned types
Commit migrated from https://github.com/dotnet/coreclr/commit/
c7e0651e675d510c0575f27d084eb612dfdf0532
Mike McLaughlin [Tue, 24 Jul 2018 19:19:59 +0000 (12:19 -0700)]
Fix mscordbi metadata reader alignment bug on Linux. (dotnet/coreclr#19070)
Works fine on Windows minidumps, but on Linux (via OpenVirtualProcess
for production breakpoints and future core dumps) the compiler's struct
alignment rules are different. On Windows, classes/structs are aligned
based on the largest field. On Linux, they are 4 byte aligned regardless
of the field sizes.
https://github.com/dotnet/coreclr/issues/17692
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6ada167d7991b1ab6e1ea921c521a691610e269
Ilia [Tue, 24 Jul 2018 16:49:16 +0000 (19:49 +0300)]
Release leaked ICorProfilerCallback9 in ~EEToProfInterfaceImpl (dotnet/coreclr#19106)
Bug: 19093
Commit migrated from https://github.com/dotnet/coreclr/commit/
c72f69b878cc071b6bf9b9c0764159b48be8a8ee
Bruce Forstall [Tue, 24 Jul 2018 15:29:07 +0000 (08:29 -0700)]
Merge pull request dotnet/coreclr#19099 from BruceForstall/Arm64DebugBuild
Change Windows arm32/arm64 Debug normal/innerloop jobs to NOT run tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
aab9e4b6aedd3edf76d65e9ca06f97470f301cbb
Russ Keldorph [Tue, 24 Jul 2018 15:25:59 +0000 (08:25 -0700)]
Revert "Revert "Fix some failures when using build-test.sh"" (dotnet/coreclr#18919)
This reverts commit dotnet/coreclr@
184c3504e763ea7147505a8d49cb54b43cc82d78.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0acd4c8fcc26c633c32cf1105b38edeee1d6cc63
Sven Boemer [Tue, 24 Jul 2018 15:22:31 +0000 (08:22 -0700)]
Work around cmd command length limit in xunit Exec task (dotnet/coreclr#19095)
On Windows, the Exec task passes the command to cmd, so long commands
run into the command length limit (see
https://github.com/Microsoft/msbuild/issues/2530). This workaround
shortens the xunit command line by replacing the path to the test
binary directory with an environment variable.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad4df07bf2ea70334ada357d1240099e61b1d170
Aaron Robinson [Tue, 24 Jul 2018 01:40:17 +0000 (18:40 -0700)]
Add root MSBuild targets for Interop managed test assets (dotnet/coreclr#19069)
Add root CMake file for Interop native test assets
Commit migrated from https://github.com/dotnet/coreclr/commit/
40286fc32e89c9eeda8b97d74cf0fb887469298b
Bruce Forstall [Mon, 23 Jul 2018 23:20:26 +0000 (16:20 -0700)]
Change Windows arm32/arm64 Debug normal/innerloop jobs to NOT run tests
We don't want these Debug jobs to run tests, because Debug testing is
slow, and we have few machine resources. It's a bit of a bug that we
are currently running tests, because the job is named with "Build", not
"Build and Test".
So make it do what the name says: Debug normal/innerloop arm32/arm64 jobs
will not run tests.
This is asymmetric, unfortunately. I might prefer that the Debug jobs get
generated as "Build and Test", but just not be triggered. (But be available
for triggering.) Or perhaps just not get generated. That might require a
separate set of just "Build" jobs that could be useful in some scenarios,
such as for what the current Debug "Build" only jobs are currently used for.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6ca477caa0e55c3ed722f991d10933ba4409fcdc
Egor Chesakov [Mon, 23 Jul 2018 21:15:07 +0000 (14:15 -0700)]
Add missing FlushInstructionCache to Thread::CommitGCStressInstructionUpdate (dotnet/coreclr#18784)
Commit migrated from https://github.com/dotnet/coreclr/commit/
51c390f3d009e36a72ca0b1e8b90a4d14a395ff9
Egor Chesakov [Mon, 23 Jul 2018 21:13:20 +0000 (14:13 -0700)]
Disable tests failing on ARM32 in https://github.com/dotnet/coreclr/pull/18784 (dotnet/coreclr#19087)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c1f91004fe5caeb77c0dc37484102308b03b74a
Amy [Mon, 23 Jul 2018 20:35:57 +0000 (13:35 -0700)]
R2RDump - UnwindInfo for x86 (dotnet/coreclr#18994)
* UnwindInfo for x86
* Update tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
53e07bfd459df597f833bb3ac8673aadb247a253
mikedn [Mon, 23 Jul 2018 19:21:34 +0000 (22:21 +0300)]
Change gtExtractSideEffList to use GenTreeVisitor (dotnet/coreclr#18257)
* Change gtExtractSideEffList to use GenTreeVisitor
The tree traversal logic in gtExtractSideEffList is basically an incomplete duplicate of GenTreeVisitor's traversal logic. It lacks handling for GT_ARR_ELEM and GT_ARR_OFFSET so if this are encountered any side effects their children may have are silently dropped.
In addition, side effect ordering was not always preserved. The comma list is built by prepending nodes to it so side effects have to be visited in reverse execution order. The old code did this only for simple opers, for special nodes such as GT_ARR_BOUNDS_CHECK normal execution order was used.
This actually complicates a bit the GenTreeVisitor implementation as side effects need to be first stored in an array. The number of side effects is usually small (<= 4) so this shouldn't be a problem.
* Use GTF_SIDE_EFFECT in optPrepareTreeForReplacement
Assertion propagation doesn't have any way to ensure that it is safe to remove class constructor calls so GTF_PERSISTENT_SIDE_EFFECTS_IN_CSE should not be used here.
Likewise, GTF_EXCEPT side effects must be preserved as well. VN doesn't always propagate exceptions so it's possible to end up with a tree that has a constant VN and contains exception side effects.
* Add tests for 18232
* CR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f28125ad1f9975fbe68dd6839908aa6e63fc43b
Jan Kotas [Mon, 23 Jul 2018 19:17:56 +0000 (12:17 -0700)]
Partial R2R IBC fixes (dotnet/coreclr#19073)
* Partial R2R IBC fixes
- Log use method code access in all cases, not just when the method is JITed
- Add workaround for CONTRACT_VIOLATION that shows up in checked builds when collecting IBC data
- Make /ReadyToRun switch work for CoreLib
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c7a59efa088c2043ec57d7449f9f11dc96a395e
Andy Ayers [Mon, 23 Jul 2018 18:47:17 +0000 (11:47 -0700)]
JIT: some lclvars related cleanup (dotnet/coreclr#19077)
Consolidate various compiler globals used when setting local var ref
counts by folding them into the visitor:
* lvaMarkRefsCurBlock
* lvaMarkRefsCurStmt
* lvaMarkRefsWeight
Remove the largely vestigial `lvPrefReg` and associated methods to set
or modify this field. Haven't verified but this is likely a remmant of
the legacy backend.
In the one remaning use (lcl var sorting predicates), swap in `lvIsRegArg`
instead, which gets most of the same cases.
Commit migrated from https://github.com/dotnet/coreclr/commit/
456d22753b62b5e46b61fa13bef75847229d30ca
Aaron Robinson [Mon, 23 Jul 2018 10:30:57 +0000 (03:30 -0700)]
Remove hosthook api (dotnet/coreclr#19079)
* Remove CallNeedsHostHook() API
* Remove IsHostHookEnabled() API and with it related dead code
* Remove code enabling host hooks (i.e. COMPlus_GenerateStubForHost)
Remove function declarations for creating host hooks
Update comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
92d2c4bde42569d2aa22e44550d69f7d743bf9a0
Sung Yoon Whang [Mon, 23 Jul 2018 03:56:42 +0000 (20:56 -0700)]
Enable profiler attach on Windows (dotnet/coreclr#18762)
* try building clr with prof attach enabled
* define ICLRProfiling interface
* profattach.dll now builds with CreateCLRProfiling export
* remove try catch
* basic attach working now
* build with profiler attach feature only on win
* Fix linux build
* cleanup
* more cleanup
* more cleanup
* remove profattach dll
* remove useless unix exports in mscorwks
* remove profattach from dll cmakelist
* Add back ifdef
* cleanup
* change LINUX to UNIX in clrdefinitions
* Fix broken checked builds
* Remove CLRProfilingClassFactory and metadata.h include from profattach.cpp
* remove useless extern C
* Add this back in
* adding ifndef DACCESS_COMPILE
* Try building with FWD define ICLRProfiling interface
* Test commit - removing additional definition from metahost.h to see if this will pass CI runs
* Address pr comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
cc96914f80b6873c555d0ed377042537ef99f1af
Andy Ayers [Sun, 22 Jul 2018 16:12:10 +0000 (09:12 -0700)]
JIT: stateful local ref counts and weights (dotnet/coreclr#19068)
Introduce a notion of state for local var ref counts and weighted ref counts.
Accesses and current state must agree.
State is invalid initially, enabled for an early period around bits of morph,
invalid again for a time, and then enabled normally once lvaMarkRefs is called.
Accesses normally specify RCS_NORMAL as the desired state, but in the accesses
of selected ref counts in morph, specify RCS_EARLY.
Revise how we decide if normal ref counting is active by changing
`lvaLocalVarRefCounted` into a method.
Update `gtIsLikelyRegVar` to not access ref counts when they're not in a valid
state.
Change weight APIs over to use `weight_t`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
45f1ec9c4d91733c76868870ff85f2beafabdd39
Bruce Forstall [Sat, 21 Jul 2018 00:08:51 +0000 (17:08 -0700)]
Merge pull request dotnet/coreclr#19049 from acmyu/issue19030
R2RDump - Skip R2RDumpTests in crossgen tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
e9595bec6df5fbfc9fb8be811f51418c3b9cf945
Carol Eidt [Fri, 20 Jul 2018 23:17:04 +0000 (16:17 -0700)]
Merge pull request dotnet/coreclr#19067 from CarolEidt/FixStructRefCnt
Remove incRefCnt from fgMakeOutgoingStructArgCopy
Commit migrated from https://github.com/dotnet/coreclr/commit/
7df363ab08c1b21e18f68d95724c9172d30adbee
Brian Sullivan [Fri, 20 Jul 2018 22:36:25 +0000 (15:36 -0700)]
Merge pull request dotnet/coreclr#19065 from briansull/fix_19022
The SIMD types must use the struct code path - Fixes issue 19022
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e452bc254f216ad0e57976b9a55196ef3948214
Eugene Rozenfeld [Fri, 20 Jul 2018 22:35:47 +0000 (15:35 -0700)]
Improve narrowing of GT_AND nodes. (dotnet/coreclr#18995)
This is a follow-up to to dotnet/coreclr#18816 which resulted in a 6 byte regression in one of the
desktop SuperPMI methods. This change removes that regression and adds a number
of improved diffs.
If we are narrowing GT_AND to an unsigned type and one of the operands can be narrowed
into that type, the result of the GT_AND will also fit into that type and can be narrowed.
The same is true if one of the operands is an int const and can be narrowed into 'dsst'.
The change also ensures that we don't call optNarrowTree(false) more than once on each of the
GT_AND operands.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad09b5820b4aaf40033d930c4b64a89a78ddb556
Aaron Robinson [Fri, 20 Jul 2018 22:27:28 +0000 (15:27 -0700)]
Update documentation for testing (dotnet/coreclr#19063)
* Update documentation for testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
2556ad964c040e6afb849f7a89da426cd7bbe9bf
Andy Ayers [Fri, 20 Jul 2018 21:56:09 +0000 (14:56 -0700)]
JIT: handle implicit local var references via local var attribute bit (dotnet/coreclr#19012)
Instead of relying on ref count bumps, add a new attribute bit to local
vars to indicate that they may have implicit references (prolog, epilog,
gc, eh) and may not have any IR references.
Use this attribute bit to ensure that the ref count and weighted ref count for
such variables are never reported as zero, and as a result that these variables
end up being allocated and reportable.
This is another preparatory step for dotnet/coreclr#18969 and frees the jit to recompute
explicit ref counts via an IR scan without having to special case the counts
for these variables.
The jit can no longer describe implicit counts other than 1 and implicit weights
otehr than BB_UNITY_WEIGHT, but that currently doesn't seem to be very important.
The new bit fits into an existing padding void so LclVarDsc remains at 128 bytes
(for windows x64).
Commit migrated from https://github.com/dotnet/coreclr/commit/
699028a7a033991f01a72211a88a534ef1360c3a
Stephen Toub [Fri, 20 Jul 2018 21:11:24 +0000 (17:11 -0400)]
Fix unnnecessary reference to DateTimeFormatInfo.DecimalSeparator (dotnet/coreclr#19064)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c98addeee64e0bca467079c7e9b9c359818f144c
dotnet-maestro-bot [Fri, 20 Jul 2018 12:47:21 +0000 (05:47 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-03020-01, preview1-26720-05, preview1-26720-01, master-
20180720-0221, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc04b40516f1ce3314235a139c5bb5cc89134a0a
Aaron Robinson [Fri, 20 Jul 2018 20:07:25 +0000 (13:07 -0700)]
Disable manual COM registration logic on ARM32 (dotnet/coreclr#19042)
* Add advapi32.lib to the list of libs to link against on ARM.
Remove conditional build on ARM in source.
* Manually edit ARM and ARM64 test lists.
Commit migrated from https://github.com/dotnet/coreclr/commit/
af0b442c17fe3a9a95370e506a36ce72ee99ea80
Konstantin Baladurin [Fri, 20 Jul 2018 18:19:08 +0000 (21:19 +0300)]
Zapper::CompileAssembly: save NI file atomically (dotnet/coreclr#19059)
It can get rid of possible problems with corrupted NI files if crossgen
will be killed during image saving.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8cd25f88635fbb2e05fcc8299ef537852db9264b
Carol Eidt [Fri, 20 Jul 2018 14:24:39 +0000 (07:24 -0700)]
Remove incRefCnt from fgMakeOutgoingStructArgCopy
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9135bff6b6978904011c287cedb64ee5f7d1a3a
Carol Eidt [Fri, 20 Jul 2018 14:20:05 +0000 (07:20 -0700)]
Merge pull request dotnet/coreclr#19040 from CarolEidt/DiffFix
JitDump improvements
Commit migrated from https://github.com/dotnet/coreclr/commit/
b896dd14830b600043a99c2626ea848ad679fb4f
Gleb Balykov [Fri, 20 Jul 2018 14:13:49 +0000 (17:13 +0300)]
Add Tizen 5.0 RID (dotnet/coreclr#19057)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a475cda69c51fbe3620ffc65e89b7f8c5665fb98
Stephen Toub [Fri, 20 Jul 2018 10:56:57 +0000 (03:56 -0700)]
Improve throughput of TimeSpan.ToString/TryFormat with "g"/"G" (dotnet/coreclr#19051)
* Improve throughput of TimeSpan.ToString/TryFormat with "g"/"G"
TimeSpan has three standard formats: "c", "g", and "G". Yesterday I updated its implementation with throughput improvements for "c" (the default) based on porting the design from Utf8Formatter; this PR does so for "g"/"G".
Initially I wasn't going to handle "g"/"G" as they factor in culture (Utf8Formatter doesn't), but even with accessing the current culture there are still significant wins to be had. I was also going to keep the "c" and "g"/"G" implementations separate, to avoid bogging down the default "c" formatting with additional conditions needed to support "g"/"G", but the overhead incurred for that turns out to be minimal enough that it's worth keeping one implementation rather than two mostly-similar ones... the impact on "c" is mostly within noise.
This PR makes a significant throughput improvement for "g"/"G" formatting. It also removes several unnecessary allocations, such that TryFormat with "g"/"G" is now allocation-free (and ToString just allocates the asked-for string).
* Address PR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
6860d110a843e882357d82d2a72205343339b11b
Aaron Robinson [Fri, 20 Jul 2018 07:48:07 +0000 (00:48 -0700)]
Minor interop code changes (dotnet/coreclr#19005)
* Remove SpecialIsGenericTypeVisibleFromCom() from header file
* Clean up if check resulting from remoting code removal
Commit migrated from https://github.com/dotnet/coreclr/commit/
799b2a30a685a739d59a22b26b50e5da8616446f
Phil Garcia [Fri, 20 Jul 2018 07:28:39 +0000 (00:28 -0700)]
Fixed missing readonly attribute (dotnet/coreclr#19052)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a47b71f541ae7102a293c64c03853b182f17e0ed
Aaron Robinson [Fri, 20 Jul 2018 02:42:48 +0000 (19:42 -0700)]
Add issues with COM tests in the helix build. (dotnet/coreclr#19047)
Presently COM tests does not appear to run properly on Windows.Nano but
there is no way to special case that OS so disabling them on all builds.
Commit migrated from https://github.com/dotnet/coreclr/commit/
524ae00b8c268f092614f85a77b81bb854875da4
Amy Yu [Fri, 20 Jul 2018 00:01:50 +0000 (17:01 -0700)]
Skip R2RDumpTests in crossgen tests, test unsupported on ARM
Commit migrated from https://github.com/dotnet/coreclr/commit/
72f7c872baa3dc698330cebfcbd75656bd1d4a06
Brian Sullivan [Fri, 20 Jul 2018 00:56:34 +0000 (17:56 -0700)]
Fixes issue 19022
The SIMD types need to use the struct path when we are building
the zero-initializations in fgMorphRecursiveFastTailCallIntoLoop
Commit migrated from https://github.com/dotnet/coreclr/commit/
47c14791537dde3df844f17a4b0adb167057f08c
Tanner Gooding [Thu, 19 Jul 2018 19:16:06 +0000 (12:16 -0700)]
Removing WINCORESYS usages from the test projects
Commit migrated from https://github.com/dotnet/coreclr/commit/
21ade50e57e1f61fb7a1a4970adba12d72ec72f7
Noah Falk [Thu, 19 Jul 2018 23:36:34 +0000 (16:36 -0700)]
Enable the no tiered compilation innerloop PR legs (dotnet/coreclr#18953)
Enable the no tiered compilation innerloop PR legs
Commit migrated from https://github.com/dotnet/coreclr/commit/
f7ecbeb7211f0eed7af22943ebf3c51f865fccca
Tanner Gooding [Thu, 19 Jul 2018 18:30:24 +0000 (11:30 -0700)]
Adding a project reference for CoreCLRTestLibrary to the hwintrinsic test dir.props
Commit migrated from https://github.com/dotnet/coreclr/commit/
6d05402d6017aa754a8ce216b05d9f40cb8d6643
Tanner Gooding [Thu, 19 Jul 2018 18:00:46 +0000 (11:00 -0700)]
Regenerating the HWIntrinsic tests from the updated templates
Commit migrated from https://github.com/dotnet/coreclr/commit/
4f13c55f4c35e0e74e10e06e84a0ecb45ca4ea16
Tanner Gooding [Thu, 19 Jul 2018 17:30:32 +0000 (10:30 -0700)]
Updating the templated HWIntrinsic tests to use `TestLibrary.TestFramework` for logging.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d8e4dbbeb497ac0ab15fb67874979f2b254a7286
Sven Boemer [Thu, 19 Jul 2018 20:44:16 +0000 (13:44 -0700)]
Build xunit wrappers the same way on windows and unix (dotnet/coreclr#18695)
* Initial change to allow build wrappers and runtest.py
* Build xunit wrappers on unix
The generated wrapper needs to target netcoreapp on unix. I had to
exclude assets from the xunit package and introduce a dependency on
the private corefx bits, to resolve a dependency conflict in which the
generated wrapper was depending on an older System.Runtime.dll than
the helper library.
I also disabled binclash logging, because the wrapper build binplaces
the helper library to the same location multiple times. I couldn't
find a simple way to disable binclash logging for the wrapper build
only, since that requires passing an empty switch to run.exe, and bash
word splitting makes this nontrivial from build-test.
* Correctly generate TestEnv xplat
Note that this will still require changes to the test wrapper
to actually source the TestEnv on unix
* Build xunit wrappers using SDK
* Target netcoreapp2.0 in xunit wrappers
This way, the wrappers can build even if the 2.1 SDK isn't installed on
the machine.
* Restore to packages directory for xunit wrappers
* Move common properties out to dir.common.props
When building wrappers using the SDK, we need some basic
properties (like the build os/arch/config, and the output directories)
to be set. I factored out properties used by both the old test build
and the new SDK-project test build.
At first I tried using Directory.Build.props (which is automatically
imported by the SDK), but our test build already imports SDK targets
in various places, so this was resulting in duplicate
imports. Instead, I used dir.common.props, and made the imports
explicit.
* Remove desktop-specific test wrapper csproj
* Pass build os/arch/type and logsdir to msbuild from runtest.py
* Remove xunit wrapper helper library from traversal build
* Fix parameter passing in build-test.sh
Use bash arrays to pass parameters for the build command. This makes
it possible to pass arguments with spaces to build_Tests_internal. We
use this to disable binclashlogging selectively (for the xunit wrapper
build only).
* Clean up factored .props files
* Undo runtest.sh changes
* Use latest xunit console runner everywhere
* Remove extra StaticDependency on xunit.runner.console
* Eliminate tests/src/dir.common.props, and rename dir.sdkbuild.props
tests/src/dir.common.props was only used for the desktop-specific
xunit wrapper helper library. There's no need for it any more, so its
properties have been moved into tests/src/dir.props.
dir.sdkbuild.props has been renamed to dir.common.props, since it
contains properties used by SDK projects and buildtools projects.
This change also re-enables the test build.
* Reintroduce dir.sdkbuild.props as a place for SDK-only props
With this, some properties shared by SDK projects can go in a global
location. The TargetFramework is shared by all SDK projects in the
test tree.
This change also uses a property for the xunit package directory that
contains the xunit.console.dll we copy to core_root.
* Add xml namespace to dir.common.props
This fixes a failure in the windows build.
* Satisfy xunit analyzer
* Satisfy xunit analyzer again
* Use SDK msbuild to build wrappers
On windows, the use of run.exe, config.json, and msbuild.cmd uses
msbuild.exe on the path. This change will build wrappers using the
local SDK via "dotnet msbuild", bypassing run.exe. Run.exe will go
away entirely with the move from buildtools to arcade, so other build
invocatios should follow suit.
* Remove Microsoft.CSharp.Core.targets workaround
UseBuildTools used to be true all the time. Now that we are building
wrappers on core, UseBuildTools becomes false. However, the rest of
the runtest.proj expects to build using buildtools, so we keep
UseBuildTools true until we switch to arcade.
The CSharpCoreTargetsPath was imported when running on core only. This
used to happen only on unix, but now it also happens when building
runtest.proj for the xunit wrappers on windows. On unix, this targets
file was a symlink to itself to work around some buildtools logic that
expected the file to exist. This workaround no longer appears
necessary, and on windows, this was never used in the first place, so
this change removes it.
* Remove UseRoslynCompilers prop and unify roslyn import
UseRoslynCompilers was introduced in buildtools by
https://github.com/dotnet/buildtools/pull/947, with different
behaviors on windows/unix. It was removed by
https://github.com/dotnet/buildtools/pull/1974, so we can unify our
roslyn imports now.
* Don't copy xunit dlls to corefx test host
The corefx tests run on specific versions of xunit dlls, defined in
CoreFX.depproj. We want to use these versions in the test host, not
those in CORE_ROOT, so exclude these from being copied to the test host
directory. This fixes the failing corefx tests.
* Don't pass run.exe arguments through build-test.cmd in test pipeline
These arguments get passed along to the xunit wrapper build as
unprocessed build args. They need to work for "dotnet msbuild" (used
for the wrapper build) as well as for run.exe.
* Fix parameter passing of priority arg in build-test.cmd
UnprocessedBuildArgs should contain arguments in the format expected by
msbuild, not by run.exe.
* Fix parameter passing of unprocessed args in build-test.cmd
The "--" syntax is used by run.exe to pass everything following to
msbuild directly. It should not be a part of unprocessed args.
* Pass TargetsWindowsArg to wrapper build in build-test.cmd
Helix builds tests on windows and runs them on unix using the xunit
wrappers. When cross-building the wrappers like this, TargetsWindows
is set to false by the test build pipeline. This variable ensures that
the wrapper uses correct directory separators when invoking the test
.sh file.
* Pass BuildTestsAgainstPackages arg to exclude unix tests
Helix builds xunit wrappers on windows, and runs them on unix. The
BuildTestsAgainstPackages should currently be set to true in the
windows wrapper build to properly filter the .cmd files based on
exclusions in issues.targets.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5f9a3456abcfdea5d886fededaa0265c80281ed
Jan Kotas [Wed, 18 Jul 2018 21:02:13 +0000 (14:02 -0700)]
Fix desktop build break
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
f26b8eea691d51332b2bd46ff32643f235c8ab14
Carol Eidt [Thu, 19 Jul 2018 19:11:20 +0000 (12:11 -0700)]
JitDump improvements
- Reduce the size of "diffable" values (I've been encountering a number of diffs on x86; 2 bits seems to take care of it)
- Dump a note when we start morphing args for a call.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c9930680ea01fe86ce8815f51530b6a0ab810b5b
Carol Eidt [Thu, 19 Jul 2018 18:08:33 +0000 (11:08 -0700)]
Merge pull request dotnet/coreclr#18999 from CarolEidt/Fix16359
Arm64: Fix handling of IP0 & IP1
Commit migrated from https://github.com/dotnet/coreclr/commit/
f52752659c90c912af263b378d50e0dd0dcaf120
Bruce Forstall [Thu, 19 Jul 2018 18:04:49 +0000 (11:04 -0700)]
Merge pull request dotnet/coreclr#19032 from BruceForstall/DisableR2rDumpTestForJitStress
Disable r2rdump test for JIT stress currently
Commit migrated from https://github.com/dotnet/coreclr/commit/
04fb905d7168740b1787594b5e46a18639e931d3
Bruce Forstall [Thu, 19 Jul 2018 17:10:02 +0000 (10:10 -0700)]
Disable r2rdump test for JIT stress currently
Tracked by issue dotnet/coreclr#19011
Commit migrated from https://github.com/dotnet/coreclr/commit/
750603fec4ec656fe9f51b8b601e9f6d28b12159
Bruce Forstall [Thu, 19 Jul 2018 16:02:24 +0000 (09:02 -0700)]
Merge pull request dotnet/coreclr#19004 from BruceForstall/FixX86UbuntuJobs
Disable failing Ubuntu x86 jobs
Commit migrated from https://github.com/dotnet/coreclr/commit/
2ce5c5b8f290f7a7485968a3639e9ff4412fa203
Kai Ruhnau [Thu, 19 Jul 2018 15:41:15 +0000 (17:41 +0200)]
Use mcontext_t instead of sigcontext (dotnet/coreclr#18983)
The type of uc_mcontext has always been `mcontext_t`, but earlier versions of Glibc just typedef'ed this to `sigcontext`.
Newer versions of Glibc (since 2.27) [introduced an explicit struct type](https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=sysdeps/unix/sysv/linux/arm/sys/ucontext.h;h=dotnet/coreclr@
192d1bdeac3e62e13110f68614f7af624047c3a9;hp=dotnet/coreclr@
2abceef2a4ca9bbb6e42208eaee548228b041e5b;hb=dotnet/coreclr@
4fa9b3bfe6759c82beb4b043a54a3598ca467289;hpb=dotnet/coreclr@
5898f4548efdcd7c0fd437a74eeb80facc51a117) and now compilation fails.
Commit migrated from https://github.com/dotnet/coreclr/commit/
07c4acd51410ff075ebfca4a202e721f50065333
Jan Kotas [Thu, 19 Jul 2018 15:29:36 +0000 (08:29 -0700)]
Add MemoryMarshal.AsRef implementation (dotnet/coreclr#19021)
Contributes to https://github.com/dotnet/corefx/issues/30613
Commit migrated from https://github.com/dotnet/coreclr/commit/
660d90405f322b0290170d1f947e53da484d81ad
sunnycase [Thu, 19 Jul 2018 08:05:40 +0000 (16:05 +0800)]
Fix opinfo: InlineR should only read 8 bytes (dotnet/coreclr#18801)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c7b1a09a2e59c2a46792207e69c60676a9377a34
Noah Falk [Thu, 19 Jul 2018 07:28:31 +0000 (00:28 -0700)]
Eliminate arm64 contract asserts (dotnet/coreclr#19015)
These methods don't trigger GC but were previously marked as if they did. Correcting the marking will eliminate spurious asserts.
Commit migrated from https://github.com/dotnet/coreclr/commit/
586bae99632880e9fa635a10d42002c82c72022e
dotnet-maestro-bot [Thu, 19 Jul 2018 07:16:55 +0000 (00:16 -0700)]
Update CoreClr to preview1-26719-01 (dotnet/coreclr#19016)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a1c4e49d84f02ecc13a5b6efa1a36d1a59cf05cb
Hugh Bellamy [Thu, 19 Jul 2018 03:29:30 +0000 (04:29 +0100)]
Implement GetComObjectData and SetComObjectData (dotnet/coreclr#18900)
* Cleanup Marshal.cs
* Cleanup __ComObject
* Implement GetComObjectData and SetComObjectData
* Build fixes
* PR feedback and more marshal cleanup
* More feedback
* Disable corefx tests
* Address PR feedback
* Fix build breaking typo
* Test disable
Commit migrated from https://github.com/dotnet/coreclr/commit/
e755679c4984895d452f943641a9c6f24827874d
Aaron Robinson [Thu, 19 Jul 2018 00:52:02 +0000 (17:52 -0700)]
Basic .NET client tests (dotnet/coreclr#18843)
- Add support for a testing primitive marshalling with a native COM server
and .NET client. This uses RegFree COM for activation.
- Remove ClassicCOM tests
- Bring back tests for activation via reflection
Commit migrated from https://github.com/dotnet/coreclr/commit/
f37214ab432e192178ada2d202328f5fd8884cff
Bruce Forstall [Wed, 18 Jul 2018 23:33:54 +0000 (16:33 -0700)]
Disable failing Ubuntu x86 jobs
Also add a minimal fix that fixes a current problem, but isn't
expected to help fix the entire issue.
Failures tracked by https://github.com/dotnet/coreclr/issues/19003.
Commit migrated from https://github.com/dotnet/coreclr/commit/
13386b86dc85cc33bafd44ad5b981fc7185e5989
Stephen Toub [Wed, 18 Jul 2018 23:10:42 +0000 (16:10 -0700)]
Improve TimeSpan.ToString/TryFormat throughput for default format (dotnet/coreclr#18990)
Commit migrated from https://github.com/dotnet/coreclr/commit/
965ad0c79743d05f336ec0c049f3b00b6dcac0da
Jakob Botsch Nielsen [Wed, 18 Jul 2018 22:57:17 +0000 (00:57 +0200)]
Properly type morphed NEG nodes (dotnet/coreclr#18837)
* Properly type optimized NEG nodes
When the JIT was morphing trees like '-1 * expr', it would turn the
multiplication into a NEG node with the same type as its right operand.
This is a problem when the right operand was a small type like TYP_UBYTE
because the NEG node always produces a widened result. This could cause
problems when the negation was fed into something that depended on the
type, such as a cast to TYP_UBYTE: here the JIT would conclude that the
cast could be dropped, and end up producing a widened result.
The solution is to give the tree the actual type of the NEG node.
Also add a test for this case and for a similar case of '0 - expr',
which already had a fix.
Fix dotnet/coreclr#18780
* Address PR feedback
* Clarify comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
c06c61ab4d8c8d1b212fc7e9a9a130c63d47ed44
Andy Ayers [Wed, 18 Jul 2018 21:35:08 +0000 (14:35 -0700)]
JIT: force all local var ref counts to be accessed via API (dotnet/coreclr#18979)
This is a preparatory change for auditing and controlling how local
variable ref counts are observed and manipulated.
See dotnet/coreclr#18969 for context.
No diffs seen locally. No TP impact expected.
There is a small chance we may see some asserts in broader testing
as there were places in original code where local ref counts were
incremented without checking for possible overflows. The new APIs
will assert for overflow cases.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2842bbef5162383f7bf67de2976f2c21dbfdb1d
dotnet-maestro-bot [Wed, 18 Jul 2018 20:46:37 +0000 (13:46 -0700)]
Update CoreClr, PgoData to preview1-26718-05, master-
20180718-0214, respectively (dotnet/coreclr#18978)
Commit migrated from https://github.com/dotnet/coreclr/commit/
4037baf5675ec275c624395ef2b0337cf58836cd