platform/upstream/coreclr.git
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 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 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)

6 years agoMerge pull request #16475 from briansull/vso-569605
Brian Sullivan [Thu, 22 Feb 2018 07:40:32 +0000 (23:40 -0800)]
Merge pull request #16475 from briansull/vso-569605

Fix for assert during CSE processing

6 years agoRemove OwnedFlagBit from TryGetOwnedMemory index
Ben Adams [Wed, 21 Feb 2018 23:30:17 +0000 (23:30 +0000)]
Remove OwnedFlagBit from TryGetOwnedMemory index

6 years agoRename AsReadOnlySpan -> Span
Jan Kotas [Thu, 22 Feb 2018 05:41:44 +0000 (21:41 -0800)]
Rename AsReadOnlySpan -> Span

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview2-02521-06, preview2-26222...
dotnet-maestro-bot [Thu, 22 Feb 2018 03:30:53 +0000 (19:30 -0800)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview2-02521-06, preview2-26222-01, preview2-26222-01, master-20180221-0048, respectively

6 years agoFix Span Debugger Display String to correctly show the string contents (#27338)
Ahson Khan [Thu, 22 Feb 2018 01:37:58 +0000 (17:37 -0800)]
Fix Span Debugger Display String to correctly show the string contents (#27338)

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoAdding tests for the SSE3 and SSSE3 hardware intrinsics
Tanner Gooding [Fri, 16 Feb 2018 20:13:05 +0000 (12:13 -0800)]
Adding tests for the SSE3 and SSSE3 hardware intrinsics

6 years agoAdding support for the SSE3 and SSSE3 hardware intrinsics
Tanner Gooding [Fri, 16 Feb 2018 18:30:05 +0000 (10:30 -0800)]
Adding support for the SSE3 and SSSE3 hardware intrinsics

6 years agoUpdating the x86 hardware intrinsic test templates to allow more configurability
Tanner Gooding [Sat, 17 Feb 2018 07:10:18 +0000 (23:10 -0800)]
Updating the x86 hardware intrinsic test templates to allow more configurability

6 years agoFix EventPipe Test Failures Under GCStress (#16494)
Brian Robbins [Thu, 22 Feb 2018 05:59:17 +0000 (21:59 -0800)]
Fix EventPipe Test Failures Under GCStress (#16494)

* Disable inducedgc test when GCStress is enabled.

* Suppress host contract violation in EventPipe::WalkManagedStackForThread.

6 years agoFix StructPacking test for ARM (#16484)
Bruce Forstall [Thu, 22 Feb 2018 05:58:41 +0000 (21:58 -0800)]
Fix StructPacking test for ARM (#16484)

Use RuntimeInformation.ProcessArchitecture instead of
RuntimeInformation.OSArchitecture, as for Windows ARM we normally
run in the WoW layer.

Also, `double` on ARM is 8 byte aligned, but was going down the x86
code path that assumes 4-byte alignment.

Finally, add this test to the Windows ARM and Windows ARM64 test
runs by adding it to the respective tests.lst files.

6 years agoFix TryGetOwnedMemory xml docs
Ben Adams [Wed, 21 Feb 2018 03:42:12 +0000 (03:42 +0000)]
Fix TryGetOwnedMemory xml docs

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoclang format
Brian Sullivan [Thu, 22 Feb 2018 01:40:57 +0000 (17:40 -0800)]
clang format

6 years agoCodereview feedback
Brian Sullivan [Thu, 22 Feb 2018 01:13:41 +0000 (17:13 -0800)]
Codereview feedback

6 years agoShow the expected stack trace from a rethrown exception. (#16464)
Alexandre Teoi [Wed, 21 Feb 2018 23:32:46 +0000 (20:32 -0300)]
Show the expected stack trace from a rethrown exception. (#16464)

* Show the expected stack trace from a rethrown exception.

Fix #15780

* Remove now unused methods

- StackTraceArray::AppendSkipLast
- StackTraceElement::PartiallyEqual
- StackTraceElement::PartialAtomicUpdate

6 years agoAdd more benchmarks to JitBench (#16353)
Noah Falk [Wed, 21 Feb 2018 23:15:09 +0000 (15:15 -0800)]
Add more benchmarks to JitBench (#16353)

* Add more JitBench Benchmarks

a) JitBench includes several more benchmarks and a refactored runner to make it easier to add more
b) A new JitBench/unofficial_dotnet SDK style build project offers simpler developer workflow at the command line and in VS when working with these Benchmarks
c) Misc build issues with local dotnet build in the test tree have workarounds now, but official CI builds still don't support it
d) run-xunit-perf.py has support to run a specific assembly from the testBinLoc folder intended to handle selecting a binary from the folder of binaries produced in the .Net Core SDK project build process. However until CI build can support building projects that way the xunit-perf support is unused.

6 years agowhitespace fix
Brian Sullivan [Wed, 21 Feb 2018 20:08:17 +0000 (12:08 -0800)]
whitespace fix

6 years agoFix for assert during CSE processing
Brian Sullivan [Wed, 21 Feb 2018 19:50:02 +0000 (11:50 -0800)]
Fix for assert during CSE processing
Assertion failed '!comp->gtTreeHasSideEffects(tree, GTF_PERSISTENT_SIDE_EFFECTS_IN_CSE)'
Fixes VSO 569605

6 years agoDisable tiered compilation for collectible assemblies (#16437)
Koundinya Veluri [Wed, 21 Feb 2018 19:31:07 +0000 (11:31 -0800)]
Disable tiered compilation for collectible assemblies (#16437)

Disable tiered compilation for collectible assemblies

- An assembly can be marked collectible with methods not marked as dynamic
- The method desc and code can be deleted and a new method desc reallocated in the same location, code versioning doesn't handle this at the moment

6 years agoLEA on rhs of block copy can't be contained
Carol Eidt [Wed, 21 Feb 2018 19:21:46 +0000 (11:21 -0800)]
LEA on rhs of block copy can't be contained

We don't usually create an LEA on the rhs of a block copy - we check the type of the indir, and if it's struct we avoid the copy. However, in this case, the rhs was the address of a scalar field within a struct, so the indir was not TYP_STRUCT.

6 years agoDial back aggressive checks in Path (#16447)
Jeremy Kuhne [Wed, 21 Feb 2018 18:44:44 +0000 (10:44 -0800)]
Dial back aggressive checks in Path (#16447)

* Dial back aggressive checks in Path

Aggressive checks are preventing crossplat and extended Windows solutions. This change:

- Doesn't throw on empty paths fro GetDirectoryName, GetPathRoot
- Doesn't consider colon when looking at path segments on Windows
- Moves non-shared code out of PathInternal
- Fix span GetDirectoryName to handle multiple separators

* Comment updates

* Check for valid drive letter with PathRoot
Remove other usages of PathSkip (related to #16311)

6 years agoMoved extensions.cs to shared folder in coreclr (#16459)
Anirudh Agnihotry [Wed, 21 Feb 2018 05:01:39 +0000 (21:01 -0800)]
Moved extensions.cs to shared folder in coreclr (#16459)

* Moved extensions.cs to shared folder

* added to shared to projItems

* Added new constructor

* Parameter Named Changed

6 years agoRevert TLS model change of the gCurrentThreadInfo
Jan Vorlicek [Wed, 21 Feb 2018 01:02:30 +0000 (02:02 +0100)]
Revert TLS model change of the gCurrentThreadInfo

This change causes crashes due to incorrect TLS variable initialization
on Alpine Linux. The initial-exec model that the variable was modified
to use recently cannot be safely used in shared libraries.

6 years agoAdd TryGetOwnedMemory (#16455)
Ben Adams [Wed, 21 Feb 2018 01:56:02 +0000 (01:56 +0000)]
Add TryGetOwnedMemory (#16455)

* Add TryGetOwnedMemory

* Feedback

* spelling

6 years agoAdd CI perf repro script (#16414)
Noah Falk [Wed, 21 Feb 2018 01:40:10 +0000 (17:40 -0800)]
Add CI perf repro script (#16414)

* Add CI perf repro script

There wasn't any good way to reproduce what happens in CI for perf jobs because groovy can't be directly run. As a first step to solving this I created a python script that reproduces the perf leg I needed.

6 years agoMerge pull request #16408 from fiigii/sse4load
Carol Eidt [Tue, 20 Feb 2018 20:44:55 +0000 (12:44 -0800)]
Merge pull request #16408 from fiigii/sse4load

Implement SSE4.1 LoadAlignedVector128NonTemporal

6 years agoPrevent memory allocation in signal handler (#16384)
mlabiuk [Tue, 20 Feb 2018 20:35:26 +0000 (23:35 +0300)]
Prevent memory allocation in signal handler (#16384)

* Do not allocate exception for signal from non managed code

If the signal occurs in not managed code we cannot use heap.
We should call signal-safe functions only from signal handler.

Create exception object on stack for checking source of signal.
If signal is from managed code we can use memory allocation to create
persistent exception on heap as copy of volatile exception on stack.

If signal from unmanaged code we do nothing and call base signal handler.

fix https://github.com/dotnet/coreclr/issues/16338

6 years agoReplace ValueStringBuilder.set_Length with indexer (dotnet/corefx#27274)
Jan Kotas [Tue, 20 Feb 2018 16:14:57 +0000 (08:14 -0800)]
Replace ValueStringBuilder.set_Length with indexer (dotnet/corefx#27274)

Indexer that let's you see and edit the content of the pending string is more efficient and flexible.

Fixes #26643

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoMerge pull request #16436 from brunotag/patch-1
Wes Haggard [Tue, 20 Feb 2018 16:59:33 +0000 (08:59 -0800)]
Merge pull request #16436 from brunotag/patch-1

Update UsingYourBuild.md

6 years agoUpdate CoreClr to preview2-26220-01 (#16445)
dotnet-maestro-bot [Tue, 20 Feb 2018 05:13:42 +0000 (23:13 -0600)]
Update CoreClr to preview2-26220-01 (#16445)

6 years agoMerge pull request #16444 from mikedn/vec2load
Carol Eidt [Tue, 20 Feb 2018 02:08:20 +0000 (18:08 -0800)]
Merge pull request #16444 from mikedn/vec2load

Handle TYP_SIMD8 correctly in genCodeForLclFld

6 years agoUpdate CoreClr, PgoData to preview2-26219-05, master-20180219-0044, respectively...
dotnet-maestro-bot [Mon, 19 Feb 2018 20:11:05 +0000 (14:11 -0600)]
Update CoreClr, PgoData to preview2-26219-05, master-20180219-0044, respectively (#16439)

6 years agoHandle TYP_SIMD8 correctly in genCodeForLclFld
Mike Danes [Mon, 19 Feb 2018 19:41:59 +0000 (21:41 +0200)]
Handle TYP_SIMD8 correctly in genCodeForLclFld

When loading a TYP_SIMD8 local field movsd should be used, not movups. Unlike ins_Move_Extend, ins_Load does the right thing and it's consistent with indirs.

6 years agoInline String->ReadOnlySpan (#16440)
Ben Adams [Sun, 18 Feb 2018 22:28:21 +0000 (22:28 +0000)]
Inline String->ReadOnlySpan (#16440)

6 years agoMerge pull request #16422 from CarolEidt/Fix15037
Carol Eidt [Sun, 18 Feb 2018 17:28:16 +0000 (09:28 -0800)]
Merge pull request #16422 from CarolEidt/Fix15037

Don't set delayRegFree if no target

6 years agoDelete workaround for #16197 (#16433)
Jan Kotas [Sun, 18 Feb 2018 15:46:34 +0000 (07:46 -0800)]
Delete workaround for #16197 (#16433)

6 years agoUpdate CoreClr, PgoData to preview2-26218-01, master-20180217-0048, respectively...
dotnet-maestro-bot [Sun, 18 Feb 2018 08:55:12 +0000 (02:55 -0600)]
Update CoreClr, PgoData to preview2-26218-01, master-20180217-0048, respectively (#16430)

6 years agoDelete some more dead code related to #16304 (#16432)
Jan Kotas [Sun, 18 Feb 2018 08:47:03 +0000 (00:47 -0800)]
Delete some more dead code related to #16304 (#16432)

6 years agoUpdate UsingYourBuild.md
Bruno Tagliapietra [Sun, 18 Feb 2018 03:41:08 +0000 (16:41 +1300)]
Update UsingYourBuild.md

amend

6 years agoInlinable MulticastDelegate == (#16431)
Ben Adams [Sat, 17 Feb 2018 19:24:53 +0000 (19:24 +0000)]
Inlinable MulticastDelegate == (#16431)

6 years agodelete unused mirror files (#16423)
Sergey Andreenko [Sat, 17 Feb 2018 17:46:47 +0000 (09:46 -0800)]
delete unused mirror files (#16423)

6 years agoFix #16402 (#16406)
Steve MacLean [Sat, 17 Feb 2018 16:15:34 +0000 (11:15 -0500)]
Fix #16402 (#16406)

* Handle matching null binder

* Early out HashMap::Rehash()

6 years agoMerge pull request #16413 from briansull/more-vso-566984
Brian Sullivan [Sat, 17 Feb 2018 04:27:06 +0000 (20:27 -0800)]
Merge pull request #16413 from briansull/more-vso-566984

Fix for assert(sideEffList) in clr\src\jit\optcse.cpp, Line: 2151

6 years agoUpdate CoreClr to preview2-26217-01 (#16426)
dotnet-maestro-bot [Sat, 17 Feb 2018 02:53:31 +0000 (20:53 -0600)]
Update CoreClr to preview2-26217-01 (#16426)

6 years agoUpdate CoreClr to preview2-26216-09 (#16420)
dotnet-maestro-bot [Sat, 17 Feb 2018 00:44:25 +0000 (18:44 -0600)]
Update CoreClr to preview2-26216-09 (#16420)

6 years agoUpdating the JIT to take EnableSSE3_4 into account when setting the supported instruc...
Tanner Gooding [Thu, 15 Feb 2018 04:10:09 +0000 (20:10 -0800)]
Updating the JIT to take EnableSSE3_4 into account when setting the supported instruction sets

6 years agoCode Review - Removed unnecessary assert.
Brian Sullivan [Fri, 16 Feb 2018 23:39:52 +0000 (15:39 -0800)]
Code Review - Removed unnecessary assert.

6 years agoFix whitespace formatting
Brian Sullivan [Fri, 16 Feb 2018 23:32:35 +0000 (15:32 -0800)]
Fix whitespace formatting

6 years agoAdded new tree walker helper optHasCSEdefWithSideeffect to determine up front if...
Brian Sullivan [Fri, 16 Feb 2018 23:20:07 +0000 (15:20 -0800)]
Added new tree walker helper optHasCSEdefWithSideeffect to determine up front if we have
a nested CSE def with side effects.  The refs counts will be wrong when we start unmarking
some CSE uses and then later abandon the replacement operation.
So now we decide upfront if we have a CSE def with side effects before we call optUnmarkCSEs.

6 years agoDon't set delayRegFree if no target
Carol Eidt [Fri, 16 Feb 2018 23:01:44 +0000 (15:01 -0800)]
Don't set delayRegFree if no target

The `delayRegFree` flag on a use indicates that it interferes with the target register of the same node. This doesn't make sense if there is no def, and will cause the register to unnecessarily be kept alive until after the next actual reference.
This led to an assert in the verification pass on arm64. Checking and asserting for this case exposed another case for x86/x64.

Fix #15037

6 years agoMerge pull request #16364 from CarolEidt/FixDD543057a
Carol Eidt [Fri, 16 Feb 2018 22:48:07 +0000 (14:48 -0800)]
Merge pull request #16364 from CarolEidt/FixDD543057a

Correctly handle check for busy double reg

6 years agoMerge pull request #16393 from BruceForstall/CleanupRunTest
Bruce Forstall [Fri, 16 Feb 2018 18:58:13 +0000 (10:58 -0800)]
Merge pull request #16393 from BruceForstall/CleanupRunTest

Clean up runtest.cmd

6 years agoCorrectly handle check for busy double reg
Carol Eidt [Tue, 13 Feb 2018 22:35:34 +0000 (14:35 -0800)]
Correctly handle check for busy double reg

Fixes the second case in DevDev bug 543057

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to preview2-02516-02, preview2-26214...
dotnet-maestro-bot [Fri, 16 Feb 2018 17:34:19 +0000 (11:34 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview2-02516-02, preview2-26214-07, preview2-26216-03, master-20180216-0045, respectively (#16339)

6 years agoFix dlStack test (#16410)
Sergey Andreenko [Fri, 16 Feb 2018 17:21:03 +0000 (09:21 -0800)]
Fix dlStack test (#16410)

6 years agodelete liveness workarond. (#16416)
Sergey Andreenko [Fri, 16 Feb 2018 17:18:48 +0000 (09:18 -0800)]
delete liveness workarond. (#16416)

6 years agoFix regression & enable ClearInitLocals in System.Text.RegularExpressions (#27146)
Viktor Hofer [Thu, 15 Feb 2018 22:32:19 +0000 (23:32 +0100)]
Fix regression & enable ClearInitLocals in System.Text.RegularExpressions (#27146)

* Fix bug in RegexWriter ref struct change

* Remove duplicate ValueListBuilder implementation

* Enable ILLinkClearInitLocals

* Rename concrete ValueListBuilder impl to Pop

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoFix impl of ReadOnlySpan StartsWith/EndsWith for Unix. (#16418)
Ahson Khan [Fri, 16 Feb 2018 08:44:20 +0000 (00:44 -0800)]
Fix impl of ReadOnlySpan StartsWith/EndsWith for Unix. (#16418)

6 years agoreenable readytorun\tests\mainv* for arm jitstress (#16417)
Sergey Andreenko [Fri, 16 Feb 2018 08:22:25 +0000 (00:22 -0800)]
reenable readytorun\tests\mainv* for arm jitstress (#16417)

6 years agoFix coreOverlayDir in Unix test instructions (#16415)
Sung Yoon Whang [Fri, 16 Feb 2018 03:43:01 +0000 (19:43 -0800)]
Fix coreOverlayDir in Unix test instructions (#16415)

6 years agoAdd ReadOnlySpan string-like ToLower/ToUpper API with globalization support (#16379)
Ahson Khan [Fri, 16 Feb 2018 02:43:43 +0000 (18:43 -0800)]
Add ReadOnlySpan string-like ToLower/ToUpper API with globalization support (#16379)

* Add ReadOnlySpan string-like ToLower/ToUpper API with globalization support

* Address PR feedback.

6 years agoFix for assert(sideEffList) in clr\src\jit\optcse.cpp, Line: 2151
Brian Sullivan [Fri, 16 Feb 2018 01:15:59 +0000 (17:15 -0800)]
Fix for assert(sideEffList) in clr\src\jit\optcse.cpp, Line: 2151

If we return WALK_ABORT this assert will fire when the side effect list 'keepList' is empty.
With this fix we don't return WALK_ABORT when the keepList is empty, instead we just place
the CSE def into the keepList

6 years agoImplement SSE4.1 LoadAlignedVector128NonTemporal
Fei Peng [Thu, 15 Feb 2018 23:25:09 +0000 (15:25 -0800)]
Implement SSE4.1 LoadAlignedVector128NonTemporal

6 years agoaddress GT_ADDR(GT_HWIntrinsic) nodes
Fei Peng [Thu, 15 Feb 2018 01:21:07 +0000 (17:21 -0800)]
address GT_ADDR(GT_HWIntrinsic) nodes

6 years agoFix importer and morph with HWIntrinsic SIMD types
Fei Peng [Wed, 14 Feb 2018 22:01:09 +0000 (14:01 -0800)]
Fix importer and morph with HWIntrinsic SIMD types

6 years agoFix typo in GC log (#16398)
Kevin Gosse [Thu, 15 Feb 2018 20:08:15 +0000 (21:08 +0100)]
Fix typo in GC log (#16398)

6 years agoMerge pull request #16160 from sdmaclea/PR-ARM64-SIMD-INSERT
Carol Eidt [Thu, 15 Feb 2018 15:30:29 +0000 (07:30 -0800)]
Merge pull request #16160 from sdmaclea/PR-ARM64-SIMD-INSERT

[Arm64] Implement Simd.Insert

6 years agoImplement RuntimeHelpers.PrepareMethod/PrepareDelegate for CoreCLR (#16382)
Jan Kotas [Thu, 15 Feb 2018 06:19:16 +0000 (20:19 -1000)]
Implement RuntimeHelpers.PrepareMethod/PrepareDelegate for CoreCLR (#16382)

* Implement RuntimeHelpers.PrepareMethod/PrepareDelegate for CoreCLR

CoreCLR implementation of this method triggers jiting of the given method only.
It does not walk a subset of callgraph to provide CER guarantees because of CERs
are not supported by CoreCLR.

Fixes #15522

6 years agoTypos (dotnet/corert#5386)
John Doe [Wed, 14 Feb 2018 16:08:24 +0000 (08:08 -0800)]
Typos (dotnet/corert#5386)

* acces -> access

* accesss -> access

* acknowleges -> acknowledges

* actitivy -> activity

* Additonally -> Additionally

* Activable -> Activatable

* adjustting -> adjusting

* Aggresive -> Aggressive

* agressively -> aggressively

* agressive -> aggressive

* Aleady -> Already

* alernate -> alternate

* aligh -> align

* Alloctor -> Allocator

* allready -> already

* Althought -> Although

* Amonst -> Amongst

* anthing -> anything

* Anthyhing -> Anything

* Aquired -> Acquired

* aquire -> acquire

* Architecure -> Architecture

* Arthimatic -> Arithmetic

* artiface -> artifact

* artifical -> artificial

* Arugment -> Argument

* assigining -> assigning

* atomicly -> atomically

* auxillary -> auxiliary

* avilability -> availability

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoStringComparer Create(culture, CompareOptions) overload (#16334)
Anirudh Agnihotry [Thu, 15 Feb 2018 01:47:14 +0000 (17:47 -0800)]
StringComparer Create(culture, CompareOptions) overload (#16334)

* String Create options overlaod

* Minor Change

* Feedback

* validation on options

* obsolete removed

* Implementing Iserializable and removing ignorecase

* HashCode and serialization changes

* made inline

* Space Corrected

6 years agosigsegv_handler: handle case when it is called on original stack (#16276)
Konstantin Baladurin [Thu, 15 Feb 2018 01:25:32 +0000 (04:25 +0300)]
sigsegv_handler: handle case when it is called on original stack (#16276)

* CatchHardwareExceptionHolder: use GetCurrentPalThread instead of
InternalGetCurrentThread in IsEnabled method.

InternalGetCurrentThread tries to create pal thread if it doesn't
exist for the current thread. It's unnecessary because in this case
there are no hardware exception handlers for such thread.

Also CatchHardwareExceptionHolder::IsEnable is called from signal
handlers and during pal thread creation non-async-signal-safe
function are called.

* vm/threads: change tls model for gCurrentThreadInfo variable

We should use initial-exec tls model to avoid memory allocations
during first access to this variable because it may ocuur in
signal handlers.

* sigsegv_handler: handle case when it is called on original stack

If sigsegv_handler is called on original stack (for example, if segmentation
fault occurs in native application's thread that hasn't alternate signal stack)
we should call common_signal_handler directly othersize sigsegv_handler's
stackframe will be corrupted.

6 years agoAdding Argument name to the Exception (#16372)
Anirudh Agnihotry [Wed, 14 Feb 2018 23:54:18 +0000 (15:54 -0800)]
Adding Argument name to the Exception (#16372)

6 years ago[RyuJit] Stack level setter (#15597)
Sergey Andreenko [Wed, 14 Feb 2018 23:38:58 +0000 (15:38 -0800)]
[RyuJit] Stack level setter (#15597)

* create a new phase: StackLevelSetter

* add repro

* Fix grammar mistakes

* use the default hash

* delete values from the map.

* create gentree::OperIsPutArgStkOrSplit

* fix more comments

* delete an extra condition that is always true

* use GTSTRUCT_2_SPECIAL for PutArgStk

* extract fgUseThrowHelperBlocks

* optimize memory for amd64 and additional checks for x86

* change checks

The previous version was wrong, because morph can call fgAddCodeRef several times for the same instruction during different phases.

* fix comments

* fix genJumpToThrowHlpBlk

* small ref in genJumpToThrowHlpBlk

* fix rebase problems.

* use fgUseThrowHelperBlocks instead of !opts.compDbgCode

* add throwHelperBlocksUsed for throughput.

6 years agoClean up runtest.cmd
Bruce Forstall [Wed, 14 Feb 2018 21:31:03 +0000 (13:31 -0800)]
Clean up runtest.cmd

Don't do NI and LOCK deletion (which is slow) if doing
GenerateLayoutOnly.

Plus, other smaller changes to make the file easier to read,
such as adding more comments.

6 years ago[armel tizen] Fixed dynamic code allocation and code pitching for ARM (#16352)
sergey ignatov [Wed, 14 Feb 2018 22:35:21 +0000 (01:35 +0300)]
[armel tizen] Fixed dynamic code allocation and code pitching for ARM (#16352)

* [armel tizen] Fixed dynamic code allocation for ARM

* Added comment

* Used ThumbCodeToDataPointer

* Changed to PCODEToPINSTR