platform/upstream/coreclr.git
6 years agoMove IValueTaskSource and friends to System.Threading.Tasks.Sources
Stephen Toub [Thu, 1 Mar 2018 03:43:29 +0000 (22:43 -0500)]
Move IValueTaskSource and friends to System.Threading.Tasks.Sources

Group these more advanced types into a subnamespace.

6 years agoAdd token to IValueTaskSource
Stephen Toub [Thu, 1 Mar 2018 03:25:02 +0000 (22:25 -0500)]
Add token to IValueTaskSource

6 years agoImplement ValueTask extensibility
Stephen Toub [Wed, 28 Feb 2018 05:53:03 +0000 (00:53 -0500)]
Implement ValueTask extensibility

This commit adds support for extending `ValueTask<T>` with arbitrary backing sources.  Prior to this change, `ValueTask<T>` could wrap a `T` or a `Task<T>`; now it can also wrap an `IValueTaskSource<T>`, which can be implemented by arbitrary objects to be represented by `ValueTask<T>`.  These objects can then be pooled and reused to minimize allocation.  The commit also adds a non-generic `ValueTask` that can represent void-returning operations, including a `default` synchronous success, `Task`, and `IValueTaskSource`.  For the non-generic `ValueTask`, the commit also includes awaiters and async method builders, so it can be both awaited and used as the return type of an async method.

The rest of the changes fall into a few buckets all related to enabling this support:
- Modifying `AsyncTaskMethodBuilder<TResult>.AwaitUnsafeOnCompleted` to specially recognize any `ValueTask` and utilize either the `Task` or `IValueTaskSource` that backs it to avoid allocating an Action MoveNext method.  If every object awaited in an async method is either a `Task`/`Task<T>` or `ValueTask`/`ValueTask<T>`, regardless of what the `ValueTask`/`ValueTask<T>` wraps, we'll be able to avoid allocating the delegate and only allocate the single state machine object that also serves as the returned object.
- Changing `Stream.WriteAsync` to return `ValueTask` instead of `Task`.  This enables interested overriding stream types to use a reusable/pooled object to avoid `WriteAsync` allocations.
- Modifying Stream.CopyToAsync to use the new `Memory`-based overloads of `ReadAsync` and `WriteAsync`.  This enables the default `CopyToAsync` implementation to take advantage of any pooling done by derived streams, but even without pooling to take advantage of synchronously completing `ReadAsync`s returning `ValueTask<int>`s that contained an `int` rather than an allocated object. (While I was modifying this, I also removed some unnecessary array clearing that we'd added before later deciding it wasn't needed in general.)
- Modifying StreamReader/Writer to use the new `ReadAsync`/`WriteAsync` overloads.

