platform/upstream/coreclr.git
6 years agoImplement AVX2 LoadAlignedVector256/128NonTemporal
Fei Peng [Mon, 5 Feb 2018 20:14:52 +0000 (12:14 -0800)]
Implement AVX2 LoadAlignedVector256/128NonTemporal

6 years agoImplement SSE3 LoadAndDuplicateToVector128 and LoadDquVector128
Fei Peng [Sun, 4 Feb 2018 19:33:51 +0000 (11:33 -0800)]
Implement SSE3 LoadAndDuplicateToVector128 and LoadDquVector128

6 years agoImplement AVX LoadAlignedVector256, LoadDquVector256, and LoadVector256
Fei Peng [Sun, 4 Feb 2018 07:40:04 +0000 (23:40 -0800)]
Implement AVX LoadAlignedVector256, LoadDquVector256, and LoadVector256

6 years agoMerge pull request #16228 from fiigii/store
Carol Eidt [Tue, 6 Feb 2018 20:58:38 +0000 (12:58 -0800)]
Merge pull request #16228 from fiigii/store

Implement AVX/SSE2 Store* intrinsics

6 years agoMerge pull request #16235 from CarolEidt/FixPrefetchBuildBreak
Carol Eidt [Tue, 6 Feb 2018 20:55:13 +0000 (12:55 -0800)]
Merge pull request #16235 from CarolEidt/FixPrefetchBuildBreak

Disable prefetch instructions for LEGACY_BACKEND

6 years agoMerge pull request #16006 from BruceForstall/AddWindowsArmCoreFxTesting
Bruce Forstall [Tue, 6 Feb 2018 19:28:09 +0000 (11:28 -0800)]
Merge pull request #16006 from BruceForstall/AddWindowsArmCoreFxTesting

Enable Windows ARM32 corefx testing

6 years agoDon't remove the first non-internal block that has profile weight. (#16227)
Eugene Rozenfeld [Tue, 6 Feb 2018 19:19:32 +0000 (11:19 -0800)]
Don't remove the first non-internal block that has profile weight. (#16227)

When using profile weights, fgComputeEdgeWeights expects the first non-internal block to have profile weight.
Make sure we don't break that invariant when removing an empty block.

This fixes VSO 546031.

