platform/upstream/dotnet/runtime.git
6 years agoRemoving WINCORESYS usages from the test projects
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

6 years agoEnable the no tiered compilation innerloop PR legs (dotnet/coreclr#18953)
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

6 years agoAdding a project reference for CoreCLRTestLibrary to the hwintrinsic test dir.props
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

6 years agoRegenerating the HWIntrinsic tests from the updated templates
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

6 years agoUpdating the templated HWIntrinsic tests to use `TestLibrary.TestFramework` for logging.
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

6 years agoBuild xunit wrappers the same way on windows and unix (dotnet/coreclr#18695)
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

6 years agoFix desktop build break
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

6 years agoMerge pull request dotnet/coreclr#18999 from CarolEidt/Fix16359
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

6 years agoMerge pull request dotnet/coreclr#19032 from BruceForstall/DisableR2rDumpTestForJitStress
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

6 years agoDisable r2rdump test for JIT stress currently
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

6 years agoMerge pull request dotnet/coreclr#19004 from BruceForstall/FixX86UbuntuJobs
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

6 years agoUse mcontext_t instead of sigcontext (dotnet/coreclr#18983)
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

6 years agoAdd MemoryMarshal.AsRef implementation (dotnet/coreclr#19021)
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

6 years agoFix opinfo: InlineR should only read 8 bytes (dotnet/coreclr#18801)
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

6 years agoEliminate arm64 contract asserts (dotnet/coreclr#19015)
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

6 years agoUpdate CoreClr to preview1-26719-01 (dotnet/coreclr#19016)
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

6 years agoImplement GetComObjectData and SetComObjectData (dotnet/coreclr#18900)
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

6 years agoBasic .NET client tests (dotnet/coreclr#18843)
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

6 years agoDisable failing Ubuntu x86 jobs
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

6 years agoImprove TimeSpan.ToString/TryFormat throughput for default format (dotnet/coreclr...
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

6 years agoProperly type morphed NEG nodes (dotnet/coreclr#18837)
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

6 years agoJIT: force all local var ref counts to be accessed via API (dotnet/coreclr#18979)
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

6 years agoUpdate CoreClr, PgoData to preview1-26718-05, master-20180718-0214, respectively...
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

6 years agoArm64: Fix handling of IP0 & IP1
Carol Eidt [Wed, 18 Jul 2018 20:41:59 +0000 (13:41 -0700)]
Arm64: Fix handling of IP0 & IP1

These are sometimes mandated to be allocated to certain nodes, but they were not in the list of allocatable registers (REG_VAR_ORDER). This led to special handling in LSRA, which, it turns out, was incomplete. This resulted in failures for JitStressRegs=0x200.
Based on the discussion in dotnet/coreclr#14607, this adds IP0 to RBM_CALLEE_TRASH_NOGC, and fixes the REG_VAR_ORDER.

Fix dotnet/coreclr#14607, Fix dotnet/coreclr#16359, Fix dotnet/coreclr#17861

Commit migrated from https://github.com/dotnet/coreclr/commit/6e7e087daeba074c93ee1825d38246a18e276f04

6 years agoMerge pull request dotnet/coreclr#18970 from BruceForstall/FixAltjitCorefxTests
Bruce Forstall [Wed, 18 Jul 2018 19:29:21 +0000 (12:29 -0700)]
Merge pull request dotnet/coreclr#18970 from BruceForstall/FixAltjitCorefxTests

Fix corefx altjit test jobs

Commit migrated from https://github.com/dotnet/coreclr/commit/d7b079479182b0f69fafa61e8b223cd4a5e01bbb

6 years agoR2RDump - Test infrastructure (dotnet/coreclr#18745)
Amy [Wed, 18 Jul 2018 19:26:36 +0000 (12:26 -0700)]
R2RDump - Test infrastructure (dotnet/coreclr#18745)

* Test infrastructure for R2RDump, compare xml and output diff

* Add R2RDumpTest to build-tests

* Fix errors causing tests to fail

* Create XUnitWrapper for R2RDumpTest

* Generate readytorun binaries from source code, copy expected xml output files to executable's directory

* Test R2RDump through commandline instead of calling R2RDump functions

* Fix errors

* Prevent duplicate xml tags

* Read test xml from string instead of file

* Fix test bugs

* Call dotnet r2rdump from msbuild

* Fix errors

* Use right slash for paths in bash

* Use different expected xml for different architectures

* R2RDumpTests for non-Windows

* Add more test cases

* Fix errors

* Supress warnings, avoid error when parsing x86 images

* Add license headers

Commit migrated from https://github.com/dotnet/coreclr/commit/eb622bef3851f8858db8d365454f1345e270dcd8

6 years agoRevert "Improve narrowing of GT_AND nodes. (dotnet/coreclr#18916)" (dotnet/coreclr...
Jan Kotas [Wed, 18 Jul 2018 19:00:42 +0000 (12:00 -0700)]
Revert "Improve narrowing of GT_AND nodes. (dotnet/coreclr#18916)" (dotnet/coreclr#18975)

This reverts commit dotnet/coreclr@c0bad3c66218f61dd3e4f151b9d2eae22c6d88d2.

Commit migrated from https://github.com/dotnet/coreclr/commit/8c505071956fdf574a4ad925b0238750ce5e931e

6 years agoUse FD_CLOEXEC instead of 1. (dotnet/coreclr#18976)
Jay Krell [Wed, 18 Jul 2018 19:00:19 +0000 (12:00 -0700)]
Use FD_CLOEXEC instead of 1. (dotnet/coreclr#18976)

Commit migrated from https://github.com/dotnet/coreclr/commit/3c1e90c1bbd7d701f0257ed2a8de02025055d9fc

6 years agoMerge pull request dotnet/coreclr#18941 from CarolEidt/Fix18884
Carol Eidt [Wed, 18 Jul 2018 18:01:46 +0000 (11:01 -0700)]
Merge pull request dotnet/coreclr#18941 from CarolEidt/Fix18884

Kill RCX when used by shift

Commit migrated from https://github.com/dotnet/coreclr/commit/394341afe705377db0c194cee2bd0ad9bd22585b

6 years agoUse api-set instead of combase.dll (dotnet/coreclr#18981)
Jan Kotas [Wed, 18 Jul 2018 17:42:00 +0000 (10:42 -0700)]
Use api-set instead of combase.dll (dotnet/coreclr#18981)

Commit migrated from https://github.com/dotnet/coreclr/commit/63cbbaf3810e0268d80a5f2d3d55145b7b599c3d

6 years agoRemove unuseful null check on Activator.CreateInstance (dotnet/coreclr#18806)
Marco Rossignoli [Wed, 18 Jul 2018 10:43:02 +0000 (12:43 +0200)]
Remove unuseful null check on Activator.CreateInstance (dotnet/coreclr#18806)

Commit migrated from https://github.com/dotnet/coreclr/commit/cc52c67f5a0a26194c42fbd1b59e284d6727635a

6 years agoOptimize {Try}FormatDecimal (dotnet/coreclr#18935)
Pent Ploompuu [Wed, 18 Jul 2018 10:14:49 +0000 (13:14 +0300)]
Optimize {Try}FormatDecimal (dotnet/coreclr#18935)

Commit migrated from https://github.com/dotnet/coreclr/commit/fb37382267a5e015769a3b4ef127e5544fe642c7

6 years agoDelete Span ifdefs that are no longer needed (dotnet/coreclr#18982)
Jan Kotas [Wed, 18 Jul 2018 10:13:15 +0000 (03:13 -0700)]
Delete Span ifdefs that are no longer needed (dotnet/coreclr#18982)

Commit migrated from https://github.com/dotnet/coreclr/commit/1456a38ed9ee3eda8022b9f162a45334723a0d7a

6 years agoFix corefx altjit test jobs
Bruce Forstall [Tue, 17 Jul 2018 21:32:33 +0000 (14:32 -0700)]
Fix corefx altjit test jobs

Recently, the corefx build switched from using the VS installed msbuild
to using "dotnet msbuild" for doing builds. This changed the way
command-line parsing was handled.

If we continue to pass the WithoutCategories argument on the command-line,
it ends up requiring an extraordinary number of "escape" backslashes
to preserve exactly the right number of backslashes that will be passed
through to the actual invocation of msbuild. That seems complex and also
not robust to future change.

Instead, construct a response file with the simple required string,
that will be passed directly through to msbuild.

Commit migrated from https://github.com/dotnet/coreclr/commit/aa64317656921a35a4c2b0a30873f780a81ff75a

6 years agoEnable CoreFx tests disabled in https://github.com/dotnet/coreclr/issues/17753 (dotne...
Egor Chesakov [Tue, 17 Jul 2018 23:22:27 +0000 (16:22 -0700)]
Enable CoreFx tests disabled in https://github.com/dotnet/coreclr/issues/17753 (dotnet/coreclr#18967)

Commit migrated from https://github.com/dotnet/coreclr/commit/a113b1c803783c9d64f1f0e946ff9a853e3bc140

6 years agoClean-up number.cpp (dotnet/coreclr#18964)
Pent Ploompuu [Tue, 17 Jul 2018 21:59:00 +0000 (00:59 +0300)]
Clean-up number.cpp (dotnet/coreclr#18964)

Commit migrated from https://github.com/dotnet/coreclr/commit/4b618d9dfe1690c9df9e3c5ce351ae18d1a7c239

6 years ago Add pooling for JIT scratch memory (dotnet/coreclr#18924)
Jan Kotas [Tue, 17 Jul 2018 19:11:33 +0000 (12:11 -0700)]
 Add pooling for JIT scratch memory  (dotnet/coreclr#18924)

Fixes dotnet/coreclr#3408

Commit migrated from https://github.com/dotnet/coreclr/commit/eaf111b08dce413738f9133748e302248359c5e9

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26717-04, preview1-26717-04, master-20180...
dotnet-maestro-bot [Tue, 17 Jul 2018 19:10:53 +0000 (12:10 -0700)]
Update CoreClr, CoreFx, PgoData to preview1-26717-04, preview1-26717-04, master-20180717-0139, respectively (master) (dotnet/coreclr#18961)

* Update CoreClr, CoreFx, PgoData to preview1-26717-04, preview1-26717-04, master-20180717-0139, respectively

* Disabled outdated tests

Commit migrated from https://github.com/dotnet/coreclr/commit/83ee28ed75a94e6fd4e1c81c27fc9acf947d92a3

6 years agoUpdate NativeCallable attribute tests (dotnet/coreclr#18946)
Aaron Robinson [Tue, 17 Jul 2018 18:12:02 +0000 (11:12 -0700)]
Update NativeCallable attribute tests (dotnet/coreclr#18946)

* Update NativeCallable attribute tests

Commit migrated from https://github.com/dotnet/coreclr/commit/f69989e353d11a906bdbc4989b901fe82d7ca0bc

6 years agoMerge pull request dotnet/coreclr#18938 from vancem/EventSourceShutdown
Vance Morrison [Tue, 17 Jul 2018 17:42:28 +0000 (10:42 -0700)]
Merge pull request dotnet/coreclr#18938 from vancem/EventSourceShutdown

Add back in code deleted in .NET Core port.

Commit migrated from https://github.com/dotnet/coreclr/commit/f4145a147aa40639747c08ec6eeac6ddcc788e36

6 years agoKill RCX when used by shift
Carol Eidt [Mon, 16 Jul 2018 18:37:40 +0000 (11:37 -0700)]
Kill RCX when used by shift

RCX must be explicitly killed. Otherwise, if there's a case of a def/use conflict - as in this test case where the shift amount is defined by a divide that must go in RAX, it won't be explicitly assigned to RCX,.
Also, the handling of conflicts must not use the register assignment of the def on the use  if it conflicts with the use register requirements, and vice versa.

Fix dotnet/coreclr#18884

Commit migrated from https://github.com/dotnet/coreclr/commit/f48801ea7c1412e228a5230ec6cbeabdf5277ec0

6 years agoMerge pull request dotnet/coreclr#18891 from CarolEidt/Fix18153
Carol Eidt [Tue, 17 Jul 2018 15:54:42 +0000 (08:54 -0700)]
Merge pull request dotnet/coreclr#18891 from CarolEidt/Fix18153

Ensure BuildUse uses the correct reg number

Commit migrated from https://github.com/dotnet/coreclr/commit/d25bcb8e27c5e583d6abfe6d59d3f32316ac7733

6 years agoMove Decimal to shared (dotnet/coreclr#18948)
Pent Ploompuu [Tue, 17 Jul 2018 15:41:39 +0000 (18:41 +0300)]
Move Decimal to shared (dotnet/coreclr#18948)

* Move Decimal to shared

* Remove DecimalCanonicalize{Internal}

Commit migrated from https://github.com/dotnet/coreclr/commit/2b50bba8131acca2ab535e144796941ad93487b7

6 years agoImprove throughput of {U}Int32/64.{Try}Parse for hex (dotnet/coreclr#18952)
Stephen Toub [Tue, 17 Jul 2018 13:00:11 +0000 (06:00 -0700)]
Improve throughput of {U}Int32/64.{Try}Parse for hex (dotnet/coreclr#18952)

* Improve throughput of {U}Int32/64.{Try}Parse for hex

- Copies/modifies the recently added TryParse32/64IntegerStyle routines for hex in order to provide more optimized parsing.
- Since AllowHexSpecifier can't be used with any other styles (other than allowing leading/trailing whitespace), deletes existing code paths for parsing hex.
- As I was copying code around, I kept getting bitten by different names used for the same thing, so I also standardized some parameter names in various helper functions.

* Clean up

- Remove a bunch of unnecessary 'unsafe' keywords
- Rephrase some while(true) loops as do/while loops for consistency and to avoid some repetition
- Remove an unnecessary wrapper function

Commit migrated from https://github.com/dotnet/coreclr/commit/624f72d55a92e49aef3c3cd6e69150fa3b085fac

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview1-03013-03, preview1-26716...
dotnet-maestro-bot [Tue, 17 Jul 2018 11:27:23 +0000 (04:27 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview1-03013-03, preview1-26716-04, preview1-26717-02, master-20180716-0324, respectively (master) (dotnet/coreclr#18927)

* Update BuildTools, CoreClr, CoreFx, PgoData to preview1-03013-03, preview1-26716-04, preview1-26717-02, master-20180716-0324, respectively

* Update EventPipe StackWalker usage to specify ALLOW_INVALID_OBJECTS.

Commit migrated from https://github.com/dotnet/coreclr/commit/f22e633a63c3fb2bc2c69110aa3deab350d98ad9

6 years agoDelete redundant broken offsetof definitions (dotnet/coreclr#18947)
Jan Kotas [Tue, 17 Jul 2018 08:51:57 +0000 (01:51 -0700)]
Delete redundant broken offsetof definitions (dotnet/coreclr#18947)

Fixes build breaks with latest Visual Studio Preview.

Fixes dotnet/coreclr#18338

Commit migrated from https://github.com/dotnet/coreclr/commit/cc3e7d05c9248c0951beef289c48909066d27345

6 years agoApply tiering's call counting delay more broadly (dotnet/coreclr#18610)
Koundinya Veluri [Tue, 17 Jul 2018 05:04:07 +0000 (22:04 -0700)]
Apply tiering's call counting delay more broadly (dotnet/coreclr#18610)

Apply tiering's call counting delay more broadly

Issues
- When some time passes between process startup and first significant use of the app, startup perf with tiering can be slower because the call counting delay is no longer in effect
- This is especially true when the process is affinitized to one cpu

Fixes
- Initiate and prolong the call counting delay upon tier 0 activity (jitting or r2r code lookup for a new method)
- Stop call counting for a called method when the delay is in effect
- Stop (and don't start) tier 1 jitting when the delay is in effect
- After the delay resume call counting and tier 1 jitting
- If the process is affinitized to one cpu at process startup, multiply the delay by 10

No change in benchmarks.

Commit migrated from https://github.com/dotnet/coreclr/commit/6b403ca4422f2bf3df9d25a32790cc4c0d4b6ee4

6 years agoUse `FEATURE_ARG_SPLIT` to qualify handling of `GT_PUTARG_SPLIT`
Carol Eidt [Tue, 17 Jul 2018 04:45:47 +0000 (21:45 -0700)]
Use `FEATURE_ARG_SPLIT` to qualify handling of `GT_PUTARG_SPLIT`

Commit migrated from https://github.com/dotnet/coreclr/commit/8a6fe594c1f85c762ad94c3dd9b9828d3ae0459c

6 years agoJIT: fix value numbering to handle GT_NULLCHECK more generally (dotnet/coreclr#18942)
Andy Ayers [Tue, 17 Jul 2018 01:48:24 +0000 (18:48 -0700)]
JIT: fix value numbering to handle GT_NULLCHECK more generally (dotnet/coreclr#18942)

With the advent of dotnet/coreclr#18819 we may now see GT_NULLCHECK nodes with operands
that also can cause exceptions.

Handle this in value numbering.

Closes dotnet/coreclr#18937.

Commit migrated from https://github.com/dotnet/coreclr/commit/2a4db3b265eccb9d56e3706d260237b3687da9ca

6 years agoPR Feedback
Carol Eidt [Mon, 16 Jul 2018 23:31:00 +0000 (16:31 -0700)]
PR Feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/c296f061a50c91bebad767aa1e5421d1646ce6a6

6 years agoAdding tests for the Avx2 AlignRight, Blend, and ConvertTo* hwintrinsics.
Tanner Gooding [Sun, 15 Jul 2018 15:04:45 +0000 (08:04 -0700)]
Adding tests for the Avx2 AlignRight, Blend, and ConvertTo* hwintrinsics.

Commit migrated from https://github.com/dotnet/coreclr/commit/15ed066869dd7cddf3c7afb6b989c05229cda8b7

6 years agoImplementing the Avx2 AlignRight, Blend, and ConvertTo* hwintrinsics.
Tanner Gooding [Thu, 12 Jul 2018 14:40:30 +0000 (07:40 -0700)]
Implementing the Avx2 AlignRight, Blend, and ConvertTo* hwintrinsics.

Commit migrated from https://github.com/dotnet/coreclr/commit/71a9d8bbb0d80bb9b998c9df2ab2170027b796e3

6 years agoMerge pull request dotnet/coreclr#18917 from BruceForstall/dev/unix_test_workflow
Bruce Forstall [Mon, 16 Jul 2018 21:41:19 +0000 (14:41 -0700)]
Merge pull request dotnet/coreclr#18917 from BruceForstall/dev/unix_test_workflow

Enable Windows ARM64 corefx jobs in the CI

Commit migrated from https://github.com/dotnet/coreclr/commit/84643e6cff9c17651fbcf2bdccbd1a1aaab536a3

6 years agoAdd no tiered compilation test jobs (dotnet/coreclr#18864)
Noah Falk [Mon, 16 Jul 2018 20:48:37 +0000 (13:48 -0700)]
Add no tiered compilation test jobs (dotnet/coreclr#18864)

* Add no tiered compilation test jobs

With the upcoming switch to make tiered compilation on by default we want to preserve some JIT testing that will not enable tiered compilation.
1) Add 'no_tiered_compilation_pri0' jit stress job, logically the non-tiered variant of current 'Innerloop' jobs
   - This job will run on all PRs for Checked x (Windows x86, Windows x64, Ubuntu arm) - but not scheduled that way for the moment so it can be tested post-checkin
2) Add 'no_tiered_compilation' jit stress job, logically the non-tiered variant of the current 'normal' job
   - This job has the same periodic schedule as other jit stress jobs
3) Add 'r2r_no_tiered_compilation' r2r stress job, logically the non-tiered variant of the current 'r2r' job
   - This job has the same periodic schedule as other r2r stress jobs

Misc adjustments - Added isPri0TestScenario because 'innerloop' is no longer the only scenario name which has this property + eliminated various comments that implied 'innerloop' IFF pri0

Commit migrated from https://github.com/dotnet/coreclr/commit/37322ac660acffa1543d8338c118417d48571f1c

6 years agoEnsure BuildUse uses the correct reg number
Carol Eidt [Thu, 12 Jul 2018 19:51:06 +0000 (12:51 -0700)]
Ensure BuildUse uses the correct reg number

`BuildUse` was setting the regNumber for all of the uses of a multi-reg  node to the main/first regNum. This was missed because this results in a def/use conflict on that reg (the def was set correctly), which is generally resolved in favor of the def. The exception is when there is a kill of the register in between, in which case the use tries to allocate the register its been assigned, causing the `farthestRefPhysRegRecord != nullptr` assert (aka "a register can't be found to spill").
This fixes the specific issue, and adds additional asserts to identify future/additional such issues.
The new asserts depend upon all the regNums being appropriately when/if any are set, which wasn't always the case prior to register allocation.

Fix dotnet/coreclr#18153

Commit migrated from https://github.com/dotnet/coreclr/commit/b4470d75fa6ab4461607f2a0135cd118f466c2ef

6 years agoFixing markdown list formatting (dotnet/coreclr#18936)
Matt Warren [Mon, 16 Jul 2018 18:50:49 +0000 (19:50 +0100)]
Fixing markdown list formatting (dotnet/coreclr#18936)

Commit migrated from https://github.com/dotnet/coreclr/commit/c389865009b7f000a7d477edf7a3f3fe6c877d77

6 years agoFix disabled test name (dotnet/coreclr#18932)
Jan Kotas [Mon, 16 Jul 2018 18:40:26 +0000 (11:40 -0700)]
Fix disabled test name (dotnet/coreclr#18932)

System.ComponentModel.Composition.Tests use friends visibility. The fixed drop does not work well for testing of the live bits.

Commit migrated from https://github.com/dotnet/coreclr/commit/d3fe9a89a769df0bfcfa65a4e97eeb6b081626a7

6 years agoImprove narrowing of GT_AND nodes. (dotnet/coreclr#18916)
Eugene Rozenfeld [Mon, 16 Jul 2018 18:24:54 +0000 (11:24 -0700)]
Improve narrowing of GT_AND nodes. (dotnet/coreclr#18916)

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/c0bad3c66218f61dd3e4f151b9d2eae22c6d88d2

6 years agoMark RuntimeEventSourceTest as GCStressIncompatible (dotnet/coreclr#18911)
Egor Chesakov [Mon, 16 Jul 2018 16:41:25 +0000 (09:41 -0700)]
Mark RuntimeEventSourceTest as GCStressIncompatible (dotnet/coreclr#18911)

Commit migrated from https://github.com/dotnet/coreclr/commit/d9641a0f78aaa6bf68156888ce95755f16c07dbf

6 years agoAdd back in code deleted in .NET Core port.
Vance Morrison [Mon, 16 Jul 2018 16:40:31 +0000 (09:40 -0700)]
Add back in code deleted in .NET Core port.

This fixes shutdown race bug that CoreCLR port reintroduced.
Basically the fix needed some Appdomain APIs that were probably
not in .NET Core 1.0 so they were removed.   However they are
back in .NET Core 2.0 so it is trivial to simply 'do the right thing', and
put the shutdown logic back.

See comment in front of DisposeOnShutdown for more.

Commit migrated from https://github.com/dotnet/coreclr/commit/f4b36aa998ead4dddea6c29de6ac0a393fb138a8

6 years agoImprove throughput of UInt32/UInt64 integer parsing (dotnet/coreclr#18930)
Stephen Toub [Mon, 16 Jul 2018 13:59:55 +0000 (06:59 -0700)]
Improve throughput of UInt32/UInt64 integer parsing (dotnet/coreclr#18930)

As was recently done for Int32/Int64, ports the Utf8Parser approach to parsing to UInt32/UIn64.{Try}Parse, specifically for NumberStyles.Integer (the default).

Also fixes an issue discovered in the previous Int32/Int64 changes, where if the input both has an overflow and has a formatting error (e.g. Int32.Parse("12345678910blah"), we would end up throwing whichever error was hit first, which is a change from .NET Core 2.1 and netfx.  The FormatException needs to be preferred over the OverflowException, which just means we can't bail early when overflow is detected.

Commit migrated from https://github.com/dotnet/coreclr/commit/ce0a2617d40bc217b8e0a2137e340afe585afcb1

6 years agoCoreFX test fixes (dotnet/coreclr#18929)
Jan Kotas [Mon, 16 Jul 2018 13:45:17 +0000 (06:45 -0700)]
CoreFX test fixes (dotnet/coreclr#18929)

- Unify Windows and Unix exclusion files to avoid duplication
- Disable outdated tests against live CoreFX

Commit migrated from https://github.com/dotnet/coreclr/commit/309e9054841f71cbbfad3c9a091724f2978eef3d

6 years agoRemove unused resource strings from System.Private.CoreLib (dotnet/coreclr#18808)
Stephen Toub [Sun, 15 Jul 2018 19:44:54 +0000 (15:44 -0400)]
Remove unused resource strings from System.Private.CoreLib (dotnet/coreclr#18808)

Commit migrated from https://github.com/dotnet/coreclr/commit/ca6c32e70be1491ace0b7241a2bfe71eac15f831

6 years agoExpose SpinWait.SpinOnce(int sleep1Threshold) overload (dotnet/coreclr#18204)
Koundinya Veluri [Sun, 15 Jul 2018 18:18:06 +0000 (11:18 -0700)]
Expose SpinWait.SpinOnce(int sleep1Threshold) overload (dotnet/coreclr#18204)

Expose SpinWait.SpinOnce(int sleep1Threshold) overload

To allow customizing the spin count threshold for Sleep(1) usage, and to allow disabling the use of Sleep(1).

API review: https://github.com/dotnet/corefx/issues/29623
Part of fix for https://github.com/dotnet/corefx/issues/29595

Commit migrated from https://github.com/dotnet/coreclr/commit/28a8d423efc79c1cb2b23fa21747c5f7c5f7a057

6 years agoTemporarily allow combase.dll!RoGetActivationFactory (dotnet/coreclr#18922)
Stephen Toub [Sun, 15 Jul 2018 17:39:12 +0000 (13:39 -0400)]
Temporarily allow combase.dll!RoGetActivationFactory (dotnet/coreclr#18922)

Commit migrated from https://github.com/dotnet/coreclr/commit/2af68c4ae38d6a46eb12a6a8de0ffb5eddf8169c

6 years agoRevert "Fix some failures when using build-test.sh"
Russ Keldorph [Sat, 14 Jul 2018 23:44:49 +0000 (16:44 -0700)]
Revert "Fix some failures when using build-test.sh"

This reverts commit dotnet/coreclr@2bffb76443919b0ad0be8bff398d9a962a3a5f6d.

Commit migrated from https://github.com/dotnet/coreclr/commit/184c3504e763ea7147505a8d49cb54b43cc82d78

6 years agoFix some failures when using build-test.sh
russ [Fri, 6 Jul 2018 21:49:47 +0000 (21:49 +0000)]
Fix some failures when using build-test.sh

1) Remove a workaround for broken msbuild RelativePath API that is
   apparently no longer necessary and doesn't seem to work anymore anyway.
2) Fix a casing issue in some test projects.  I'm not sure why this hasn't
   been fixed yet.

Commit migrated from https://github.com/dotnet/coreclr/commit/2bffb76443919b0ad0be8bff398d9a962a3a5f6d

6 years agoRemove version increment from Dictionary<K,V>.Remove overloads (dotnet/coreclr#18854)
Wraith2 [Sat, 14 Jul 2018 19:13:38 +0000 (20:13 +0100)]
Remove version increment from Dictionary<K,V>.Remove overloads (dotnet/coreclr#18854)

* remove version increment from Remove overloads

* add temporary test exclusions

* fixup test exclusion names

* modify test exclusions

Commit migrated from https://github.com/dotnet/coreclr/commit/a6b9bbbf284496f87c02555aca29ff8f2b762805

6 years agoEnable 'jitnosimd' job for Linux/arm64 (dotnet/coreclr#18890)
Bruce Forstall [Thu, 12 Jul 2018 20:34:06 +0000 (13:34 -0700)]
Enable 'jitnosimd' job for Linux/arm64 (dotnet/coreclr#18890)

Fixes dotnet/coreclr#18174

Commit migrated from https://github.com/dotnet/coreclr/commit/716227cf1eba3d16d91199a48dfdc23a189d18c1

6 years agoEnable Windows ARM64 corefx jobs
Bruce Forstall [Wed, 11 Jul 2018 18:32:41 +0000 (11:32 -0700)]
Enable Windows ARM64 corefx jobs

Disable various tests that currently fail, tagged with issues
describing the failures.

Commit migrated from https://github.com/dotnet/coreclr/commit/827b5f15e2fd9d642491ebb21bce8013d9937083

6 years agoImprove Int32/Int64 {Try}Parse performance for NumberStyles.Integer (dotnet/coreclr...
Stephen Toub [Fri, 13 Jul 2018 21:43:34 +0000 (17:43 -0400)]
Improve Int32/Int64 {Try}Parse performance for NumberStyles.Integer (dotnet/coreclr#18897)

Special-case the default NumberStyles.Integer format to improve the throughput of Int32/Int64.{Try}Parse.  Ports the implementation from Utf8Parser, modifying it to accomodate the additional cases needed for Int32/Int64, e.g. culture impact on positive and negative signs, trailing zeros, leading and trailing whitespace, prohibiting additional characters at the end, etc.

Commit migrated from https://github.com/dotnet/coreclr/commit/78fc03b0755ac3c428d5f6c8f30b50af65d0e0a8

6 years agoJIT: optimize some cases of unused structs (dotnet/coreclr#18819)
Andy Ayers [Fri, 13 Jul 2018 20:21:27 +0000 (13:21 -0700)]
JIT: optimize some cases of unused structs (dotnet/coreclr#18819)

In some cases CSC will use `ldobj; pop` to null check a pointer to
struct. This change avoids copying the struct value for such constructs.

Codegen may still redundantly null check, if there are multiple such checks
in a method.

Fixes dotnet/coreclr#18710

Commit migrated from https://github.com/dotnet/coreclr/commit/dc7492e227f0ff1a5054337091c5ce7105e82491

6 years agoRemove unnecessary R2R jobs (dotnet/coreclr#18902)
Bruce Forstall [Fri, 13 Jul 2018 18:02:48 +0000 (11:02 -0700)]
Remove unnecessary R2R jobs (dotnet/coreclr#18902)

Commit migrated from https://github.com/dotnet/coreclr/commit/454dcdad0b04980e1085acb1c16f386c4b450a60

6 years agoEnable logs (dotnet/coreclr#18881)
Andon Andonov [Fri, 13 Jul 2018 16:57:38 +0000 (09:57 -0700)]
Enable logs (dotnet/coreclr#18881)

Commit migrated from https://github.com/dotnet/coreclr/commit/552a24d2dbdb9f51f1aa7fe51302e07947bdb1cd

6 years agoRemove System.Security.Cryptography.X509Certificates.Tests from Windows arm exclusion...
Egor Chesakov [Fri, 13 Jul 2018 16:10:25 +0000 (09:10 -0700)]
Remove System.Security.Cryptography.X509Certificates.Tests from Windows arm exclusion list (dotnet/coreclr#18807)

Commit migrated from https://github.com/dotnet/coreclr/commit/4bd9b33790ca8be557f3cdc6771e61c890a1a60a

6 years agoAdd prefix to DAC's PAL exports for alpine (dotnet/coreclr#18873)
Mike McLaughlin [Fri, 13 Jul 2018 06:45:39 +0000 (23:45 -0700)]
Add prefix to DAC's PAL exports for alpine (dotnet/coreclr#18873)

Added some cmake logic to create assembly include mapping files. One that maps the
prefixed name (DAC_foo) to the actual name (foo) which is included in the DAC module
and another that maps the actual name to the prefixed name that is included in the SOS,
DBI and createdump modules.

The data exports like IID_IUnknown are not prefixed and don't need to be (immutable static data).

There were some C++ exports functions exported with their decorated names in
the CatchHardwareExceptionHolder and NativeExceptionHolderBase classes. Created
PAL_* style export functions that implements the code.

Fix lldb plugin cmake file to use LLDB_H/LLDB_LIB env vars to build it.

Commit migrated from https://github.com/dotnet/coreclr/commit/b89e2305a2c953272c997242d01b66b1bb1e661e

6 years agoDisable 3 long-running tests and 1 failing test (dotnet/coreclr#18896)
Bruce Forstall [Fri, 13 Jul 2018 05:31:48 +0000 (22:31 -0700)]
Disable 3 long-running tests and 1 failing test (dotnet/coreclr#18896)

The following tests exceed the default timeout, especially on Debug builds:
```
GC\Features\LOHCompaction\lohcompactapi\lohcompactapi.cmd
GC\API\NoGCRegion\NoGC\NoGC.cmd
GC\API\GC\GetAllocatedBytesForCurrentThread\GetAllocatedBytesForCurrentThread.cmd
```

Mark them LONG_RUNNING.

The following test asserts in the JIT currently:
```
JIT\HardwareIntrinsics\Arm64\Simd\Simd.cmd
```

Disable it with issue dotnet/coreclr#18895

Commit migrated from https://github.com/dotnet/coreclr/commit/0e22b107e811bc8ab7f3c1caf0943ef760d9f53d

6 years agoRemove dead/unreachable code from ARM32 and ARM64 emitters (dotnet/coreclr#18878)
Egor Chesakov [Fri, 13 Jul 2018 00:41:17 +0000 (17:41 -0700)]
Remove dead/unreachable code from ARM32 and ARM64 emitters (dotnet/coreclr#18878)

Commit migrated from https://github.com/dotnet/coreclr/commit/47e106edc305c68651291d3862891ec6ad9f3ad6

6 years agoMerge pull request dotnet/coreclr#18887 from briansull/atomic-fix
Brian Sullivan [Fri, 13 Jul 2018 00:12:52 +0000 (17:12 -0700)]
Merge pull request dotnet/coreclr#18887 from briansull/atomic-fix

Include the processor atomic operations in the OperIsStore category

Commit migrated from https://github.com/dotnet/coreclr/commit/f3ab7e073a2c7720791b44638a99c43647da0a0a

6 years agoFixes for bugs in fgMorphCast and optNarrowTree. (dotnet/coreclr#18816)
Eugene Rozenfeld [Thu, 12 Jul 2018 20:42:00 +0000 (13:42 -0700)]
Fixes for bugs in fgMorphCast and optNarrowTree. (dotnet/coreclr#18816)

The fix under NARROW_IND prevents transformation of, e.g.,
CAST      int <- ushort <- int
    CLS_VAR byte

into

CLS_VAR byte.

With the fix the CAST is not removed.

The fix under GT_CAST prevents transformation of, e.g.,

CAST      int <- ushort <- long
    CAST      long <- int
       expr short

into

expt short.

With the fix it gets transformed into

CAST      int <- ushort <- int
    expr short

Block cast optimizations in fgMorphCast if the cast expression is an
active CSE candidate.

Update cast expression value numbers when a cast is removed.

Fixes dotnet/coreclr#18238, dotnet/coreclr#18850.

No diffs in frameworks and tests (pmi and crossgen, x64 and x86), except for the added test cases.

Commit migrated from https://github.com/dotnet/coreclr/commit/4929ebab22bcef4f6ff39acbcdb333ffeb98f24a

6 years agoAdded the repro test case
Brian Sullivan [Thu, 12 Jul 2018 19:49:08 +0000 (12:49 -0700)]
Added the repro test case

Commit migrated from https://github.com/dotnet/coreclr/commit/89968de88fa5d036f86a95772cd292d44ab4b23c

6 years agoInclude the processor atomic operations in the OperIsStore category
Brian Sullivan [Thu, 12 Jul 2018 18:11:31 +0000 (11:11 -0700)]
Include the processor atomic operations in the OperIsStore category
THe atomic operations are GT_CMPXCHG, GT_LOCKADD, GT_XCHG, GT_XADD

Commit migrated from https://github.com/dotnet/coreclr/commit/8747e2dc98d46d8fbc3c0677cf5d40c05533b3ce

6 years agoDon't trim compiler-generated anonymous types. (dotnet/coreclr#18835)
Brian Robbins [Thu, 12 Jul 2018 17:26:12 +0000 (10:26 -0700)]
Don't trim compiler-generated anonymous types. (dotnet/coreclr#18835)

Commit migrated from https://github.com/dotnet/coreclr/commit/5d8b97af6d781a00d2e5da47b43db6879b98ae71

6 years agoCoreFX CI Unix (dotnet/coreclr#18753)
Andon Andonov [Thu, 12 Jul 2018 04:39:57 +0000 (21:39 -0700)]
CoreFX CI Unix (dotnet/coreclr#18753)

* Full Unix test support

* Remove Test helper build from build-test

Add msg prefix

Change if condition

* Change Linux URL

* Syntax error

* Fix Merge Conflict

* Address PR Feedback

* Remove duplicate generate_testhost call

* Address PR comments

* Clean up exclusion list

* Disable Client_ReadWriteCancelledToken_Throws_OperationCanceledException

* Disable all flavors of CancelledToken_Throws_OperationCanceledException

* Disable X509StoreTests.Constructor_DefaultStoreName - flaky on OSX

* Update documentation with Linux instructions and workflow

* Disable EventWaitHandleTests.Ctor_InvalidMode - failing on OSX

* Disable Server_ReadWriteCancelledToken_Throws_OperationCanceledException

Commit migrated from https://github.com/dotnet/coreclr/commit/e3ccef1c21978fa682bc76fd7626dd7ae9871cc0

6 years agoFix VEX.vvvv encoding for AVX.BlendVariable
Fei Peng [Wed, 11 Jul 2018 22:55:37 +0000 (15:55 -0700)]
Fix VEX.vvvv encoding for AVX.BlendVariable

Commit migrated from https://github.com/dotnet/coreclr/commit/a03b08ab38186db8bb30a412bc73165810140119

6 years agoRemove TODO comment from CancellationTokenRegistration.Unregister (dotnet/coreclr...
Stephen Toub [Thu, 12 Jul 2018 02:30:56 +0000 (22:30 -0400)]
Remove TODO comment from CancellationTokenRegistration.Unregister (dotnet/coreclr#18880)

Commit migrated from https://github.com/dotnet/coreclr/commit/dd32971158d5309179df93adfce62140bdc79fbd

6 years agoMerge pull request dotnet/coreclr#18862 from BruceForstall/DisableLongRunningGCStress...
Bruce Forstall [Thu, 12 Jul 2018 00:17:50 +0000 (17:17 -0700)]
Merge pull request dotnet/coreclr#18862 from BruceForstall/DisableLongRunningGCStress3Tests

Disable tests for Windows/arm64 with GCStress=3 that take too long

Commit migrated from https://github.com/dotnet/coreclr/commit/af2bddef830d858160d19dc2aab6fb790f4c5020

6 years agoMerge pull request dotnet/coreclr#18859 from hoyosjs/fix-debug-gscookie-check
Juan Hoyos [Wed, 11 Jul 2018 22:36:41 +0000 (15:36 -0700)]
Merge pull request dotnet/coreclr#18859 from hoyosjs/fix-debug-gscookie-check

GS cookie check fix for debugger stackwalks port

Commit migrated from https://github.com/dotnet/coreclr/commit/c82bd22d4bab4369c0989a1c2ca2758d29a0da36

6 years agoOptimize Double/Single.IsNegative
Jan Kotas [Wed, 11 Jul 2018 06:46:39 +0000 (23:46 -0700)]
Optimize Double/Single.IsNegative

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/874b694fa31c1ce92491f2191ed4a006c51ae2d4

6 years agoMake Number.Parsing.cs BigEndian friendly (dotnet/coreclr#18853)
Egor Bogatov [Wed, 11 Jul 2018 06:04:06 +0000 (09:04 +0300)]
Make Number.Parsing.cs BigEndian friendly (dotnet/coreclr#18853)

* Make Number.Parsing.cs BigEndian friendly

* Get rid of DoubleHelper

Commit migrated from https://github.com/dotnet/coreclr/commit/b3c98d54b3aba980c4ed38e87fd3f7a13e2598ee

6 years agoMerge pull request dotnet/coreclr#18861 from BruceForstall/FixShowLocalloc
Bruce Forstall [Wed, 11 Jul 2018 03:55:39 +0000 (20:55 -0700)]
Merge pull request dotnet/coreclr#18861 from BruceForstall/FixShowLocalloc

Fix ShowLocallocAlignment test for x86

Commit migrated from https://github.com/dotnet/coreclr/commit/9cd6e82f210aadbc4335f00263dd80fa8dcb44b3

6 years agoMerge pull request dotnet/coreclr#18860 from BruceForstall/ReEnable13731Tests
Bruce Forstall [Wed, 11 Jul 2018 03:55:02 +0000 (20:55 -0700)]
Merge pull request dotnet/coreclr#18860 from BruceForstall/ReEnable13731Tests

Re-enable tests for dotnet/coreclr#13731 which was closed long ago

Commit migrated from https://github.com/dotnet/coreclr/commit/b2abf26c41d1c56a6f86a4241713333e6fd8dd69

6 years agoAdjust JIT automated testing for tiered compilation (dotnet/coreclr#18828)
Noah Falk [Wed, 11 Jul 2018 01:33:57 +0000 (18:33 -0700)]
Adjust JIT automated testing for tiered compilation (dotnet/coreclr#18828)

Make it explicit that most JIT testing does not use tiered compilation regardless of the runtime default
Clone jitstress1/2 and r2r_jitstress1/2 test modes both with and without tiering.
Move the existing tieredcompilation test modes to have the same periodic scheduling as other jit test runs.

Commit migrated from https://github.com/dotnet/coreclr/commit/d5db5acff13e973bbe1764ba4cbaff5912df6fba

6 years agoDisable tests for Windows/arm64 with GCStress=3 that take too long
Bruce Forstall [Wed, 11 Jul 2018 00:39:37 +0000 (17:39 -0700)]
Disable tests for Windows/arm64 with GCStress=3 that take too long

Fixes dotnet/coreclr#15381

Commit migrated from https://github.com/dotnet/coreclr/commit/08cc9e0805bca1bff1e3b81e53eb3da971299398

6 years agoFix ShowLocallocAlignment test for x86
Bruce Forstall [Tue, 10 Jul 2018 23:50:54 +0000 (16:50 -0700)]
Fix ShowLocallocAlignment test for x86

The required localloc alignment differs by platform. Teach the test
what the per-platform alignment requirement is.

Fixes dotnet/coreclr#7163

Commit migrated from https://github.com/dotnet/coreclr/commit/164f9c55ce4fec7b8236ee5c7c1d87de708f394b

6 years agoRe-enable tests for dotnet/coreclr#13731 which was closed long ago
Bruce Forstall [Tue, 10 Jul 2018 23:22:48 +0000 (16:22 -0700)]
Re-enable tests for dotnet/coreclr#13731 which was closed long ago

Commit migrated from https://github.com/dotnet/coreclr/commit/5635ab60e1b8c2cf582e549f6ee336ea6afafd3d

6 years agoRemove random.NextDouble() from JIT/HardwareIntrinsics tests (dotnet/coreclr#18838)
Egor Chesakov [Tue, 10 Jul 2018 23:15:15 +0000 (16:15 -0700)]
Remove random.NextDouble() from JIT/HardwareIntrinsics tests (dotnet/coreclr#18838)

* Add ProjectReference to CoreCLRTestLibrary.csproj in the corresponding C# project files
* Replace usages of random.NextDouble() from GenerateTests.csx with CoreCLRTestLibrary.Generator.GetSingle()/GetDouble()
* Regenerate test files

Commit migrated from https://github.com/dotnet/coreclr/commit/a211090331c5e4830bb037fb078d199e2234b865

6 years agoInitial implementation of method fixup parser (dotnet/coreclr#18749)
Tomáš Rylek [Tue, 10 Jul 2018 21:48:25 +0000 (23:48 +0200)]
Initial implementation of method fixup parser (dotnet/coreclr#18749)

* Initial implementation of method fixup parser

I'm working on this right now in the CoreRT R2R compiler so I'm
adding the relevant structures and algorithms to the dumper
to let me analyze various R2R files and their method fixups.

I have locally verified that this shows reasonable fixup info
for my Hello World repro compiled both using the CoreRT R2R
compiled and using crossgen.

Thanks

Tomas

* Improvements in signature dumping

Signature dumping was slightly imprecise - the signature field
was named "Section" in the dump and it was displaying a dword,
however signatures are logically arbitrary byte streams.

Sadly I'm aware of no easy way to detect the length of an
arbitrary signature without adding a multitude of dedicated
parsers for the different signature types used by different
fixup / helper types so for now I'm displaying an 8-byte sample.

I have also made the formatting of the import section entries
more compact to make the list easier to read in the presence
of a larger number of fixups and I added support for displaying
the entry offset (as this is what the method fixups indirectly
refer to via the fixup indices).

Thanks

Tomas

* Move NibbleReader into a separate source file

Based on Amy's PR feedback I'm moving NibbleReader into a separate
source file. After all, I have a counterpart NibbleWriter.cs
in the R2R compiler codebase.

Thanks

Tomas

* Remove unnecessary usings from the new NibbleReader.cs file

As an additional bit of cleanup I used the VS refactoring tool
to remove unnecessary usings from the new NibbleReader source file.

Thanks

Tomas

Commit migrated from https://github.com/dotnet/coreclr/commit/f39809b6e560450daa299d7566ca6d861cb2c270

6 years agoFixing encodeXmmRegAsIval to ensure the result meets the "fits in imm8" check
Tanner Gooding [Tue, 10 Jul 2018 04:46:41 +0000 (21:46 -0700)]
Fixing encodeXmmRegAsIval to ensure the result meets the "fits in imm8" check

Commit migrated from https://github.com/dotnet/coreclr/commit/52d8382f819cdc66e01c2e2fdd6dd3c6c6cd4fee

6 years agoMerge pull request dotnet/coreclr#18805 from CarolEidt/Fix18746
Carol Eidt [Tue, 10 Jul 2018 20:33:02 +0000 (13:33 -0700)]
Merge pull request dotnet/coreclr#18805 from CarolEidt/Fix18746

Don't change PUTARG_REG spill type on arm64

Commit migrated from https://github.com/dotnet/coreclr/commit/eb405392acacf6f5b72601521ec4ac5106d1e2ba