platform/upstream/coreclr.git
5 years agoHandle MovRelocatableImmediate on ARM32 as a special case (IF_T2_N3) (#19013)
Egor Chesakov [Fri, 3 Aug 2018 19:35:33 +0000 (12:35 -0700)]
Handle MovRelocatableImmediate on ARM32 as a special case (IF_T2_N3) (#19013)

* Add IF_T2_N3 instruction form and make this a specific case of IF_T2_N when EA_IS_RELOC(attr) is true
* Move "movw/movt reg,relocatableImm" case to function emitIns_MovRelocatableImmediate
* Introduce new instruction descriptor instrDescReloc
* Delete unused CnsVal from ARM32 and ARM64 emitters
* Introduce target_ssize_t and use this type for non-relocatable constants

5 years agoMerge pull request #19274 from MattGal/remove-ubuntu-1710
Matt Galbraith [Fri, 3 Aug 2018 17:37:53 +0000 (10:37 -0700)]
Merge pull request #19274 from MattGal/remove-ubuntu-1710

Remove EOL Ubuntu 17.10

5 years agoRemove EOL Ubuntu 17.10
Matt Galbraith [Fri, 3 Aug 2018 17:32:08 +0000 (10:32 -0700)]
Remove EOL Ubuntu 17.10

5 years agoMerge pull request #19259 from MattGal/update-fedoras
Matt Galbraith [Fri, 3 Aug 2018 17:20:28 +0000 (10:20 -0700)]
Merge pull request #19259 from MattGal/update-fedoras

Remove Fedora 26, add Fedora 28

5 years agoBuild managed tests with dotnet (#19254)
Chris Sienkiewicz [Fri, 3 Aug 2018 17:11:32 +0000 (10:11 -0700)]
Build managed tests with dotnet (#19254)

* Change managed projects to build with dotnet msbuild, rather than desktop msbuild

* Build sdk tests as AnyCPU

* Correct args passed through to dotnet for tests

* Remove extra backslash from baseIntermediateOutputPath that was causing individual test exe builds to fail

* Fix double import warning for sdk projects

* Add default params from config.json to build-test dotnet invocations

* Fix priority argument passing from the command line for tests

5 years agoMerge pull request #18223 from mikedn/inc-codegen
Bruce Forstall [Fri, 3 Aug 2018 16:32:41 +0000 (09:32 -0700)]
Merge pull request #18223 from mikedn/inc-codegen

Get rid of codegenlinear.h and x86_instrs.h

5 years agoFix interop test targets
Morgan Brown [Fri, 3 Aug 2018 02:04:45 +0000 (19:04 -0700)]
Fix interop test targets

Fix interop test targets

Remove TargetFramework from Interop.settings.targets since it already gets handled by the build environment and 2.0 doesn't work.

5 years agoMoved NativeCallable Attribute to shared (#19258)
Anirudh Agnihotry [Fri, 3 Aug 2018 00:34:32 +0000 (17:34 -0700)]
Moved NativeCallable Attribute to shared (#19258)

5 years agoUpdate debugging doc with symbol downloader instructions. (#19262)
Mike McLaughlin [Fri, 3 Aug 2018 00:04:45 +0000 (17:04 -0700)]
Update debugging doc with symbol downloader instructions. (#19262)

5 years agoRemove unused/nop/questionable code (#19239)
Aaron Robinson [Thu, 2 Aug 2018 23:27:46 +0000 (16:27 -0700)]
Remove unused/nop/questionable code (#19239)

* Remove unused holder code

* Remove NOP `IsV2RuntimeLoaded()` usage.

* Remove unused/nop/questionable code in util

* Remove unused V2Profiler message from resource

5 years agoRemove Fedora 26, add Fedora 28
Matt Galbraith [Thu, 2 Aug 2018 21:56:29 +0000 (14:56 -0700)]
Remove Fedora 26, add Fedora 28

5 years agoMake `Vector64<T>`, `Vector128<T>`, and `Vector256<T>` readonly
Tanner Gooding [Thu, 2 Aug 2018 16:16:11 +0000 (09:16 -0700)]
Make `Vector64<T>`, `Vector128<T>`, and `Vector256<T>` readonly

5 years agoMerge pull request #19115 from dotnet/dev/unix_test_workflow
Bruce Forstall [Thu, 2 Aug 2018 20:30:23 +0000 (13:30 -0700)]
Merge pull request #19115 from dotnet/dev/unix_test_workflow

Enable Windows ARM64 builds using release product tools

5 years agoFix VSTS build's tests on Alpine
Russ Keldorph [Thu, 2 Aug 2018 17:02:11 +0000 (10:02 -0700)]
Fix VSTS build's tests on Alpine

Earlier changes to rename alpine stuff to musl seems to have missed this change

Fixes #19179

5 years agoResolving the remaining HWIntrinsics issues blocking PMI for S.P.CoreLib
Tanner Gooding [Thu, 2 Aug 2018 15:30:50 +0000 (08:30 -0700)]
Resolving the remaining HWIntrinsics issues blocking PMI for S.P.CoreLib

5 years agoGet rid of x86_instrs.h
Mike Danes [Thu, 31 May 2018 20:30:17 +0000 (23:30 +0300)]
Get rid of x86_instrs.h

5 years agoGet rid of codegenlinear.h
Mike Danes [Thu, 31 May 2018 20:19:47 +0000 (23:19 +0300)]
Get rid of codegenlinear.h

5 years agoMerge pull request #19249 from BruceForstall/DisableFailingTests
Bruce Forstall [Thu, 2 Aug 2018 16:09:53 +0000 (09:09 -0700)]
Merge pull request #19249 from BruceForstall/DisableFailingTests

Disable failing ARM tests

5 years agoDisable failing ARM tests
Bruce Forstall [Thu, 2 Aug 2018 16:08:46 +0000 (09:08 -0700)]
Disable failing ARM tests

5 years agoMerge pull request #19234 from CarolEidt/Fix19124
Carol Eidt [Thu, 2 Aug 2018 16:03:00 +0000 (09:03 -0700)]
Merge pull request #19234 from CarolEidt/Fix19124

Handle COMMA nodes when morphing struct args

5 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03101-02, preview1...
dotnet-maestro-bot [Thu, 2 Aug 2018 16:02:18 +0000 (09:02 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03101-02, preview1-26802-01, preview1-26802-01, preview1-26801-04, master-20180801-0056, respectively (master) (#19162)

* Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03101-02, preview1-26802-01, preview1-26802-01, preview1-26801-04, master-20180801-0056, respectively

* Disable tests failing on active issue

5 years agoFix broken link (#19244)
Alex Novgorodov [Thu, 2 Aug 2018 15:49:23 +0000 (18:49 +0300)]
Fix broken link (#19244)

5 years agoAdd arm32 tp (#19098)
Michelle McDaniel [Thu, 2 Aug 2018 14:28:01 +0000 (07:28 -0700)]
Add arm32 tp (#19098)

* Add Arm32 support to throughput scripts

5 years agoEnable Windows ARM32 and ARM64 Debug builds as default PR triggered
Bruce Forstall [Wed, 25 Jul 2018 18:33:54 +0000 (11:33 -0700)]
Enable Windows ARM32 and ARM64 Debug builds as default PR triggered

These will be PR triggered for all users, not just those on the
arm64Users list. Since these are Build only, and do no testing,
with the change to use public VS2017 build tools, they can be run
by anyone.

Users on the arm64Users list will still get Checked Build and Test
jobs, which require using the private test machines.

5 years agoEnable ARM64 builds using release product tools
Bruce Forstall [Sat, 7 Jul 2018 00:19:32 +0000 (17:19 -0700)]
Enable ARM64 builds using release product tools

Remove support for specifying the toolset directory for arm64,
which was used to point to an internal toolset.

Building for arm64 now works just like the other platforms, e.g.
invoke `build arm64`.

The requirements:
. Visual Studio 2017 Update 4 or later, with ARM64 toolset installed
. Windows SDK 10.0.17134.0 or later
. CMake 3.10 or later

5 years agoMerge pull request #19241 from BruceForstall/Revert19230
Bruce Forstall [Thu, 2 Aug 2018 05:32:24 +0000 (22:32 -0700)]
Merge pull request #19241 from BruceForstall/Revert19230

Revert "Build managed tests with dotnet (#19230)"

5 years agoRevert "Build managed tests with dotnet (#19230)"
Bruce Forstall [Thu, 2 Aug 2018 05:27:56 +0000 (22:27 -0700)]
Revert "Build managed tests with dotnet (#19230)"

This reverts commit 763142a210d858289d30365dd1d4f2772e48f30d.

5 years agoUse 16 bytes to spill SIMD12 (#19237)
Carol Eidt [Thu, 2 Aug 2018 04:59:18 +0000 (21:59 -0700)]
Use 16 bytes to spill SIMD12 (#19237)

On 64-bit systems, SIMD12 locals are naturally rounded to 16 bytes, but the spill temp logic was not doing the same.

Fix #19197

5 years agoformatting
Carol Eidt [Thu, 2 Aug 2018 00:41:31 +0000 (17:41 -0700)]
formatting

5 years agoMerge pull request #19181 from BruceForstall/UpdateComment
Bruce Forstall [Thu, 2 Aug 2018 00:38:09 +0000 (17:38 -0700)]
Merge pull request #19181 from BruceForstall/UpdateComment

Update arm64 comment for IsCallTargetInRange function

5 years agoAllow rejit on attach (#19054)
David Mason [Wed, 1 Aug 2018 23:53:33 +0000 (16:53 -0700)]
Allow rejit on attach (#19054)

* change profiler rejit to be enabled by default, and also change the debugger to only give up on setting a breakpoint if a method has been rejitted, rather than just whenever rejit is on

* copy corprof changes to the pal version, and change rejit so it is allowable on attach

* Change GetILFunctionBody/SetILFunctionBody to be allowed after attach

* Also make RequestRevert allowable on attach

* change lock order and switch from GC_NOTRIGGER to GC_TRIGGERS in Rejit codepath through the codeversionmanager

* make GetReJITIDs callable after attach

* change profiler rejit to be enabled by default, and also change the debugger to only give up on setting a breakpoint if a method has been rejitted, rather than just whenever rejit is on

* copy corprof changes to the pal version, and change rejit so it is allowable on attach

* Change GetILFunctionBody/SetILFunctionBody to be allowed after attach

* Also make RequestRevert allowable on attach

* change lock order and switch from GC_NOTRIGGER to GC_TRIGGERS in Rejit codepath through the codeversionmanager

* make GetReJITIDs callable after attach

* rename value to enable/disable rejit on attach, and cache values of profiler rejit and config value

* Change places where the jit checks for rejit being enabled to actually check for what it wants, which is whether jump stamps are enabled

* get rid of old value that was readded by merge somehow

* disallow detach after setting rejit event mask, and prevent it from being set if rejit on attach is turned off

* fix incorrect assert

* Take the codemanager lock in SetIP

5 years agoHandle COMMA nodes when morphing struct args
Carol Eidt [Wed, 1 Aug 2018 23:44:41 +0000 (16:44 -0700)]
Handle COMMA nodes when morphing struct args

Fix #19124

5 years agoProvide a desktop-only implementation of RuntimeThread.CurrentOSThreadId for Microsof...
Brian Robbins [Wed, 1 Aug 2018 19:48:42 +0000 (12:48 -0700)]
Provide a desktop-only implementation of RuntimeThread.CurrentOSThreadId for Microsoft.Diagnostics.Tracing.EventSource.Redist.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoBuild managed tests with dotnet (#19230)
Chris Sienkiewicz [Wed, 1 Aug 2018 23:13:39 +0000 (16:13 -0700)]
Build managed tests with dotnet (#19230)

* Change managed projects to build with dotnet msbuild, rather than desktop msbuild

* Build sdk tests as AnyCPU

* Correct args passed through to dotnet for tests

* Remove extra backslash from baseIntermediateOutputPath that was causing individual test exe builds to fail

* Fix double import warning for sdk projects

* Add default params from config.json to build-test dotnet invocations

5 years agoFix value number update in fgMorphCast. (#19226)
Eugene Rozenfeld [Wed, 1 Aug 2018 22:48:41 +0000 (15:48 -0700)]
Fix value number update in fgMorphCast. (#19226)

removing GT_CAST nodes. It caused a problem for cases
where GT_CAST operand is a constant (e.g., GT_CNS_INT). In these
cases the value number shouldn't change since there is an
assumption that constant nodes have known constant value numbers.

The bug was found by ILGEN, I created a corresponding C# repro.
Without the fix this assert fires: https://github.com/dotnet/coreclr/blob/1f28125ad1f9975fbe68dd6839908aa6e63fc43b#gitext://gotocommit/1f28125ad1f9975fbe68dd6839908aa6e63fc43b/src/jit/assertionprop.cpp#L2687

The fix is to update value numbers only when we changed the operand of GT_CAST and
value number wasn't updated otherwise (e.g., in optNarrowTree).

I verified no x64 diffs in
jit-diff diff  --pmi --tests --frameworks
(with pri0 and pri1 tests).

5 years agoExpose OSThreadId and TimeStamp on EventWrittenEventArgs (#19002)
Brian Robbins [Wed, 1 Aug 2018 18:38:39 +0000 (11:38 -0700)]
Expose OSThreadId and TimeStamp on EventWrittenEventArgs (#19002)

* Add EventWrittenEventArgs public properties OSThreadId and TimeStamp and plumb through OSThreadId.

* Plumb ActivityId and RelatedActivityId to EventListener.

5 years agobuild-test - fix ilasm warnings caused by missing/incorrect extern assembly declarati...
Jacek Blaszczynski [Wed, 1 Aug 2018 18:10:05 +0000 (20:10 +0200)]
build-test - fix ilasm warnings caused by missing/incorrect extern assembly declarations (#19188)

* build-test - fix ildasm warnings caused by missing or incorrect extern assembly declarations

white space was fixed in all files which were edited (tabs -> spaces, no white space at the end of line)

* Remove unnecessary assembly declaration metadata

5 years agoUse the identified python when building System.Private.CoreLib (#19043)
Omair Majid [Wed, 1 Aug 2018 16:02:53 +0000 (12:02 -0400)]
Use the identified python when building System.Private.CoreLib (#19043)

build.sh and build.cmd contain logic to identify a working version of
python to use. System.Private.CoreLib ignores that and directly invokes
'python', which may not work, or even execute a different program.

5 years agoCross-bitness in GcInfoEncoder::Build() (#19206)
Egor Chesakov [Wed, 1 Aug 2018 15:54:36 +0000 (08:54 -0700)]
Cross-bitness in GcInfoEncoder::Build() (#19206)

* Remove dead code in BitArray
* Replace size_t with uint32_t in BitArray

5 years agoAdd a spec for tiered compilation (#19207)
Noah Falk [Wed, 1 Aug 2018 08:04:53 +0000 (01:04 -0700)]
Add a spec for tiered compilation (#19207)

Add a spec for tiered compilation

5 years agoFix build break
Jan Kotas [Tue, 31 Jul 2018 22:37:26 +0000 (15:37 -0700)]
Fix build break

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoDelete dead code (#19208)
Jan Kotas [Tue, 31 Jul 2018 21:47:23 +0000 (14:47 -0700)]
Delete dead code (#19208)

- IsAppXDesignMode is always false
- Win32Res class is never used

5 years agoDelete FEATURE_IPCMAN (#19212)
Jan Kotas [Tue, 31 Jul 2018 21:46:29 +0000 (14:46 -0700)]
Delete FEATURE_IPCMAN (#19212)

5 years agoJIT: fast path for minopts/debug codegen in lvaMarkRefs (#19103)
Andy Ayers [Tue, 31 Jul 2018 21:31:28 +0000 (14:31 -0700)]
JIT: fast path for minopts/debug codegen in lvaMarkRefs (#19103)

For minopts and debug codegen, consider all locals to be implicitly
referenced.

This is set up during `lvaMarkLocalVars` and maintained after that
by having `incRefCnts` set the implicit reference bit and not doing
anything in `decRefCnts` for minopts / debug.

Likewise suppress local var sorting, as we don't have accurate counts
to go by.

5 years agoUpdating SetCpuInfo to be more accurate
Tanner Gooding [Sat, 28 Jul 2018 17:37:59 +0000 (10:37 -0700)]
Updating SetCpuInfo to be more accurate

5 years agoR2RDump - Fix and update R2RDumpTests (#19039)
Amy [Tue, 31 Jul 2018 19:21:07 +0000 (12:21 -0700)]
R2RDump - Fix and update R2RDumpTests (#19039)

* Fix GenericFunctions and MultipleRuntimeFunctions tests, x86 nwindInfo tests

* Fix tests

* Avoid using rva as index

* Update expected xml

* Add count as an attribute

* Clean up and move rebaseline script to r2rdump test directory

* Remove R2RDumpTest warnings

* Use original test framework instead of netcoreapp2.0

5 years agoAdd netcoreapp dependencies (#19177)
Chris Sienkiewicz [Tue, 31 Jul 2018 18:23:43 +0000 (11:23 -0700)]
Add netcoreapp dependencies (#19177)

* Add MicrosoftNETCoreAppPackageVersion to dependencies.props
- Add MicrosoftNETCoreAppPackageVersion property
- Add required coresetup dependency build infos

* Change test projects to use new MicrosoftNETCoreAppPackageVersion property

5 years agoExpose the x86 HWIntrinsics via a set of class hierarchies matching the underlying...
Tanner Gooding [Sat, 28 Jul 2018 15:39:08 +0000 (08:39 -0700)]
Expose the x86 HWIntrinsics via a set of class hierarchies matching the underlying ISA hierarchies

5 years agoMoving the ilproj sdk to be built/published under the TargetsWindows condition
Tanner Gooding [Mon, 30 Jul 2018 20:26:09 +0000 (13:26 -0700)]
Moving the ilproj sdk to be built/published under the TargetsWindows condition

5 years agoFix HW intrinsics test projects naming and optimization levels according to repo...
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

5 years agoTemporarily flag a SIMD test as optimization-sensitive (#19163)
Koundinya Veluri [Mon, 30 Jul 2018 19:23:32 +0000 (12:23 -0700)]
Temporarily flag a SIMD test as optimization-sensitive (#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.

5 years agoChange type of EnumLocaleData to struct (#19193)
Jan Kotas [Mon, 30 Jul 2018 14:16:11 +0000 (07:16 -0700)]
Change type of EnumLocaleData to struct (#19193)

Saves allocation and makes the code smaller. It had to be class before we had ref locals.

5 years agoFix invalid IntPtr == null comparisons, set strict mode for Roslyn (#19191)
Jacek Blaszczynski [Mon, 30 Jul 2018 00:56:32 +0000 (02:56 +0200)]
Fix invalid IntPtr == null comparisons, set strict mode for Roslyn (#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

5 years agoAdded version increment for TrimExcess and EnsureCapacity (#19096)
Dávid Kaya [Sat, 28 Jul 2018 04:14:32 +0000 (06:14 +0200)]
Added version increment for TrimExcess and EnsureCapacity (#19096)

* Added version increment for TrimExcess and EnsureCapacity

* Added old unit test to exclusion list

* Excluded missing unit tests

5 years agobuild-test - fix TestWrapper CS warnings (#19180)
Jacek Blaszczynski [Sat, 28 Jul 2018 03:50:55 +0000 (05:50 +0200)]
build-test - fix TestWrapper CS warnings (#19180)

5 years agospmi: exclude methods using a file with saved md5 hashes. (#18769)
Sergey Andreenko [Sat, 28 Jul 2018 01:44:32 +0000 (18:44 -0700)]
spmi: exclude methods using a file with saved md5 hashes. (#18769)

* read md5, linear search for each method.

* rewrite with HANDLE

* fix linux

* do not waste time dumping md5 if no methods exluded

5 years agoMerge pull request #19165 from BruceForstall/FixCodeGenBringUpTestsBuilds
Bruce Forstall [Sat, 28 Jul 2018 00:21:03 +0000 (17:21 -0700)]
Merge pull request #19165 from BruceForstall/FixCodeGenBringUpTestsBuilds

Specify specific build flavors for CodeGenBringUpTests tests

5 years agoAdd comment explaining the return value of ToUpper/ToLower (#19176)
Ahson Khan [Sat, 28 Jul 2018 00:18:29 +0000 (17:18 -0700)]
Add comment explaining the return value of ToUpper/ToLower (#19176)

5 years agoUpdate arm64 comment for IsCallTargetInRange function
Bruce Forstall [Fri, 27 Jul 2018 23:59:14 +0000 (16:59 -0700)]
Update arm64 comment for IsCallTargetInRange function

5 years agoLowering: Atomic ops can produce a value (#19173)
Carol Eidt [Fri, 27 Jul 2018 23:19:48 +0000 (16:19 -0700)]
Lowering: Atomic ops can produce a value (#19173)

* Lowering: Atomic ops can produce a value

#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 #19171

5 years agoUpdating emitInsCanOnlyWriteSSE2OrAVXReg to cover some of the newer instructions.
Tanner Gooding [Thu, 26 Jul 2018 16:00:34 +0000 (09:00 -0700)]
Updating emitInsCanOnlyWriteSSE2OrAVXReg to cover some of the newer instructions.

5 years agoMerge pull request #19145 from CarolEidt/Fix19081
Carol Eidt [Fri, 27 Jul 2018 20:26:30 +0000 (13:26 -0700)]
Merge pull request #19145 from CarolEidt/Fix19081

Include long shifts in OperIsShiftOrRotate

5 years agoSpecify specific build flavors for CodeGenBringUpTests tests
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 #9722

5 years agoJIT: add extra check to struct of struct of x promotion (#19156)
Andy Ayers [Fri, 27 Jul 2018 18:09:02 +0000 (11:09 -0700)]
JIT: add extra check to struct of struct of x promotion (#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 #19149.

5 years agoAdd CI PR-triggered Ubuntu x64 innerloop no-tiering job (#19123)
Koundinya Veluri [Fri, 27 Jul 2018 16:54:40 +0000 (09:54 -0700)]
Add CI PR-triggered Ubuntu x64 innerloop no-tiering job (#19123)

5 years agoMerge pull request #19154 from BruceForstall/FixArm64Localloc
Bruce Forstall [Fri, 27 Jul 2018 16:25:54 +0000 (09:25 -0700)]
Merge pull request #19154 from BruceForstall/FixArm64Localloc

Fix overallocation of arm64 small constant localloc

5 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26727-01, preview1-26727-01, master-20180...
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 (#19102)

5 years agoReference in box HW intrinsics (#19137)
Jacek Blaszczynski [Fri, 27 Jul 2018 05:35:51 +0000 (07:35 +0200)]
Reference in box HW intrinsics (#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

5 years agoMerge pull request #19144 from BruceForstall/Fix13796
Bruce Forstall [Fri, 27 Jul 2018 04:42:30 +0000 (21:42 -0700)]
Merge pull request #19144 from BruceForstall/Fix13796

Re-enable arm64 tests that no longer fail

5 years agoFixing the x86 hwintrinsics to not assert for invalid generic types.
Tanner Gooding [Thu, 26 Jul 2018 20:46:48 +0000 (13:46 -0700)]
Fixing the x86 hwintrinsics to not assert for invalid generic types.

5 years agoFix overallocation of arm64 small constant localloc
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 #4571

5 years agoMerge pull request #19153 from adityamandaleeka/fix_buildtest_help
Aditya Mandaleeka [Thu, 26 Jul 2018 23:04:13 +0000 (16:04 -0700)]
Merge pull request #19153 from adityamandaleeka/fix_buildtest_help

Fix batch syntax error in help text

5 years agoFix syntax error in help text.
Aditya Mandaleeka [Thu, 26 Jul 2018 22:56:01 +0000 (15:56 -0700)]
Fix syntax error in help text.

5 years agoreenable corefx System.Runtime.Tests on arm32 (#19128)
Sergey Andreenko [Thu, 26 Jul 2018 22:46:53 +0000 (15:46 -0700)]
reenable corefx System.Runtime.Tests  on arm32 (#19128)

#17585 the issue was fixed long time ago, but this exclusion was forgotten.

5 years agoAdding the Microsoft.NET.Sdk.IL pkgproj
Tanner Gooding [Fri, 20 Jul 2018 20:33:10 +0000 (13:33 -0700)]
Adding the Microsoft.NET.Sdk.IL pkgproj

5 years agoInclude long shifts in OperIsShiftOrRotate
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 #19081

5 years agoRe-enable arm64 tests that no longer fail
Bruce Forstall [Thu, 26 Jul 2018 20:37:20 +0000 (13:37 -0700)]
Re-enable arm64 tests that no longer fail

Fixes #13796, #12549

Note that test GitHub_11408 is still disabled, now against issue #11408.

5 years agoSwitch to using MicrosoftNETCorePlatformsPackageVersion as the RuntimeFrameworkVersio...
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 (#19130)

5 years agoUpdate CoreFX documentation (#19092)
Andon Andonov [Thu, 26 Jul 2018 02:10:17 +0000 (19:10 -0700)]
Update CoreFX documentation (#19092)

* Update CoreFX documentation

* Add test binary refresh and parallelization sections

* Add test exclusion information

5 years agoSdk test projects (#19044)
Chris Sienkiewicz [Wed, 25 Jul 2018 18:13:27 +0000 (11:13 -0700)]
Sdk test projects (#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.

5 years agoRemoving duplicate CoreCLRTestLibrary project references
Tanner Gooding [Fri, 20 Jul 2018 18:07:30 +0000 (11:07 -0700)]
Removing duplicate CoreCLRTestLibrary project references

5 years agoRegenerating the x86 HWIntrinsic templated tests
Tanner Gooding [Fri, 20 Jul 2018 17:52:21 +0000 (10:52 -0700)]
Regenerating the x86 HWIntrinsic templated tests

5 years agoRemoving `Random random = new Random()` from the HWIntrinsic templates
Tanner Gooding [Fri, 20 Jul 2018 17:50:14 +0000 (10:50 -0700)]
Removing `Random random = new Random()` from the HWIntrinsic templates

5 years agoRealigning the HWIntrinsic template metadata tables
Tanner Gooding [Fri, 20 Jul 2018 17:47:47 +0000 (10:47 -0700)]
Realigning the HWIntrinsic template metadata tables

5 years agoReplacing usages of random with TestLibrary.Generator in the HWIntrinsic template...
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

5 years agoAdding TestLibrary.Generator methods for unsigned types
Tanner Gooding [Fri, 20 Jul 2018 17:19:33 +0000 (10:19 -0700)]
Adding TestLibrary.Generator methods for unsigned types

5 years agoFix mscordbi metadata reader alignment bug on Linux. (#19070)
Mike McLaughlin [Tue, 24 Jul 2018 19:19:59 +0000 (12:19 -0700)]
Fix mscordbi metadata reader alignment bug on Linux. (#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

5 years agoRelease leaked ICorProfilerCallback9 in ~EEToProfInterfaceImpl (#19106)
Ilia [Tue, 24 Jul 2018 16:49:16 +0000 (19:49 +0300)]
Release leaked ICorProfilerCallback9 in ~EEToProfInterfaceImpl (#19106)

Bug: 19093

5 years agoMerge pull request #19099 from BruceForstall/Arm64DebugBuild
Bruce Forstall [Tue, 24 Jul 2018 15:29:07 +0000 (08:29 -0700)]
Merge pull request #19099 from BruceForstall/Arm64DebugBuild

Change Windows arm32/arm64 Debug normal/innerloop jobs to NOT run tests

5 years agoRevert "Revert "Fix some failures when using build-test.sh"" (#18919)
Russ Keldorph [Tue, 24 Jul 2018 15:25:59 +0000 (08:25 -0700)]
Revert "Revert "Fix some failures when using build-test.sh"" (#18919)

This reverts commit 184c3504e763ea7147505a8d49cb54b43cc82d78.

5 years agoWork around cmd command length limit in xunit Exec task (#19095)
Sven Boemer [Tue, 24 Jul 2018 15:22:31 +0000 (08:22 -0700)]
Work around cmd command length limit in xunit Exec task (#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.

5 years agoAdd root MSBuild targets for Interop managed test assets (#19069)
Aaron Robinson [Tue, 24 Jul 2018 01:40:17 +0000 (18:40 -0700)]
Add root MSBuild targets for Interop managed test assets (#19069)

Add root CMake file for Interop native test assets

5 years agoChange Windows arm32/arm64 Debug normal/innerloop jobs to NOT run tests
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.

5 years agoAdd missing FlushInstructionCache to Thread::CommitGCStressInstructionUpdate (#18784)
Egor Chesakov [Mon, 23 Jul 2018 21:15:07 +0000 (14:15 -0700)]
Add missing FlushInstructionCache to Thread::CommitGCStressInstructionUpdate (#18784)

5 years agoDisable tests failing on ARM32 in https://github.com/dotnet/coreclr/pull/18784 (...
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 (#19087)

5 years agoR2RDump - UnwindInfo for x86 (#18994)
Amy [Mon, 23 Jul 2018 20:35:57 +0000 (13:35 -0700)]
R2RDump - UnwindInfo for x86 (#18994)

* UnwindInfo for x86

* Update tests

5 years agoChange gtExtractSideEffList to use GenTreeVisitor (#18257)
mikedn [Mon, 23 Jul 2018 19:21:34 +0000 (22:21 +0300)]
Change gtExtractSideEffList to use GenTreeVisitor (#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

5 years agoPartial R2R IBC fixes (#19073)
Jan Kotas [Mon, 23 Jul 2018 19:17:56 +0000 (12:17 -0700)]
Partial R2R IBC fixes (#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

5 years agoJIT: some lclvars related cleanup (#19077)
Andy Ayers [Mon, 23 Jul 2018 18:47:17 +0000 (11:47 -0700)]
JIT: some lclvars related cleanup (#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.

5 years agoRemove hosthook api (#19079)
Aaron Robinson [Mon, 23 Jul 2018 10:30:57 +0000 (03:30 -0700)]
Remove hosthook api (#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