6 years agoFix handling of return code for system() calls (#16225)
Jan Kotas [Tue, 6 Feb 2018 19:11:47 +0000 (11:11 -0800)]
Fix handling of return code for system() calls (#16225)

The value returned from system() is encoded bag of bits that gets
misinterpretted once it starts propagate through the system. Normalize
it to 0/1.

6 years agoEnable Windows ARM32 corefx testing
Bruce Forstall [Thu, 25 Jan 2018 00:27:52 +0000 (16:27 -0800)]
Enable Windows ARM32 corefx testing

We create a flow job for each arm32 corefx mode, e.g.
arm_cross_checked_windows_nt_corefx_jitstress1_flow_prtest. This
depends on a build job that is specific to the stress mode, e.g.
arm_cross_checked_windows_nt_corefx_jitstress1_bld_prtest, which
(on x64) builds CoreCLR, then clones and builds CoreFX using run-corefx-tests.py.
In particular, it only builds the CoreFX tests; it doesn't run them.
Note that because the CoreFX test build embeds the stress mode environment
variables in its generated RunTests.cmd scripts, we need a different
corefx build dependency for each corefx test run; we can't share the
builds. The build script then ZIPs up the CoreFX tests and generated
CoreFX runtime (which will include the coreclr runtime because we built
CoreFX with the `/p:CoreCLROverridePath` argument), and archives these.

The test job, which runs on an arm64 machine, then copies the ZIPed
tests and runtime, unzips them, and runs a batch script to run each
RunTests.cmd file. Note that we don't use any existing mechanism to
run each test (such as msbuild), and I believe the CoreFX msbuild
harness doesn't have any mechanism to just run a previously built set of tests.

There is a very simple test exclusion mechanism: an entire test assembly
can be excluded by putting its name (e.g., System.IO.Ports.Tests), in
a file (e.g., tests\arm\corefx_test_exclusions.txt).

Note that this corefx testing mechanism is only enabled for arm
(aka arm32), not armlb or arm64.

6 years agoReplace comment inadvertently removed
Carol Eidt [Tue, 6 Feb 2018 18:17:16 +0000 (10:17 -0800)]
Replace comment inadvertently removed

6 years agoDisable prefetch instructions for LEGACY_BACKEND
Carol Eidt [Tue, 6 Feb 2018 17:53:00 +0000 (09:53 -0800)]
Disable prefetch instructions for LEGACY_BACKEND

6 years agoMove String.Manipulation.cs to shared (#16226)
Jan Kotas [Tue, 6 Feb 2018 08:22:13 +0000 (00:22 -0800)]
Move String.Manipulation.cs to shared (#16226)

6 years agoImplement SSE2 Store* intrinsics
Fei Peng [Tue, 6 Feb 2018 07:15:12 +0000 (23:15 -0800)]
Implement SSE2 Store* intrinsics

6 years agoImplement AVX Store* intrinsics
Fei Peng [Tue, 6 Feb 2018 06:25:07 +0000 (22:25 -0800)]
Implement AVX Store* intrinsics

6 years agoAdding tests for the StoreFence/Prefetch* APIs and the new Sse scalar overloads.
Tanner Gooding [Sat, 3 Feb 2018 17:30:11 +0000 (09:30 -0800)]
Adding tests for the StoreFence/Prefetch* APIs and the new Sse scalar overloads.

6 years agoAdding support for the StoreFence/Prefetch* APIs and the new Sse scalar overloads.
Tanner Gooding [Sat, 3 Feb 2018 17:28:56 +0000 (09:28 -0800)]
Adding support for the StoreFence/Prefetch* APIs and the new Sse scalar overloads.

6 years agoReimplement string.Replace in managed code (#16214)
Jan Kotas [Tue, 6 Feb 2018 05:24:50 +0000 (21:24 -0800)]
Reimplement string.Replace in managed code (#16214)

6 years agoRemoving the Sse2.LoadScalarVector128 overloads that are invalid.
Tanner Gooding [Tue, 6 Feb 2018 00:45:46 +0000 (16:45 -0800)]
Removing the Sse2.LoadScalarVector128 overloads that are invalid.

6 years agoImplementation of GetFullPath(string path, string basePath) (#15579)
Anirudh Agnihotry [Tue, 6 Feb 2018 01:39:37 +0000 (17:39 -0800)]
Implementation of GetFullPath(string path, string basePath) (#15579)

GetFullPathAPI Overload

6 years agoMoving a number of the Sse2 hwintrinsic tests to use the test template.
Tanner Gooding [Sat, 3 Feb 2018 22:32:27 +0000 (14:32 -0800)]
Moving a number of the Sse2 hwintrinsic tests to use the test template.

6 years agoAdding tests for the SSE2 LoadVector128, LoadAlignedVector128, and LoadScalarVector12...
Tanner Gooding [Sat, 3 Feb 2018 18:06:54 +0000 (10:06 -0800)]
Adding tests for the SSE2 LoadVector128, LoadAlignedVector128, and LoadScalarVector128 intrinsics.

6 years agoAdding support for the SSE2 LoadVector128, LoadAlignedVector128, and LoadScalarVector...
Tanner Gooding [Sat, 3 Feb 2018 17:53:54 +0000 (09:53 -0800)]
Adding support for the SSE2 LoadVector128, LoadAlignedVector128, and LoadScalarVector128 intrinsics.

6 years agoRemove FEATURE_ACTIVITYSAMPLING and associated code. (#16185)
Brian Robbins [Tue, 6 Feb 2018 00:15:55 +0000 (16:15 -0800)]
Remove FEATURE_ACTIVITYSAMPLING and associated code. (#16185)

6 years agoMerge pull request #16218 from briansull/revert-15910
Brian Sullivan [Mon, 5 Feb 2018 23:08:55 +0000 (15:08 -0800)]
Merge pull request #16218 from briansull/revert-15910

Revert #15910 [R2R] add a virtualStubParamInfo as an argument

6 years agoRevert #15910 [R2R] add a virtualStubParamInfo as an argument
Brian Sullivan [Mon, 5 Feb 2018 21:36:31 +0000 (13:36 -0800)]
Revert #15910 [R2R] add a virtualStubParamInfo as an argument

6 years agoAdded a factory to FileStreamCompletionSource (#16190)
David Fowler [Mon, 5 Feb 2018 20:52:08 +0000 (12:52 -0800)]
Added a factory to FileStreamCompletionSource (#16190)

* Merged FileStreamCompletionSource and MemoryCompletionSource
- Change FileStreamCompletionSource to take a ReadOnlyMemory<byte> instead of byte[]
- Delegate to memory.Retain if the underlying ReadOnlyMemory<byte> is backed by an array that isn't the stream's internal buffer.

* Brought back MemoryFileStreamCompletionSource
- Added a factory method to FileStreamCompletionSource that
picks the an impl or FileStreamCompletionSource or MemoryFileStreamCompletionSource based on the buffer matching the underlying stream's internal buffer.

* PR feedback
- Cleanup the condition
- Flip to Debug.Assert in FileStreamCompletionSource

* Check for null before using the PreAllocatedOverlapped

6 years agoMerge pull request #16103 from mikedn/xorps
Brian Sullivan [Mon, 5 Feb 2018 18:00:36 +0000 (10:00 -0800)]
Merge pull request #16103 from mikedn/xorps

Use xorps instead of xorpd

6 years agoUpdate CoreClr to preview2-26205-05 (#16205)
dotnet-maestro-bot [Mon, 5 Feb 2018 16:22:11 +0000 (10:22 -0600)]
Update CoreClr to preview2-26205-05 (#16205)

6 years agoUse stackalloc in string.Split (#15435)
Alex [Mon, 5 Feb 2018 04:17:03 +0000 (06:17 +0200)]
Use stackalloc in string.Split (#15435)

* Use stackalloc in string.Split

* Added initial usage of ValueListBuilder

* Added usage of list builder to string separator Split overloads

6 years agoMerge pull request #16199 from dotnet/revert-15944-CorefxTestUseCorrectVersion
Jan Kotas [Sun, 4 Feb 2018 22:34:11 +0000 (14:34 -0800)]
Merge pull request #16199 from dotnet/revert-15944-CorefxTestUseCorrectVersion

Revert "For corefx testing, use a matching corefx repo version git hash"

6 years agoRevert "For corefx testing, use a matching corefx repo version git hash"
Jan Kotas [Sun, 4 Feb 2018 19:08:05 +0000 (11:08 -0800)]
Revert "For corefx testing, use a matching corefx repo version git hash"

6 years agoUpdate CoreClr to preview2-26204-05 (#16191)
dotnet-maestro-bot [Sun, 4 Feb 2018 18:21:46 +0000 (12:21 -0600)]
Update CoreClr to preview2-26204-05 (#16191)

6 years agoMerge pull request #16182 from CarolEidt/FixDD543057
Carol Eidt [Sun, 4 Feb 2018 15:23:01 +0000 (07:23 -0800)]
Merge pull request #16182 from CarolEidt/FixDD543057

Consider specialPutArgs for jitStressRegs

6 years agoFix failfast stacktrace (#15895)
Sung Yoon Whang [Sat, 3 Feb 2018 23:58:22 +0000 (15:58 -0800)]
Fix failfast stacktrace (#15895)

* attempt to fix stacktrace getting printed twice

* Fix some default parameter issues, and wrong commit from last commit

* Fix build errors, switch call from Debug.Assert to new FailFast FCall

* Fix signature to allow more types of exception title

* cleanup

* Addressing comments from PR

* More PR comments

* remove useless using

* Address comments on GC hole and few naming changes

6 years agoJitBench harness improvements (#15151)
Noah Falk [Sat, 3 Feb 2018 23:03:30 +0000 (15:03 -0800)]
JitBench harness improvements (#15151)

* Improvements to JitBench perf test

1) More of the scenario setup is delegated to the scripts in the JitBench repo. The run now consists of (a) acquire source (b) RunBenchmark.ps1 -SetupOnly (c) run dotnet MusicStore.dll over and over to get measurements.
2) A specific last known good framework version is used instead of an open-ended latest version. This should make the test more reliable day-to-day at the cost that we have to bump the version when breaking changes occur.
3) Added an option to test with a local copy of JitBench instead of acquiring one from github. This is useful to for testing simultaneous changes in both repos.
4) Updated the output parsing to account for the changes I made in MusicStore's console spew.

* Code review feedback

* Don't use precompiled views by default

In order to match the previous benchmark results we should avoid
using precompiled views.

* Fixed JitBench local repo issue

In my earlier change I accidentally broke the normal scenario when you do not use a local copy of JitBench repo. This case was failing with an exception in SetupStatics because the null directory didn't exist.

6 years agoUpdating the templated x86 hwintrinsic tests to validate Load and LoadAligned
Tanner Gooding [Sat, 3 Feb 2018 08:13:27 +0000 (00:13 -0800)]
Updating the templated x86 hwintrinsic tests to validate Load and LoadAligned

6 years agoUpdating the HWIntrinsic codegen to support marking LoadVector128 and LoadAlignedVect...
Tanner Gooding [Tue, 30 Jan 2018 05:20:08 +0000 (21:20 -0800)]
Updating the HWIntrinsic codegen to support marking LoadVector128 and LoadAlignedVector128 as contained.

6 years agoRemove AsyncMethodBuilder from shared partition (#16149)
Ben Adams [Sat, 3 Feb 2018 05:29:30 +0000 (05:29 +0000)]
Remove AsyncMethodBuilder from shared partition (#16149)

* Remove AsyncMethodBuilder from shared partition

* AsyncMethodBuilder => AsyncMethodBuilderCore

6 years agoChanging Span/Memory to return default on null instead of throwing. (#16186)
Ahson Khan [Sat, 3 Feb 2018 03:30:25 +0000 (19:30 -0800)]
Changing Span/Memory to return default on null instead of throwing. (#16186)

* Additional changes based on feedback (bounds checks)

* Adding remaining bounds checks

6 years agoUpdate BuildTools, CoreClr, CoreFx to preview2-02502-01, preview2-26203-01, preview2...
dotnet-maestro-bot [Sat, 3 Feb 2018 03:27:20 +0000 (21:27 -0600)]
Update BuildTools, CoreClr, CoreFx to preview2-02502-01, preview2-26203-01, preview2-26202-05, respectively (#16180)

6 years agoDictionary exposes internal type comparer (#16151)
Marco Rossignoli [Sat, 3 Feb 2018 03:08:43 +0000 (04:08 +0100)]
Dictionary exposes internal type comparer (#16151)

Fixes dotnet/corefx#26033

6 years agoDelete unused SSA_FEATURE_USEDEF ifdefs (#15654)
mikedn [Sat, 3 Feb 2018 02:58:33 +0000 (04:58 +0200)]
Delete unused SSA_FEATURE_USEDEF ifdefs (#15654)

6 years agoFix GetILToNativeMapping3 to return mappings for the specified code start address...
Koundinya Veluri [Sat, 3 Feb 2018 01:55:39 +0000 (17:55 -0800)]
Fix GetILToNativeMapping3 to return mappings for the specified code start address (#16146)

Fix GetILToNativeMapping3 to return mappings for the specified code start address

Fix for https://github.com/dotnet/coreclr/issues/16145 in master:
- Previously, it was getting or creating the current entry point's corresponding DebugJitInfo and determining that the specified code address is not within the code range
- Fixed to get or create a DebugJitInfo corresponding to the specified code address and return that

6 years agoFix AV in crossgen when generating PDBs (#16184)
Andy Ayers [Sat, 3 Feb 2018 01:20:48 +0000 (17:20 -0800)]
Fix AV in crossgen when generating PDBs (#16184)

I missed updating one of the callers of `ReadyToRunInfo::GetEntryPoint`
in #15801. Fix by making the last arg explicit so this kind of type
confusion error is less likely, and updating the missed call site.

Closes #16177.

6 years agoFix mirroring build break
Tarek Mahmoud Sayed [Fri, 2 Feb 2018 22:32:46 +0000 (14:32 -0800)]
Fix mirroring build break

6 years agoSpan factoring (dotnet/corefx#26667)
Tarek Mahmoud Sayed [Fri, 2 Feb 2018 19:40:39 +0000 (11:40 -0800)]
Span factoring (dotnet/corefx#26667)

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoMerge pull request #16133 from eerhardt/AddVectorToCoreLib
Eric Erhardt [Fri, 2 Feb 2018 23:55:52 +0000 (17:55 -0600)]
Merge pull request #16133 from eerhardt/AddVectorToCoreLib

Add Vector<T> to CoreLib.

6 years agoConsider specialPutArgs for jitStressRegs
Carol Eidt [Fri, 2 Feb 2018 22:19:38 +0000 (14:19 -0800)]
Consider specialPutArgs for jitStressRegs

When we have a lclVar that is being kept alive between its `PUTARG_REG` and the call, we need to take that into account in determining the minimum register requirement for a node.

6 years agoEvent Pipe File V3 (#16107)
Adam Sitnik [Fri, 2 Feb 2018 22:07:25 +0000 (23:07 +0100)]
Event Pipe File V3 (#16107)

* write missing information to the event pipe file (pointer size to make it work fo x86)

* define where the events start, not only where they end

* include process Id in the event pipe file, bump the version so old consumers get clear error message

* write the missing EndObject tag to close the header

* include expected CPU sampling rate in the event pipe header file

* include keywords in V3 of EventPipe metadata, fixes #11934

* remove forward references

* entry object comes after the header and ends after it's data, before the event block objects

* introduce event block

* fix the GC contracts

* generate metadata ids

* end the file with null reference tag

* getting it work

* 4 byte alignment of serialized event data

* Revert "include keywords in V3 of EventPipe metadata, fixes #11934"

This reverts commit 98ef2f588e271f928fd051e96da526dc1e0f017c.

* remove event Id and event version from metadata buffer (it was duplicated with native code)

* increase the block size to be the same as buffer size

* Write the last event block to the file after disabling the event pipe, right after last events

* include the sife in itself

* the native part was supposed to not duplicate the event id and version, not manged

* ensure 4 byte alignment

* build metadata when it's not provided, so payload is never empty (no need to serialize length)

* this todo is no longer valid

* don't align everything, just the content of event block as suggested by @vancem

* improvements after code review

* update TraceEvent dependency, make the test verify new feature

* InterlockedIncrement(Int32) is not available for non-Windows OSes

* code improvements after Skype code review from @jorive

6 years agoAdd assert for failure to open a file in FastSerializer. (#16178)
Brian Robbins [Fri, 2 Feb 2018 19:20:49 +0000 (11:20 -0800)]
Add assert for failure to open a file in FastSerializer. (#16178)

6 years agoUpdate CoreClr, CoreFx to preview2-26202-06, preview2-26202-01, respectively (master...
dotnet-maestro-bot [Fri, 2 Feb 2018 17:39:31 +0000 (11:39 -0600)]
Update CoreClr, CoreFx to preview2-26202-06, preview2-26202-01, respectively (master) (#16169)

* Update CoreClr, CoreFx to preview2-26202-06, preview2-26202-01, respectively

* Re-enable and fix the Sse hwintrinsic tests that had API name changes.

6 years agoMerge pull request #16157 from dotnetrt/sse2fix
Carol Eidt [Fri, 2 Feb 2018 17:17:32 +0000 (09:17 -0800)]
Merge pull request #16157 from dotnetrt/sse2fix

Fix validation code in Sse2.MultiplyLow tests

6 years agoIfdef out Compiler::lvaVarPref (#15329)
mikedn [Fri, 2 Feb 2018 15:00:26 +0000 (17:00 +0200)]
Ifdef out Compiler::lvaVarPref (#15329)

6 years agoupdate cla link (#16170)
Maira Wenzel [Fri, 2 Feb 2018 14:47:49 +0000 (06:47 -0800)]
update cla link (#16170)

6 years agoajdust -> adjust (dotnet/corert#5327)
John Doe [Thu, 1 Feb 2018 22:24:41 +0000 (14:24 -0800)]
ajdust -> adjust (dotnet/corert#5327)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years ago[R2R] add a virtualStubParamInfo as an argument (#15910)
Sergey Andreenko [Fri, 2 Feb 2018 06:59:54 +0000 (22:59 -0800)]
[R2R] add a virtualStubParamInfo as an argument (#15910)

* add a virtualStubParamInfo as an argument

* Revert legacy workaround from lower.

6 years agoAdd New EventPipe Tests (#16130)
Brian Robbins [Fri, 2 Feb 2018 02:48:34 +0000 (18:48 -0800)]
Add New EventPipe Tests (#16130)

6 years agoRevert "Disable some test cases to workaround compiler bug" (#16161)
Russ Keldorph [Fri, 2 Feb 2018 01:56:46 +0000 (17:56 -0800)]
Revert "Disable some test cases to workaround compiler bug" (#16161)

This reverts commit a0033795f551053cb199d85c77926f0840f5b583.

Fixes #12233

6 years agoFix detection of YMM registers presence (#16168)
Jan Vorlicek [Fri, 2 Feb 2018 01:54:47 +0000 (02:54 +0100)]
Fix detection of YMM registers presence (#16168)

It was found that we incorrectly try to restore YMM registers in RtlRestoreContext
when the processor supports xstate, but doesn't have YMM registers. This change
fixes that by testing the YMM presence flag too.

6 years agoMerge pull request #16092 from CarolEidt/RefactorRefBuilding
Carol Eidt [Fri, 2 Feb 2018 00:45:03 +0000 (16:45 -0800)]
Merge pull request #16092 from CarolEidt/RefactorRefBuilding

Refactor RefPosition and Interval Building

6 years agoFix DevDiv_543045 (#16167)
Sergey Andreenko [Fri, 2 Feb 2018 00:31:46 +0000 (16:31 -0800)]
Fix DevDiv_543045 (#16167)

6 years agoAdd lsrabuild.cpp to jit.settings.targets
Carol Eidt [Fri, 2 Feb 2018 00:15:48 +0000 (16:15 -0800)]
Add lsrabuild.cpp to jit.settings.targets

6 years agoUse ValueTask shared from corelib (dotnet/corefx#26636)
Stephen Toub [Thu, 1 Feb 2018 22:22:00 +0000 (17:22 -0500)]
Use ValueTask shared from corelib (dotnet/corefx#26636)

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoMemory footprint gc latency level (#15469)
gbalykov [Thu, 1 Feb 2018 23:46:39 +0000 (02:46 +0300)]
Memory footprint gc latency level (#15469)

Starting the work on latency levels
Current tuning is latency_level_balanced
Added the latency_level_memory_footprint level for optimizing for memory footprint

6 years agoFix Arm64 compile error
Carol Eidt [Thu, 1 Feb 2018 22:59:11 +0000 (14:59 -0800)]
Fix Arm64 compile error

6 years agoRefactor RefPosition and Interval Building
Carol Eidt [Mon, 29 Jan 2018 00:20:51 +0000 (16:20 -0800)]
Refactor RefPosition and Interval Building

Move code for building `RefPosition`s and `Interval`s out of lsra.cpp into lsrabuild.cpp. Also, move common code from lsraarm*.cpp and lsraxarch.cpp to lsrabuild.cpp.

Maintain the `ListNodePool` on the `LinearScan` object to be used by all the building methods.

Rename `TreeNodeInfoInit` methods to `Build`, to more accurately reflect the next round of changes where they will build the `RefPosition`s directly.

6 years agoMerge pull request #16155 from jashook/merge_jit_and_JIT
Jarret Shook [Thu, 1 Feb 2018 19:27:19 +0000 (11:27 -0800)]
Merge pull request #16155 from jashook/merge_jit_and_JIT

Remove lower case jit test dir

6 years agoFix validation code in Sse2.MultiplyLow tests
Jacek Blaszczynski [Thu, 1 Feb 2018 18:58:52 +0000 (19:58 +0100)]
Fix validation code in Sse2.MultiplyLow tests

Fixes #16153

6 years agoRemote lower case jit test dir
jashook [Thu, 1 Feb 2018 18:31:37 +0000 (10:31 -0800)]
Remote lower case jit test dir

6 years agoUpdate CoreClr, CoreFx to preview2-26201-05, preview2-26201-05, respectively (#16150)
dotnet-maestro-bot [Thu, 1 Feb 2018 17:05:53 +0000 (11:05 -0600)]
Update CoreClr, CoreFx to preview2-26201-05, preview2-26201-05, respectively (#16150)

6 years agoFixing some of the x86 HWIntrinsics to only use byteable registers, where required
Tanner Gooding [Wed, 31 Jan 2018 16:46:20 +0000 (08:46 -0800)]
Fixing some of the x86 HWIntrinsics to only use byteable registers, where required

6 years agoMoving the Sse Compare*OrderedScalar and Compare*UnorderedScalar tests to use a template.
Tanner Gooding [Wed, 31 Jan 2018 05:18:45 +0000 (21:18 -0800)]
Moving the Sse Compare*OrderedScalar and Compare*UnorderedScalar tests to use a template.

6 years agoMoving the Sse max/min tests to use the template.
Tanner Gooding [Wed, 31 Jan 2018 04:43:26 +0000 (20:43 -0800)]
Moving the Sse max/min tests to use the template.

6 years agoMoving the Sse comparison tests to use the template.
Tanner Gooding [Wed, 31 Jan 2018 04:30:58 +0000 (20:30 -0800)]
Moving the Sse comparison tests to use the template.

6 years ago[Arm64] Add Lower Compare Zero comments
Steve MacLean [Thu, 1 Feb 2018 13:22:18 +0000 (08:22 -0500)]
[Arm64] Add Lower Compare Zero comments

6 years ago[Arm64] HWIntrinsic codegen function headers
Steve MacLean [Wed, 31 Jan 2018 21:30:31 +0000 (16:30 -0500)]
[Arm64] HWIntrinsic codegen function headers

6 years ago[Arm64] Lower Unsigned Compare Zero
Steve MacLean [Wed, 31 Jan 2018 15:51:49 +0000 (10:51 -0500)]
[Arm64] Lower Unsigned Compare Zero

6 years ago[Arm64] Implement Simd.SetAllVector*
Steve MacLean [Wed, 31 Jan 2018 17:48:13 +0000 (12:48 -0500)]
[Arm64] Implement Simd.SetAllVector*

6 years ago[Arm64] Implement Simd.BitwiseSelect
Steve MacLean [Tue, 30 Jan 2018 16:21:09 +0000 (11:21 -0500)]
[Arm64] Implement Simd.BitwiseSelect

6 years ago[Arm64] Implement Simd.Extract
Steve MacLean [Fri, 26 Jan 2018 22:24:54 +0000 (17:24 -0500)]
[Arm64] Implement Simd.Extract

6 years agoUpdate CoreClr, CoreFx to preview2-26201-01, preview2-26201-01, respectively (#16142)
dotnet-maestro-bot [Thu, 1 Feb 2018 08:07:15 +0000 (02:07 -0600)]
Update CoreClr, CoreFx to preview2-26201-01, preview2-26201-01, respectively (#16142)

6 years agoChange the Span ToString semantics to return the contents for T=char (#16143)
Ahson Khan [Thu, 1 Feb 2018 08:03:49 +0000 (00:03 -0800)]
Change the Span ToString semantics to return the contents for T=char (#16143)

6 years agoRename ConvertScalarToVector128UInt32Scalar to ConvertScalarToVector128UInt32
Tanner Gooding [Thu, 1 Feb 2018 04:13:27 +0000 (20:13 -0800)]
Rename ConvertScalarToVector128UInt32Scalar to ConvertScalarToVector128UInt32

6 years agoUpdating IF_RWR_RRD_MRD_CNS and IF_RWR_RRD_SRD_CNS to encode reg2, rather than reg1...
Tanner Gooding [Thu, 1 Feb 2018 00:39:39 +0000 (16:39 -0800)]
Updating IF_RWR_RRD_MRD_CNS and IF_RWR_RRD_SRD_CNS to encode reg2, rather than reg1, in 3456

6 years agoMerge pull request #16136 from CarolEidt/Fix16135
Carol Eidt [Thu, 1 Feb 2018 04:40:46 +0000 (20:40 -0800)]
Merge pull request #16136 from CarolEidt/Fix16135

Fix encoding of RCPPS and RSQRTPS

6 years agoAdding TrimExcess APIs for Dictionary class
Maryam Ariyan [Wed, 31 Jan 2018 23:49:03 +0000 (18:49 -0500)]
Adding TrimExcess APIs for Dictionary class

6 years agoAdd ETL flags for ReadyToRun (#15801)
Andy Ayers [Thu, 1 Feb 2018 02:01:22 +0000 (18:01 -0800)]
Add ETL flags for ReadyToRun (#15801)

Add flags to track the presence of ReadyToRun codegen in an assembly
and module.

Add jitting flags to indicate when a method is jitted because the
precompiled code was rejected, either by a profiler or by ReadyToRun
dependence tracking.

Together these can be used to distingish between
* methods jitted because their assemblies were not precompiled
* methods jitted because they were not precompiled in an otherwise
precompiled assembly

6 years agoDelete GenTreePtr. (#16027)
Sergey Andreenko [Thu, 1 Feb 2018 01:52:39 +0000 (17:52 -0800)]
Delete GenTreePtr. (#16027)

* jit sources: Each local pointer variable must be declared on its own line.

Implement https://github.com/dotnet/coreclr/blob/master/Documentation/coding-guidelines/clr-jit-coding-conventions.md#101-pointer-declarations
Each local pointer variable must be declared on its own line.

* add constGenTreePtr

* delete GenTreePtr

* delete constGenTreePtr

* fix arm

6 years agoMerge pull request #16116 from fiigii/fixgeneric
Carol Eidt [Thu, 1 Feb 2018 01:50:08 +0000 (17:50 -0800)]
Merge pull request #16116 from fiigii/fixgeneric

Fix table-driven framework for one-type-arg generic HW intrinsics

6 years agoMerge pull request #16114 from tannergooding/hwintrin-flags
Tanner Gooding [Thu, 1 Feb 2018 01:35:45 +0000 (17:35 -0800)]
Merge pull request #16114 from tannergooding/hwintrin-flags

Fixing up some hwintrinsic flags for the x86 intrinsics.

6 years ago[local gc] Enable eventing (#16120)
David Mason [Thu, 1 Feb 2018 00:56:27 +0000 (16:56 -0800)]
[local gc] Enable eventing (#16120)

* move GC etw enums to gcinterface.ee.h

* add GetActiveSyncBlockCount

* refactor reference to ETW::GCLog::ShouldTrackMovementForEtw()

* mov g_dwHandles to gc side

* enable FEATURE_EVENT_TRACE for gc

6 years agoFixing up some hwintrinsic flags for the x86 intrinsics.
Tanner Gooding [Wed, 31 Jan 2018 02:35:48 +0000 (18:35 -0800)]
Fixing up some hwintrinsic flags for the x86 intrinsics.

6 years agoRespond to PR feedback.
Eric Erhardt [Thu, 1 Feb 2018 00:19:50 +0000 (18:19 -0600)]
Respond to PR feedback.

- Move IsIntrinicType check earlier, and use it during CheckIfSIMDAndUpdateSize.
- Check all types for [Intrinsic] attribute.

6 years agoSpan overload added for path apis (#15608)
Anirudh Agnihotry [Wed, 31 Jan 2018 23:36:07 +0000 (15:36 -0800)]
Span overload added for path apis (#15608)

Span overload path apis

6 years agoFix encoding of RCPPS and RSQRTPS
Carol Eidt [Wed, 31 Jan 2018 23:27:02 +0000 (15:27 -0800)]
Fix encoding of RCPPS and RSQRTPS

These instructions do not permit a 3rd register, and the vvvv field must be all ones (same as xmm0 encoding, which is why this can go undetected)

Fix #16135

6 years agoFix table-driven framework for one-type-arg generic intrinsics
Fei Peng [Wed, 31 Jan 2018 23:26:33 +0000 (15:26 -0800)]
Fix table-driven framework for one-type-arg generic intrinsics

6 years agoJIT: handle GT_SUB in gtClone (#16128)
Andy Ayers [Wed, 31 Jan 2018 22:08:05 +0000 (14:08 -0800)]
JIT: handle GT_SUB in gtClone (#16128)

For uniformity's sake, handle GT_SUB just like GT_ADD in gtClone.
Otherwise for a span s, the jit codegen for s[i+1] and s[i-1] can
end up substantially different.

See notes in #13097.

6 years agoJIT: add a bit more importer folding (#16111)
Andy Ayers [Wed, 31 Jan 2018 22:06:59 +0000 (14:06 -0800)]
JIT: add a bit more importer folding (#16111)

Eagerly fold expression trees for non-branch conditional operations.

Leads to elimination of boxes in some idiomatic uses. See notes and
examples in #14472.

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview2-02431-05, preview2-26131...
dotnet-maestro-bot [Wed, 31 Jan 2018 21:31:28 +0000 (15:31 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview2-02431-05, preview2-26131-05, preview2-26131-05, master-20180131-0033, respectively (#16131)

6 years agoMerge with latest code and PR feedback.
Eric Erhardt [Wed, 31 Jan 2018 21:10:47 +0000 (15:10 -0600)]
Merge with latest code and PR feedback.