6 years agoMinor documentation improvements (#16677)
Alfred Myers [Thu, 1 Mar 2018 03:55:33 +0000 (00:55 -0300)]
Minor documentation improvements (#16677)

6 years agoCreate test for rundown events with EventPipe (#16667)
Victor "Nate" Graf [Thu, 1 Mar 2018 02:03:12 +0000 (18:03 -0800)]
Create test for rundown events with EventPipe (#16667)

6 years agoDelete unnecesary StackCrawlMarks (#16648)
Jan Kotas [Thu, 1 Mar 2018 01:28:30 +0000 (17:28 -0800)]
Delete unnecesary StackCrawlMarks (#16648)

CAS leftovers

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview2-02528-07, preview2-26228...
dotnet-maestro-bot [Thu, 1 Mar 2018 00:51:16 +0000 (18:51 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview2-02528-07, preview2-26228-08, preview2-26228-03, master-20180228-0037, respectively (#16661)

6 years agoUpdate EventSource* Tests for EventPipe (#16645)
Brian Robbins [Wed, 28 Feb 2018 22:16:49 +0000 (14:16 -0800)]
Update EventSource* Tests for EventPipe (#16645)

6 years agoMerge pull request #16657 from debayang/crypto_arm64_intrinsics
Brian Sullivan [Wed, 28 Feb 2018 21:23:30 +0000 (13:23 -0800)]
Merge pull request #16657 from debayang/crypto_arm64_intrinsics

Crypto arm64 intrinsics

6 years agoSet isInternalRegDelayFree for several of the x86 hwintrinsics
Tanner Gooding [Wed, 28 Feb 2018 04:40:19 +0000 (20:40 -0800)]
Set isInternalRegDelayFree for several of the x86 hwintrinsics

6 years agoMerge pull request #16538 from sdmaclea/PR-ARM64-R2R_FAIL
Bruce Forstall [Wed, 28 Feb 2018 18:45:04 +0000 (10:45 -0800)]
Merge pull request #16538 from sdmaclea/PR-ARM64-R2R_FAIL

[Arm64/Windows] Make r2r green in CI

6 years agoAdd the array/arraysegment->Span/Memory overloads to CoreCLR. (#16658)
Atsushi Kanamori [Wed, 28 Feb 2018 18:33:24 +0000 (10:33 -0800)]
Add the array/arraysegment->Span/Memory overloads to CoreCLR. (#16658)

Part of https://github.com/dotnet/corefx/issues/26894

6 years agoRevert: Simplify test dependencies for benchmarks (#16647)
Andy Ayers [Wed, 28 Feb 2018 18:08:32 +0000 (10:08 -0800)]
Revert: Simplify test dependencies for benchmarks (#16647)

This reverts commit 0598b6b8af0fb560837ce0bb8f3c8236c05bbdc9.

Updates to xunit console runner break things in Helix. So reverting
until we can get that part sorted.

Also undoes version updates from #16597; we can't move these forward
yet as we're back to netstandard 1.4 for the time being.

6 years agoMerge pull request #16531 from echesakovMSFT/MakeTarget64BitMacroGlobal
Egor Chesakov [Wed, 28 Feb 2018 17:56:18 +0000 (09:56 -0800)]
Merge pull request #16531 from echesakovMSFT/MakeTarget64BitMacroGlobal

Make _TARGET_64BIT_ macro global to coreclr

6 years agoARM64 Crypto intrinsics tests for AES/SHA1/SHA256
Debayan Ghosh [Wed, 28 Feb 2018 16:26:03 +0000 (21:56 +0530)]
ARM64 Crypto intrinsics tests for AES/SHA1/SHA256

6 years agoARM64 SHA256 Crypto intrinsics implementation
Debayan Ghosh [Wed, 28 Feb 2018 16:21:38 +0000 (21:51 +0530)]
ARM64 SHA256 Crypto intrinsics implementation

6 years agoARM64 SHA1 Crypto intrinsics implementation
Debayan Ghosh [Wed, 28 Feb 2018 16:00:45 +0000 (21:30 +0530)]
ARM64 SHA1 Crypto intrinsics implementation

6 years agoMark MemoryMarshal.Cast methods for aggressive inlining (#16654)
Andy Ayers [Wed, 28 Feb 2018 15:23:16 +0000 (07:23 -0800)]
Mark MemoryMarshal.Cast methods for aggressive inlining (#16654)

Inlining doesn't streamline the cast logic any, but it facilitates
caller struct promotion which can substantially boost perf.

See discussion in dotnet/corefx#27485.

6 years agoAdd Thread.GetCurrentProcessorId() API (#16650)
Jan Kotas [Wed, 28 Feb 2018 15:22:29 +0000 (07:22 -0800)]
Add Thread.GetCurrentProcessorId() API (#16650)

Contributes to https://github.com/dotnet/corefx/issues/16767

6 years agoAdding some asserts that we won't overwrite one of the hwintrinsic operand registers.
Tanner Gooding [Tue, 27 Feb 2018 15:45:35 +0000 (07:45 -0800)]
Adding some asserts that we won't overwrite one of the hwintrinsic operand registers.

6 years agoAdding tests for the implemented SSE41 hardware intrinsics
Tanner Gooding [Sun, 25 Feb 2018 17:28:36 +0000 (09:28 -0800)]
Adding tests for the implemented SSE41 hardware intrinsics

6 years agoAdding partial support for the SSE41 hardware intrinsics
Tanner Gooding [Sun, 25 Feb 2018 17:27:18 +0000 (09:27 -0800)]
Adding partial support for the SSE41 hardware intrinsics

6 years agoARM64 Aes Crypto intrinsics implementation
Debayan Ghosh [Wed, 28 Feb 2018 14:11:49 +0000 (19:41 +0530)]
ARM64 Aes Crypto intrinsics implementation

6 years agoMerge pull request #16599 from fiigii/fixstaticcast
Carol Eidt [Wed, 28 Feb 2018 08:59:44 +0000 (00:59 -0800)]
Merge pull request #16599 from fiigii/fixstaticcast

Fix generic hardware intrinsics with NotSupportedException

6 years agoFix StaticCast with NotSupportedException
Fei Peng [Wed, 28 Feb 2018 06:18:06 +0000 (22:18 -0800)]
Fix StaticCast with NotSupportedException

6 years agoAdd Path.Join() methods. (#16561)
Jeremy Kuhne [Wed, 28 Feb 2018 02:53:54 +0000 (18:53 -0800)]
Add Path.Join() methods. (#16561)

* Add Path.Join() methods.

See #25536.

* Address feedback and fix a couple issues now that I've got tests running correctly.

* Update per final API approval

* Fix Unix, remove redundant helper.

* Merge and tweak join methods in GetFullPath(string, string)

* Tweak again

6 years agoFixing lambda capture unused errors. (#16555)
Rex Morgan [Wed, 28 Feb 2018 02:53:11 +0000 (20:53 -0600)]
Fixing lambda capture unused errors. (#16555)

These errors were happening when compiling with clang 5.0.1.

Since the whole method is defined inside a #if DEBUG, it was
erroring when compiling in release mode because the lambda
variables were not being used.

6 years agoTests For GetPathRoot and Enabling NormalizeDirectorySeparatorTests (#27494)
Anirudh Agnihotry [Tue, 27 Feb 2018 20:04:53 +0000 (12:04 -0800)]
Tests For GetPathRoot and Enabling NormalizeDirectorySeparatorTests (#27494)

Corrects its Implementation too

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoUse the same default value of MarshalAs.IidParamIndex for both Windows and Unix ...
Jan Kotas [Wed, 28 Feb 2018 02:48:09 +0000 (18:48 -0800)]
Use the same default value of MarshalAs.IidParamIndex for both Windows and Unix (#16639)

6 years agoMerge pull request #16637 from dotnet-bot/from-tfs
Brian Sullivan [Wed, 28 Feb 2018 01:34:53 +0000 (17:34 -0800)]
Merge pull request #16637 from dotnet-bot/from-tfs

Merge changes from TFS

6 years agoMinimal Fix for the incorrect rangecheck elimination issue reported by Mike Danes
Brian Sullivan [Wed, 28 Feb 2018 00:11:23 +0000 (16:11 -0800)]
Minimal Fix for the incorrect rangecheck elimination issue reported by Mike Danes

RangeCheck::IsBinOpMonotonicallyIncreasing has a bug that results in incorrect range check elimination – when the second operand is a lclvar it does not check if it’s a positive value, it only checks if it’s monotonically increasing and any constant is treated as such.

[tfs-changeset: 1689890]

6 years agoBug in GetFullPath(basePath, Path) (#16598)
Anirudh Agnihotry [Tue, 27 Feb 2018 23:56:23 +0000 (15:56 -0800)]
Bug in GetFullPath(basePath, Path) (#16598)

* GetFullPath and GetRootLength Corrected

* Removed getpathroot

* using span

* "\\" changed to @"\"

6 years agoMerge pull request #16533 from briansull/default-fill
Brian Sullivan [Tue, 27 Feb 2018 22:00:08 +0000 (14:00 -0800)]
Merge pull request #16533 from briansull/default-fill

Implement JitDefaultFill

6 years agoChange new ThreadPool.QueueUserWorkItem method to be generic (#16570)
Stephen Toub [Tue, 27 Feb 2018 21:43:32 +0000 (16:43 -0500)]
Change new ThreadPool.QueueUserWorkItem method to be generic (#16570)

6 years agoEvent pipe guid in metadata (#16316), fixes #16105
Adam Sitnik [Tue, 27 Feb 2018 20:25:35 +0000 (21:25 +0100)]
Event pipe guid in metadata (#16316), fixes #16105

* some refactor to remove dumplicated code in tests and make them fit 1 screen

* write the failing test for no activity id

* use 17, the "free slot" of TypeCode enum to represent Guid in event pipe metadata

* remove the test which would not pass until new trace event is released and Event Pipe enabled for Windows

* added comment to TypeCode about using the value 17

* post code review fixes (thanks @justinvp)

* post code review fixes (thanks @brianrob)

* refactor the rest of event pipe tests to use NetPerfFile helper

6 years agoImplement JitDefaultFill
Brian Sullivan [Fri, 23 Feb 2018 22:06:16 +0000 (14:06 -0800)]
Implement JitDefaultFill
- Changes and bugs fixes when changing the JitDefaultFill value from 0xff to 0xdd
- Implement randomized DefaultFill for stress
- Added comment header for compGetJitDefaultFill
- Changed C style comments to C++ comments

6 years agoFix P1 test build break (#16631)
Jan Kotas [Tue, 27 Feb 2018 20:08:59 +0000 (12:08 -0800)]
Fix P1 test build break (#16631)

6 years agoadd PHASE_COMPUTE_REACHABILITY (#16574)
Sergey Andreenko [Tue, 27 Feb 2018 18:55:24 +0000 (10:55 -0800)]
add PHASE_COMPUTE_REACHABILITY (#16574)

6 years agoDebugger FIFO pipes are created in TMPDIR if defined #16234 (#16452)
crntn [Tue, 27 Feb 2018 18:42:56 +0000 (19:42 +0100)]
Debugger FIFO pipes are created in TMPDIR if defined #16234 (#16452)

Debugger FIFO pipes are created in TMPDIR if defined #16234

Init name to null termination to ensure failure if GetTempPathA fails

6 years agoAdd MemoryExtensions to CoreLib along with necessary SpanHelpers (#16521)
Ahson Khan [Tue, 27 Feb 2018 18:41:47 +0000 (10:41 -0800)]
Add MemoryExtensions to CoreLib along with necessary SpanHelpers (#16521)

* Add MemoryExtensions to CoreLib along with necessary SpanHelpers

* Make the newly added AsSpan/AsMemory into array extension methods.

* Remove StringSpanHelpers.Trim

* Leftover AsReadOnlySpan -> AsSpan for *Unix.cs files

* Address PR feedback.

* Remove duplicate methods in the Span class.

* Temporarily disable AsBytes SpanBench test.

* Add back AsBytes

* Re-enable AsBytes SpanBench test

6 years agoMerge pull request #16514 from echesakovMSFT/UseTargetPointerSizeMacro
Egor Chesakov [Tue, 27 Feb 2018 18:37:48 +0000 (10:37 -0800)]
Merge pull request #16514 from echesakovMSFT/UseTargetPointerSizeMacro

Replace sizeof(void*)-like expressions with TARGET_POINTER_SIZE macro

6 years agoDelete left-over globalization CoreCLR tests (#16571)
Jan Kotas [Tue, 27 Feb 2018 14:41:45 +0000 (06:41 -0800)]
Delete left-over globalization CoreCLR tests (#16571)

6 years agoAdd test for GC.GetAllocatedBytesForCurrentThread (#16428)
Sung Yoon Whang [Tue, 27 Feb 2018 11:56:54 +0000 (03:56 -0800)]
Add test for GC.GetAllocatedBytesForCurrentThread (#16428)

* Add test for GC.GetAllocatedBytesForCurrentThread

* modified test to fit coreclr test runner

* add testing with/without gc.collect()

* Address object size difference on x86 machines

6 years agoRe-attempt fixing case in GC reliability/stress night config (#16607)
Sung Yoon Whang [Tue, 27 Feb 2018 04:10:44 +0000 (20:10 -0800)]
Re-attempt fixing case in GC reliability/stress night config  (#16607)

* Address more config case error

6 years agoUpdate the table-driven framework to support x86 imm-intrinsics.
Fei Peng [Mon, 26 Feb 2018 21:02:12 +0000 (13:02 -0800)]
Update the table-driven framework to support x86 imm-intrinsics.
And add a new range-check IR for x86 imm-intrinsics.

6 years agoAdd tests/templates for AVX2/SSE2 shift intrinsics
Fei Peng [Thu, 22 Feb 2018 08:34:20 +0000 (00:34 -0800)]
Add tests/templates for AVX2/SSE2 shift intrinsics

6 years agoAdd tests ShiftLeft/RightLogicalVariable
Fei Peng [Tue, 13 Feb 2018 08:50:06 +0000 (00:50 -0800)]
Add tests ShiftLeft/RightLogicalVariable

6 years agoAdd AVX.Compare/CompareScalar tests
Fei Peng [Thu, 8 Feb 2018 03:30:16 +0000 (19:30 -0800)]
Add AVX.Compare/CompareScalar tests

6 years agoAdd Avx.SetZeroVector256<T> tests
Fei Peng [Wed, 7 Feb 2018 19:24:46 +0000 (11:24 -0800)]
Add Avx.SetZeroVector256<T> tests

6 years agoUpgrade TraceEvent and XUnit-Performance to the latest versions. (#16597)
Brian Robbins [Tue, 27 Feb 2018 02:01:00 +0000 (18:01 -0800)]
Upgrade TraceEvent and XUnit-Performance to the latest versions. (#16597)

6 years agoFix ascii range check (#16535)
Ben Adams [Tue, 27 Feb 2018 01:23:56 +0000 (01:23 +0000)]
Fix ascii range check (#16535)

6 years agoFix for incorrect case in GC reliability/stress night config (#16595)
Sung Yoon Whang [Tue, 27 Feb 2018 00:36:27 +0000 (16:36 -0800)]
Fix for incorrect case in GC reliability/stress night config (#16595)

* Fix case for Concurrentspin2.exe

6 years agoFix SoDBench by retargeting ASP Net feed (#16596)
Victor "Nate" Graf [Tue, 27 Feb 2018 00:19:28 +0000 (16:19 -0800)]
Fix SoDBench by retargeting ASP Net feed  (#16596)

Update aspnetcore feed

6 years agoDefine _TARGET_64BIT_ macro if not defined when _TARGET_AMD64_ or _TARGET_ARM64_...
Egor Chesakov [Fri, 23 Feb 2018 20:35:29 +0000 (12:35 -0800)]
Define _TARGET_64BIT_ macro if not defined when _TARGET_AMD64_ or _TARGET_ARM64_ in src/jit/jit.h

6 years agoAvoid async method caching of a 0 decimal task (#16588)
Stephen Toub [Mon, 26 Feb 2018 23:45:41 +0000 (18:45 -0500)]
Avoid async method caching of a 0 decimal task (#16588)

6 years agoReplace sizeof(void*)-like expressions with TARGET_POINTER_SIZE macro
Egor Chesakov [Fri, 9 Feb 2018 18:18:50 +0000 (10:18 -0800)]
Replace sizeof(void*)-like expressions with TARGET_POINTER_SIZE macro

6 years agoFixed mixed mode attach/JIT debugging. (#16552)
Mike McLaughlin [Mon, 26 Feb 2018 23:19:00 +0000 (15:19 -0800)]
Fixed mixed mode attach/JIT debugging. (#16552)

Fixed mixed mode attach/JIT debugging.

The mixed mode debugging attach uses TLS slot to communicate between debugger break-in thread and the right side. Unfortunately, the __thread static variables cannot be used on debugger breakin
thread because of it does not have storage allocated for them.

The fix is to switch the storage for debugger word to classic TlsAlloc allocated slot that works
fine on debugger break-in thread.

There was also problem (that is also in 2.0) where the WINNT_OFFSETOF__TEB__ThreadLocalStoragePointer was using the define for 64/32 bit and ended up always the 32 bit Windows value. This caused the right side GetEEThreadValue, GetEETlsDataBlock unmanaged thread functions to always fail.

6 years agoMerge pull request #16591 from BruceForstall/FixArmTestExclusions
Bruce Forstall [Mon, 26 Feb 2018 21:12:42 +0000 (13:12 -0800)]
Merge pull request #16591 from BruceForstall/FixArmTestExclusions

Fix arm32/arm64 test exclusions

6 years agoFix arm32/arm64 test exclusions
Bruce Forstall [Mon, 26 Feb 2018 20:16:11 +0000 (12:16 -0800)]
Fix arm32/arm64 test exclusions

Use the table of smarty exclusion tags in validArmWindowsScenarios
to drive what tests should be excluded.

Update the exclude table to add `R2R_EXCLUDE` (for consistency),
and tag R2R MinOpts and GCStress jobs appropriately.

Also, run Pri-1 tests for all runs except the 'innerloop' scenario.

6 years agoSimplify test dependencies for benchmarks (#16378)
Andy Ayers [Mon, 26 Feb 2018 20:41:14 +0000 (12:41 -0800)]
Simplify test dependencies for benchmarks (#16378)

Remove the special benchmark configs and update benchmark projects accordingly.
Also update other random projects that were referencing benchmark configs.

Benchmarks now build against the default standard.

Addresses #14124, #16126.

6 years agoUpdate PgoData to master-20180226-0052 (#16563)
dotnet-maestro-bot [Mon, 26 Feb 2018 17:32:08 +0000 (11:32 -0600)]
Update PgoData to master-20180226-0052 (#16563)

6 years agoDelete Single/Double.GetHashCode tests (#16567)
Jan Kotas [Mon, 26 Feb 2018 17:29:23 +0000 (09:29 -0800)]
Delete Single/Double.GetHashCode tests (#16567)

The test is failing because of change in the -NaN hashcode. CoreFX has redundant and better test coverage for these.

Fixes #16566

6 years agoMerge pull request #16396 from jashook/add_separate_buildtests_official_build_definition
Jarret Shook [Mon, 26 Feb 2018 16:57:04 +0000 (08:57 -0800)]
Merge pull request #16396 from jashook/add_separate_buildtests_official_build_definition

Separate build tests to its own pipeline

6 years agoUse overriden double/float GetHashCode for default struct hashcodes (#16550)
Jan Kotas [Mon, 26 Feb 2018 16:18:30 +0000 (08:18 -0800)]
Use overriden double/float GetHashCode for default struct hashcodes (#16550)

Fixes #16545

6 years agoDelete dead code
Jan Kotas [Mon, 26 Feb 2018 01:00:25 +0000 (17:00 -0800)]
Delete dead code

6 years agoDelete redundant (RuntimeType) casts
Jan Kotas [Mon, 26 Feb 2018 00:53:42 +0000 (16:53 -0800)]
Delete redundant (RuntimeType) casts

Replace `== (RuntimeType)typeof(` with `== typeof`. The type comparison is treated as JIT intrinsic and the extra cast makes the code for it worse.

6 years agoDelete redundant int pcaCount intializations
Jan Kotas [Mon, 26 Feb 2018 00:50:11 +0000 (16:50 -0800)]
Delete redundant int pcaCount intializations

6 years agoFix GetCustomAttribute API for DllImportAttribute pseudo custom attribute
Jan Kotas [Sun, 25 Feb 2018 20:06:05 +0000 (12:06 -0800)]
Fix GetCustomAttribute API for DllImportAttribute pseudo custom attribute

GetCustomAttribute for DllImportAttribute was throwing IndexOutOfRangeException. It made XUnit skip the rest of test methods after encoutering DllImport method in the test type.

It is regression introduced by https://github.com/dotnet/coreclr/pull/13870

Fixes https://github.com/dotnet/corefx/issues/27426

6 years agoUpdate CoreFx, PgoData to preview2-26225-02, master-20180225-0051, respectively ...
dotnet-maestro-bot [Sun, 25 Feb 2018 21:28:58 +0000 (15:28 -0600)]
Update CoreFx, PgoData to preview2-26225-02, master-20180225-0051, respectively (#16553)

6 years agoDelete printing of security transparency in SOS (#16560)
Jan Kotas [Sun, 25 Feb 2018 20:48:06 +0000 (12:48 -0800)]
Delete printing of security transparency in SOS (#16560)

Security transparency is not relevant in .NET Core.

6 years agoFixed NaN's GetHashCode and Equals invariant issue. (#16551)
Jan Kotas [Sun, 25 Feb 2018 18:30:31 +0000 (10:30 -0800)]
Fixed NaN's GetHashCode and Equals invariant issue. (#16551)

Fix #6237

6 years agoFix path issues (#16554)
Jeremy Kuhne [Sun, 25 Feb 2018 16:16:25 +0000 (08:16 -0800)]
Fix path issues (#16554)

Path tests weren't running so a few issues sneaked in.

6 years agoReturn empty array if length is zero (#16529)
kasper3 [Sat, 24 Feb 2018 20:38:21 +0000 (22:38 +0200)]
Return empty array if length is zero (#16529)

* Return empty array if length is zero

* Return true

* Add support for portable system

* Use portable span helper instead of Array.Empty

* Move to end

* Remove else

* Return empty array if length is 0 in MemoryMarshal

6 years agoUpdate CoreFx, PgoData to preview2-26224-02, master-20180223-0037, respectively ...
dotnet-maestro-bot [Sat, 24 Feb 2018 20:33:24 +0000 (14:33 -0600)]
Update CoreFx, PgoData to preview2-26224-02, master-20180223-0037, respectively (#16548)

6 years agoFix calling convention gap in DynamicILGenerator.EmitCalli (#16546)
Petar Petrov [Sat, 24 Feb 2018 18:52:01 +0000 (20:52 +0200)]
Fix calling convention gap in DynamicILGenerator.EmitCalli (#16546)

6 years agoSuppress "local variable is initialized but not used" warning (#16549)
Stephen Toub [Sat, 24 Feb 2018 18:47:52 +0000 (13:47 -0500)]
Suppress "local variable is initialized but not used" warning (#16549)

6 years agoAddress more stacktrace print issues (#16525)
Sung Yoon Whang [Sat, 24 Feb 2018 06:12:35 +0000 (22:12 -0800)]
Address more stacktrace print issues (#16525)

* Fix newline issue/duplicate message on Contract failures

* make it work on Unix as well

* cleanup

* Add a newline between error/user messages and stacktrace

6 years agoDelete eventpipetrace test. (#16534)
Brian Robbins [Sat, 24 Feb 2018 05:47:40 +0000 (21:47 -0800)]
Delete eventpipetrace test. (#16534)

6 years agoMark sharedgenerics test as GCStressIncompatible (#16507)
Michal Strehovský [Sat, 24 Feb 2018 03:17:36 +0000 (04:17 +0100)]
Mark sharedgenerics test as GCStressIncompatible (#16507)

6 years agoUpdate BuildTools to 2.1.0-preview2-02522-03 (#16532)
Davis Goodin [Sat, 24 Feb 2018 02:20:28 +0000 (20:20 -0600)]
Update BuildTools to 2.1.0-preview2-02522-03 (#16532)

6 years ago[Arm64/Windows] Make r2r green in CI
Steve MacLean [Sat, 24 Feb 2018 01:05:55 +0000 (20:05 -0500)]
[Arm64/Windows] Make r2r green in CI

6 years agoEnabling CLR implemented write watch on AMD64 on Windows. (#16516)
Maoni Stephens [Sat, 24 Feb 2018 00:41:03 +0000 (16:41 -0800)]
Enabling CLR implemented write watch on AMD64 on Windows. (#16516)

6 years agoAdd definition _TARGET_64BIT_ in clrdefinitions.cmake
Egor Chesakov [Fri, 23 Feb 2018 20:34:56 +0000 (12:34 -0800)]
Add definition _TARGET_64BIT_ in clrdefinitions.cmake

6 years agoRemove StringBuffer and use ValueStringBuilder (#16512)
Jeremy Kuhne [Fri, 23 Feb 2018 18:37:17 +0000 (10:37 -0800)]
Remove StringBuffer and use ValueStringBuilder (#16512)

* Remove StringBuffer and use ValueStringBuilder

* Address initial feedback

* Address further feedback

* Address some more feedback

* Put back the temporary builder for output.

* Make the temp var ref

6 years agoJIT: don't trust field offsets in R2R for nullcheck bypass (#16492)
Andy Ayers [Fri, 23 Feb 2018 16:51:15 +0000 (08:51 -0800)]
JIT: don't trust field offsets in R2R for nullcheck bypass (#16492)

When the jit is forming an field address to pass off to points unknown
it will nullcheck at the point of creation, unless it can prove that the
field is at offset zero. Unfortunately in R2R mode field offsets may not
final and so a zero value seen when prejitting may end up being nonzero
when the code is loaded and fixed up and fool the jit into omitting a null
check that is potentially needed.

So in R2R mode, if a field offset is going to be fixed up, always emit null
checks.

Fixes #16454.

6 years agoFix preventing memory allocation in signal handler (#16485)
Jan Vorlicek [Fri, 23 Feb 2018 09:40:54 +0000 (10:40 +0100)]
Fix preventing memory allocation in signal handler (#16485)

There was a subtle bug. When the hardware exception handler returns back
to the signal handler, the exception's CONTEXT record may contain
modified registers and so the changes need to be propagated back to the
signal context. But the recent change #16384 was restoring the signal
context from the originally grabbed context instead of the one that's
pointed to by the exception, which is different.

I have also added a little optimization - the contextRecord that was
added is not needed, since the signalContextRecord can be used as the
initial context record for the exception. So we can save the
contextRecord and also copying to the signalContextRecord from it.

6 years agoFix build break with older VS versions (#16522)
Jan Kotas [Fri, 23 Feb 2018 08:17:45 +0000 (00:17 -0800)]
Fix build break with older VS versions (#16522)

6 years agoAdding a TODO-XArch to `Lowering::ContainCheckHWIntrinsic` to track https://github...
Tanner Gooding [Thu, 22 Feb 2018 06:57:05 +0000 (22:57 -0800)]
Adding a TODO-XArch to `Lowering::ContainCheckHWIntrinsic` to track https://github.com/dotnet/coreclr/issues/16497

6 years agoAdding the missing function header comments to hwintrinsiccodegenxarch.cpp
Tanner Gooding [Thu, 22 Feb 2018 06:51:25 +0000 (22:51 -0800)]
Adding the missing function header comments to hwintrinsiccodegenxarch.cpp

6 years agoAsReadOnlySpan -> AsSpan rename to fix build breaks
Jan Kotas [Fri, 23 Feb 2018 02:49:03 +0000 (18:49 -0800)]
AsReadOnlySpan -> AsSpan rename to fix build breaks

6 years agoRename string-slicing extension methods (dotnet/corefx#27328)
Atsushi Kanamori [Wed, 21 Feb 2018 19:48:51 +0000 (11:48 -0800)]
Rename string-slicing extension methods (dotnet/corefx#27328)

* Rename string-slicing extension methods

As part of

https://github.com/dotnet/corefx/issues/26894

the api folks have approved renaming AsROSpan and AsROMemory
on string instances to AsSpan and AsMemory (as the "readonly"
is obvious given the read-only nature of the input.)

This puts the renaming in effect. Basically a big search-replace
commit.

* Fix OpenSSL build break

* I see this is going to be a treadmill

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoMerge pull request #16511 from CarolEidt/FixDD541653
Carol Eidt [Fri, 23 Feb 2018 00:12:19 +0000 (16:12 -0800)]
Merge pull request #16511 from CarolEidt/FixDD541653

Handle a restored double Interval at block boundary

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview2-02522-02, preview2-26222...
dotnet-maestro-bot [Thu, 22 Feb 2018 23:33:37 +0000 (17:33 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview2-02522-02, preview2-26222-07, preview2-26222-04, master-20180222-0036, respectively (#16501)

6 years agoHandle a restored double Interval at block boundary
Carol Eidt [Thu, 22 Feb 2018 22:31:02 +0000 (14:31 -0800)]
Handle a restored double Interval at block boundary

During the process of freeing registers that are no longer live at the start of a new block, we may restore a 'previousInterval'. If that is a double (and the freed interval was float), we need to skip the next float.

6 years agoAdd ReadOnlySpan string-like Equals/CompareTo/IndexOf/Contains API with globalization...
Ahson Khan [Thu, 22 Feb 2018 21:01:35 +0000 (13:01 -0800)]
Add ReadOnlySpan string-like Equals/CompareTo/IndexOf/Contains API with globalization support (#16467)

* Add ReadOnlySpan string-like Equals/CompareTo/IndexOf/Contains API with globalization support

* Address PR feedback.

* Fix unix implementation

6 years agoRemove most preemptive checks from GetFullPath (#16478)
Jeremy Kuhne [Thu, 22 Feb 2018 20:13:59 +0000 (12:13 -0800)]
Remove most preemptive checks from GetFullPath (#16478)

* Removing the colon block that tosses out paths that are not device path.

Fixes: #26359

* Striping 2nd and 3rd args of PathHelper.Normalize

* Build on Maryam's changes

- Remove all path validity checks outside of
    - Null
    - Embedded null
    - Empty or all spaces (effectively empty)
- Remove PathStartSkip helper
- Use span overloads for StringBuffer usage
- Clean up some comments

* Address feedback

* Tweak to match other AsSpan methods

6 years agoMerge pull request #16473 from CarolEidt/FixDD541648
Carol Eidt [Thu, 22 Feb 2018 19:21:32 +0000 (11:21 -0800)]
Merge pull request #16473 from CarolEidt/FixDD541648

LEA on rhs of block copy can't be contained

6 years agoAdd CoreLib helpers for MemoryExtensions.AsSpan/AsMemory(T[], int) (#16505)
Atsushi Kanamori [Thu, 22 Feb 2018 19:16:25 +0000 (11:16 -0800)]
Add CoreLib helpers for MemoryExtensions.AsSpan/AsMemory(T[], int) (#16505)

* Add CoreLib helpers for MemoryExtensions.AsSpan/AsMemory(T[], int)

(Part of https://github.com/dotnet/corefx/issues/26894)

We intentionally don't have (T[], int] constructor overloads
for Span and Memory. So as not to incur unnecessary argument checks,
we implement this directly in CoreLib and will invoke it from
CoreFx for the fast-Span version.

* Expose an internal array-int constructor instead.

6 years agoRemove relocations for MethodTable::m_pParentMethodTable for Linux ARM (#15915)
gbalykov [Thu, 22 Feb 2018 17:47:46 +0000 (20:47 +0300)]
Remove relocations for MethodTable::m_pParentMethodTable for Linux ARM (#15915)

6 years agoFix impl of ReadOnlySpan ToLower/ToUpper for Unix. (#16496)
Ahson Khan [Thu, 22 Feb 2018 16:02:20 +0000 (08:02 -0800)]
Fix impl of ReadOnlySpan ToLower/ToUpper for Unix. (#16496)