platform/upstream/coreclr.git
6 years agoOptimize Span.Copy and Span.TryCopyTo (#15947)
Levi Broderick [Sat, 27 Jan 2018 06:35:46 +0000 (22:35 -0800)]
Optimize Span.Copy and Span.TryCopyTo (#15947)

* Introduce a ref-based version of Buffer.Memmove
* Remove pinning logic from Span.CopyTo
* Tweak flow graph of Span.CopyTo / TryCopyTo in order to encourage better codegen
* Push some uncommon logic (one-element buffers, perfectly overlapping buffers) down to Memmove

6 years agoFix some tests under GCStress (#16048)
Koundinya Veluri [Sat, 27 Jan 2018 03:39:51 +0000 (19:39 -0800)]
Fix some tests under GCStress (#16048)

- Disabled one test, it takes far too long under GCStress
- For another, added a second call to WaitForPendingFinalizers() to ensure correspondence with a GC.Collect() call

6 years agoFix side effect flags setting after expression cloning. (#16045)
Eugene Rozenfeld [Sat, 27 Jan 2018 01:06:07 +0000 (17:06 -0800)]
Fix side effect flags setting after expression cloning. (#16045)

Side effect flags need to be recomputed after cloning
an expression, since cloning may involve some simplifications
(e.g., replacing a local with a const).

I also did some minor refactoring and renaming of the side-effect-updating helpers
and made one of them more robust by checking whether a child is null before accessing
its flags.

This fixes VSO 543054 where this problem was encountered in a PMI ARM32 JitStress=2 run.

6 years agoGCPrivate, GCHandle, and GChandlePrivate events for local GC (#16020)
David Mason [Sat, 27 Jan 2018 00:05:44 +0000 (16:05 -0800)]
GCPrivate, GCHandle, and GChandlePrivate events for local GC (#16020)

* first event changed

* rest of the private events

* whitespace fixes

6 years agoFix FreeBSD build and update build instructions (#15998)
Conrad Meyer [Fri, 26 Jan 2018 21:31:21 +0000 (13:31 -0800)]
Fix FreeBSD build and update build instructions (#15998)

Move test code include in global CMakeLists before PAL runtime includes to
avoid conflicts between PAL and system headers.
(ForeignThreadExceptionsNative.cpp -> thread -> functional -> memory ->
cassert -> pal rt "assert.h".)  Drop no longer needed remove_definitions
lines -- they're only set by the clrdefinitions.cmake include later in
the file.

Update build instructions to include needed components (ninja,
lttng-ust, python27).

Add missing ElfW() definition when libunwind does not define it.

FreeBSD alloca() is defined in stdlib.h, so include that instead of
alloca.h on FreeBSD.

6 years agoMerge pull request #16035 from jashook/use_checked_centos
Jarret Shook [Fri, 26 Jan 2018 18:52:20 +0000 (10:52 -0800)]
Merge pull request #16035 from jashook/use_checked_centos

Use centOS Checked jobs

6 years agoUse centOS Checked jobs
jashook [Fri, 26 Jan 2018 17:08:43 +0000 (09:08 -0800)]
Use centOS Checked jobs

6 years agofix pointer in ILCodeVersionNode so it uses PTR_COR_ILMETHOD instead of COR_IL_METHOD...
David Mason [Fri, 26 Jan 2018 07:41:29 +0000 (23:41 -0800)]
fix pointer in ILCodeVersionNode so it uses PTR_COR_ILMETHOD instead of COR_IL_METHOD *, which was causing a crash in the DAC (#16003)

6 years agoCreate the concept of EventPipeSession and refactor EventPipe to use it. Also expose...
Brian Robbins [Fri, 26 Jan 2018 04:29:23 +0000 (20:29 -0800)]
Create the concept of EventPipeSession and refactor EventPipe to use it.  Also expose COMPlus configuration variables to support session configuration and output file path. (#16018)

6 years agoFix Windows-Specific EventPipe Bugs (#16025)
Brian Robbins [Fri, 26 Jan 2018 04:28:48 +0000 (20:28 -0800)]
Fix Windows-Specific EventPipe Bugs (#16025)

* Modify IsEnabled macros used on Windows.

* Fix arithmetic error due to order of operations.

6 years ago[Local GC] FEATURE_EVENT_TRACE 3/n: Defining and Firing Dynamic Events (#16000)
Sean Gillespie [Fri, 26 Jan 2018 02:17:57 +0000 (18:17 -0800)]
[Local GC] FEATURE_EVENT_TRACE 3/n: Defining and Firing Dynamic Events (#16000)

6 years agoCompute System.Private.CoreLib roots required by the runtime. (#15525)
Eugene Rozenfeld [Fri, 26 Jan 2018 01:45:10 +0000 (17:45 -0800)]
Compute System.Private.CoreLib roots required by the runtime. (#15525)

Embed the result as a System.Private.CoreLib.dll xml resource
for consumption by ILLink.

Update mscorlib.h to make several dependencies explicit.

The actual msbuild task lives in the linker repo:
https://github.com/mono/linker/blob/master/corebuild/integration/ILLink.Tasks/CreateRuntimeRootDescriptorFile.cs

6 years agoFix asan false-positive errors: (#15563)
Konstantin Baladurin [Thu, 25 Jan 2018 22:19:19 +0000 (01:19 +0300)]
Fix asan false-positive errors: (#15563)

- Call __asan_handle_no_return in RtlRestoreContext if it doesn't return
  and in ThrowExceptionFromContextInternal function;

- Increase alternate signal stack size and use it also for asan.

6 years agoEnable tiered jitting for R2R methods (#15967)
Koundinya Veluri [Thu, 25 Jan 2018 20:01:32 +0000 (12:01 -0800)]
Enable tiered jitting for R2R methods (#15967)

Enable tiered jitting for R2R methods

- Included R2R methods and generics over value types in CoreLib for tiered jitting. Tier 0 for R2R methods is the precompiled code if available, and tier 1 is selectively scheduled based on call counting.
- Added a delay before starting to count calls for tier 1 promotion. The delay is a short duration after frequent tier 0 jitting stops (current heuristic for identifying startup).
- Startup time and steady-state performance have improved on JitBench. There is a regression shortly following startup due to call counting and tier 1 jitting, for a short duration before steady-state performance stabilizes.
- Added two new config values, one for configuring the call count threshold for promoting to tier 1, and another for specifying the delay from the last tier 0 JIT invocation before starting to count calls

6 years agoRevert "Add environment variable (COMPlus_EnableDiagnostics) to disable debugging...
Russ Keldorph [Thu, 25 Jan 2018 00:52:29 +0000 (16:52 -0800)]
Revert "Add environment variable (COMPlus_EnableDiagnostics) to disable debugging and profiling. (#15878)"

This reverts commit 5bcfde404803f85451cf0ee9fd6406734cb878ff.

6 years ago Add GetLoadLibrary function for PAL & use in TrackErrorCode (#15831)
William Godbe [Thu, 25 Jan 2018 18:23:01 +0000 (10:23 -0800)]
 Add GetLoadLibrary function for PAL & use in TrackErrorCode (#15831)

* Add GetLoadLibrary function for PAL & use in TrackErrorCode

* Finish changes to dllimport.cpp

* Fix unix build errors

* fix windows issues

* Address feedback

* Fix return type

* Address feedback

* Fix return type

* Fix usage of LPCWSTR

* Use shared library string

* Append message strings

* Fix append

* Append newline

* Fix spelling

* Modify error messages

* Resolve conflicts

* Add mac message & stop appending all exceptions

* Fix another error message

* Fix NoName Error

* Add newline to .h file

6 years agoResolve iterators and async methods (#14655)
Ben Adams [Thu, 25 Jan 2018 17:56:36 +0000 (17:56 +0000)]
Resolve iterators and async methods (#14655)

Allows a developer to determine *correct* overload called for *async* and *iterators*, from a stacktrace.

Matches the compiler generated containing `Type` to the source method using:
`method.DeclaringType == StateMachineAttribute.StateMachineType` attribute to allow the stack trace to resolve the mangled method name to the correct overload.  Also appends the statemachine method name with `+` for iterators.

Resolves: dotnet/corefx#24627

6 years agoMerge pull request #16017 from jashook/fix_inner_loop_centos_test
Jarret Shook [Thu, 25 Jan 2018 17:34:12 +0000 (09:34 -0800)]
Merge pull request #16017 from jashook/fix_inner_loop_centos_test

Correctly allow buildOnly jobs for release x64

6 years agoCorrectly allow buildOnly jobs for release x64
jashook [Thu, 25 Jan 2018 17:15:08 +0000 (09:15 -0800)]
Correctly allow buildOnly jobs for release x64

6 years agoMerge pull request #16005 from CarolEidt/Fix15848
Carol Eidt [Thu, 25 Jan 2018 16:08:27 +0000 (08:08 -0800)]
Merge pull request #16005 from CarolEidt/Fix15848

Disable FP to Unsigned Vector Conversions

6 years agoMinor bug fix for Array.Sort: Replace keys.Length with length for FloorLog2PlusOne...
nietras [Thu, 25 Jan 2018 14:20:10 +0000 (15:20 +0100)]
Minor bug fix for Array.Sort: Replace keys.Length with length for FloorLog2PlusOne (#16002)

* replace keys.Length with length for FloorLog2PlusOne

* fix non-generic sort

6 years ago[x86/Linux] Fix HelperMethodFrame::UpdateRegDisplay (#15993)
Konstantin Baladurin [Thu, 25 Jan 2018 10:31:32 +0000 (13:31 +0300)]
[x86/Linux] Fix HelperMethodFrame::UpdateRegDisplay (#15993)

For DAC after initialization MachState using InsureInit method,
register pointers are NULL so we cannot use them to restore register
values.

6 years agoDisable the ConvertToUInt intrinsics by removing them from simdintrinsiclist.h
Carol Eidt [Thu, 25 Jan 2018 05:36:02 +0000 (21:36 -0800)]
Disable the ConvertToUInt intrinsics by removing them from simdintrinsiclist.h

6 years agoMerge pull request #15813 from jashook/inner_loop_fixes
Jarret Shook [Thu, 25 Jan 2018 05:24:02 +0000 (21:24 -0800)]
Merge pull request #15813 from jashook/inner_loop_fixes

Add innerloop tag for pri0 jobs

6 years agoAdd innerloop tag for pri0 jobs
jashook [Wed, 10 Jan 2018 17:52:23 +0000 (09:52 -0800)]
Add innerloop tag for pri0 jobs

Everything that is not innerloop will run priority 1.

6 years agoDisable FP to Unsigned Vector Conversions
Carol Eidt [Wed, 24 Jan 2018 23:41:06 +0000 (15:41 -0800)]
Disable FP to Unsigned Vector Conversions

The specific failure in #15848 was due to a problem with the AVX encoding of the pinsrw instruction that was exposed when AVX is enabled but AVX2 is not. The code generator generates the (SSE2) 2-operand form, but this is an instruction that needs to be encoded with the dst duplicated when using AVX encodings. So it needs to be added to `IsDstDstSrcAVXInstruction()`.

Investigating this (and adding additional test coverage) revealed that conversions to FP were not implemented correctly for out-of-range values, and providing the same behavior as scalar conversion is complex and costly, with unknown benefit, as this is not expected to be a common scenario. So, don't recognize these as intrinsics (revert to the IL implementation).

Also, fix the test to cover more cases.

Fix 15848

6 years agoFix syntax error in illink groovy (#15999)
Michelle McDaniel [Wed, 24 Jan 2018 22:01:10 +0000 (14:01 -0800)]
Fix syntax error in illink groovy (#15999)

6 years agoDelete Ptr typedefs from jit src. (#15983)
Sergey Andreenko [Wed, 24 Jan 2018 21:19:09 +0000 (13:19 -0800)]
Delete Ptr typedefs from jit src. (#15983)

* delete fgArgInfoPtr

* delete treeLstPtr

* delete treeStmtLstPtr

* delete fgArgTabEntryPtr

* delete BasicBlockPtr

6 years agoAdd "CLRJitAttachState" global export from coreclr.dll that contains the CLR_DEBUGGIN...
Mike McLaughlin [Wed, 24 Jan 2018 20:31:44 +0000 (12:31 -0800)]
Add "CLRJitAttachState" global export from coreclr.dll that contains the CLR_DEBUGGING_PROCESS_FLAGS for VS. (#15973)

6 years agoReflection-block some types in CoreLib (dotnet/corert#5286)
Michal Strehovský [Wed, 24 Jan 2018 16:00:14 +0000 (17:00 +0100)]
Reflection-block some types in CoreLib (dotnet/corert#5286)

This saves 50 kB on a hello world app.

This is using the existing ReflectionBlocked attribute to manually block public types that get otherwise blocked by the IL2IL toolchain in Project N. These types are public within the repo, but should be considered private implementation details everywhere else.

Wrote a small tool that would let me identify these: https://gist.github.com/MichalStrehovsky/e2ddec899d3e0db6eba95bf68694b40e. There is more.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years ago[Local GC] FEATURE_EVENT_TRACE 2/n: Scaffolding for emitting known events (#15957)
Sean Gillespie [Wed, 24 Jan 2018 18:04:56 +0000 (10:04 -0800)]
[Local GC] FEATURE_EVENT_TRACE 2/n: Scaffolding for emitting known events  (#15957)

* [Local GC] FEATURE_EVENT_TRACE 2/n: Scaffolding for porting known events to callbacks on GCToEEInterface

* Code review feedback: remove `descriptor` system for known events and instead use the gcevents xmacro to generate calls to `GCEventStatus::IsEnabled` with known constants

* Remove more event descriptor code

6 years agoMerge pull request #15980 from CarolEidt/Fix15932
Carol Eidt [Wed, 24 Jan 2018 16:09:11 +0000 (08:09 -0800)]
Merge pull request #15980 from CarolEidt/Fix15932

Adjust minRegs for SELECT stress modes

6 years agoDelete dead code (#15990)
Jan Kotas [Wed, 24 Jan 2018 03:56:42 +0000 (19:56 -0800)]
Delete dead code (#15990)

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to prerelease-02423-02, preview2-26124...
dotnet-maestro-bot [Wed, 24 Jan 2018 03:56:24 +0000 (21:56 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02423-02, preview2-26124-01, preview2-26124-02, master-20180123-0043, respectively (#15976)

6 years agoMerge pull request #15949 from mikedn/shift-inconsistency
Bruce Forstall [Wed, 24 Jan 2018 03:51:43 +0000 (19:51 -0800)]
Merge pull request #15949 from mikedn/shift-inconsistency

Fix 64 bit shift inconsistencies (on 32 bit targets)

6 years ago[Local GC] FEATURE_EVENT_TRACE 1/n: Tracking Event State (#15873)
Sean Gillespie [Wed, 24 Jan 2018 02:53:30 +0000 (18:53 -0800)]
[Local GC] FEATURE_EVENT_TRACE 1/n: Tracking Event State (#15873)

* [Local GC] FEATURE_EVENT_TRACE 1/n: Add infrastructure for keeping event state within the GC and plumbing to communicate event state changes

* Code review feedback: use a load without a barrier in IsEnabled and put debug-only code under TRACE_GC_EVENT_STATE

* Address code review feedback: add EventPipe callback and comments

* Fix the non-FEATURE_PAL build

* Fix an issue where the GC fails to react to ETW callbacks to occur before the GC is initialized (e.g. on startup when an ETW session is already active)

* Simplify callback locking scheme

* Add a separate callback for each EventPipe provider and funnel them all through a common handler

* Fix non-FEATURE_PAL build

6 years agoAdd Unsafe.IsAddressGreaterThan / IsAddressLessThan (#15988)
Levi Broderick [Wed, 24 Jan 2018 01:00:47 +0000 (17:00 -0800)]
Add Unsafe.IsAddressGreaterThan / IsAddressLessThan (#15988)

6 years agoCatch ambiguous interface method resolution exceptions (#15978)
Michal Strehovský [Wed, 24 Jan 2018 00:11:31 +0000 (01:11 +0100)]
Catch ambiguous interface method resolution exceptions (#15978)

Default interface methods might end up being ambiguous. This thows an exception we need to catch.

6 years agoDo not devirtualize shared default interface methods (#15979)
Michal Strehovský [Wed, 24 Jan 2018 00:10:52 +0000 (01:10 +0100)]
Do not devirtualize shared default interface methods (#15979)

The result of the devirtualization for a method on a generic type should be an instantiating stub, but this doesn't seem to work right.

Fixing that is a perf issue (that can be triaged/punted - #15977). This commit is a correctness fix to avoid bad codegen for that case.

Resolves #15591.

6 years agoMerge pull request #15984 from dagood/remove-conversion/master
Wes Haggard [Tue, 23 Jan 2018 20:27:53 +0000 (12:27 -0800)]
Merge pull request #15984 from dagood/remove-conversion/master

Never attempt Portable PDB conversion

6 years agoNever attempt Portable PDB conversion
Davis Goodin [Tue, 23 Jan 2018 20:10:49 +0000 (14:10 -0600)]
Never attempt Portable PDB conversion

The inline script detected whether the branch name contained "release/" and ran a different target. That target tries to convert Portable PDBs into Windows PDBs, which currently hits errors in CoreCLR.

Remove this logic from CoreCLR: it is no longer necessary because orchestrated builds will have a post-build symbol publish step.

6 years agoAdjust minRegs for SELECT stress modes
Carol Eidt [Tue, 23 Jan 2018 15:48:49 +0000 (07:48 -0800)]
Adjust minRegs for SELECT stress modes

My recent refactoring to put all the `minRegCandidateCount` computation in one place failed to take into account that the `LSRA_SELECT` stress modes can also overly constrain the number of registers. Therefore, it needs to be applied only after the `minRegCandidateCount` has been computed. This may in turn cause new conflicts between the def and use of a tree temp, so factor out the code that checks for that.

Fix #15932

6 years agoRemove hardcoded paths in linkbench scripts (#15939)
Michelle McDaniel [Tue, 23 Jan 2018 16:30:28 +0000 (08:30 -0800)]
Remove hardcoded paths in linkbench scripts (#15939)

* Remove hardcoded paths in linkbench scripts

Linkbench has hardcoded paths based off of VS140COMNTOOLS, which not all
machines will have (ie, machines with only VS2017 installed). This
change removes the hardcoded paths, and replaces them with checks to
make sure the tool is on the path (which they will be if we are in a VS
environment of any kind - which we would have been in if
VS140COMNTOOLS was already set).

6 years agoUpdate BuildTools, CoreClr, CoreFx, PgoData to prerelease-02422-01, preview2-26123...
dotnet-maestro-bot [Tue, 23 Jan 2018 06:32:01 +0000 (00:32 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02422-01, preview2-26123-01, preview2-26123-01, master-20180122-0034, respectively (#15882)

6 years agoMisc Span/Memory changes (#15941)
Ian Hays [Tue, 23 Jan 2018 03:07:15 +0000 (19:07 -0800)]
Misc Span/Memory changes (#15941)

* Misc Span/Memory additions
- Add MemoryMarshal.CreateSpan to replace DangerousCreate
- Add MemoryMarshal.CreateReadOnlySpan to replace DangerousCreate
- Add MemoryMarshal.Cast to replace NonPortableCast
- Add ToString override to Span and ReadOnlySpan
- Add ToEnumerable function to MemoryMarshal that takes a ReadOnlyMemory

6 years agoDisable EventPipe tests which fair in stress runs (#15972)
Victor "Nate" Graf [Tue, 23 Jan 2018 02:53:06 +0000 (18:53 -0800)]
Disable EventPipe tests which fair in stress runs (#15972)

Disable EventPipe tests which fair in stress runs

Addresses: #15924
Follow-up: #15927

6 years agoRename Pin offset to byteOffset and clean up Retain test (#26518)
Ahson Khan [Mon, 22 Jan 2018 21:57:11 +0000 (13:57 -0800)]
Rename Pin offset to byteOffset and clean up Retain test (#26518)

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoRemove .NET limit on env var name and value length
danmosemsft [Mon, 22 Jan 2018 19:38:54 +0000 (11:38 -0800)]
Remove .NET limit on env var name and value length

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoMerge pull request #15966 from weshaggard/MoveTo21Preview2
Wes Haggard [Mon, 22 Jan 2018 21:58:41 +0000 (13:58 -0800)]
Merge pull request #15966 from weshaggard/MoveTo21Preview2

Move from preview1 to preview2 in master branches

6 years agoMove TimeZoneInfo.Win32.cs to shared CoreLib partition (#15953)
Jan Kotas [Mon, 22 Jan 2018 21:30:20 +0000 (13:30 -0800)]
Move TimeZoneInfo.Win32.cs to shared CoreLib partition (#15953)

Reconcile deltas with CoreRT and refactor interop to follow coding conventions

6 years agoMove from preview1 to preview2 in master branches
Wes Haggard [Mon, 22 Jan 2018 19:39:44 +0000 (11:39 -0800)]
Move from preview1 to preview2 in master branches

preview1 will be produced from the release/2.1 branch

6 years agoMerge pull request #15944 from BruceForstall/CorefxTestUseCorrectVersion
Bruce Forstall [Mon, 22 Jan 2018 19:11:30 +0000 (11:11 -0800)]
Merge pull request #15944 from BruceForstall/CorefxTestUseCorrectVersion

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

6 years agoMerge pull request #15942 from tannergooding/no-multireg-simd
Tanner Gooding [Mon, 22 Jan 2018 17:46:22 +0000 (09:46 -0800)]
Merge pull request #15942 from tannergooding/no-multireg-simd

Updating the VM to no longer treat the SIMD HWIntrinsic types as HFA or MultiReg structs

6 years agoFix Windows ARM release build break (#15958)
Jan Kotas [Mon, 22 Jan 2018 07:06:53 +0000 (23:06 -0800)]
Fix Windows ARM release build break (#15958)

6 years agoMerge pull request #15959 from jashook/remove_arm_pr_trigger
Jarret Shook [Mon, 22 Jan 2018 06:25:35 +0000 (22:25 -0800)]
Merge pull request #15959 from jashook/remove_arm_pr_trigger

Turn off arm pr trigger

6 years agoTurn off arm pr trigger
jashook [Mon, 22 Jan 2018 06:15:44 +0000 (22:15 -0800)]
Turn off arm pr trigger

6 years agoStop the SIMD hardware intrinsics types from undergoing crossgen.
Tanner Gooding [Sat, 20 Jan 2018 18:23:52 +0000 (10:23 -0800)]
Stop the SIMD hardware intrinsics types from undergoing crossgen.

6 years agoRemove AppDomainLeaks configuration option (#15956)
antofik [Mon, 22 Jan 2018 02:03:51 +0000 (05:03 +0300)]
Remove AppDomainLeaks configuration option (#15956)

Removed all usages of AppDomainLeaks configuration option and
CHECK_APP_DOMAIN_LEAKS feature

Fix #12094

6 years agoRename Libraries.GlobalizationInterop to Libraries.GlobalizationNative
Jan Kotas [Sun, 21 Jan 2018 07:52:02 +0000 (23:52 -0800)]
Rename Libraries.GlobalizationInterop to Libraries.GlobalizationNative

Consistency with CoreFX and coding conventions.

Also delete a few other pieces of unused code.

6 years agoDefine Interop.Kernel32.MAX_PATH (#15952)
Jan Kotas [Sun, 21 Jan 2018 02:18:07 +0000 (18:18 -0800)]
Define Interop.Kernel32.MAX_PATH (#15952)

* Define Interop.Kernel32.MAX_PATH

For consistency with CoreFX and coding conventions.

6 years agoMerge pull request #15948 from fiigii/fix-ifdef
Bruce Forstall [Sun, 21 Jan 2018 01:49:40 +0000 (17:49 -0800)]
Merge pull request #15948 from fiigii/fix-ifdef

Fix a minor bug

6 years agoFix timezone lookup to be consistently case insensitive (#15951)
Jan Kotas [Sat, 20 Jan 2018 21:32:46 +0000 (13:32 -0800)]
Fix timezone lookup to be consistently case insensitive (#15951)

The timezone ids used case insensitive comparisons everywhere, except in the dictionary used to cache timezones.

Fixes dotnet/corefx#26479

6 years agoMerge pull request #15936 from GrabYourPitchforks/levib/memory_nullref
Jeremy Barton [Sat, 20 Jan 2018 16:41:39 +0000 (08:41 -0800)]
Merge pull request #15936 from GrabYourPitchforks/levib/memory_nullref

Allow implicit conversion of null arrays to empty Memory instances

6 years agoAdd optional integer offset to OwnedMemory Pin (#15946)
Ahson Khan [Sat, 20 Jan 2018 14:40:44 +0000 (06:40 -0800)]
Add optional integer offset to OwnedMemory Pin (#15946)

6 years agoFix 64 bit shift inconsistencies (on 32 bit targets)
Mike Danes [Sat, 20 Jan 2018 12:08:37 +0000 (14:08 +0200)]
Fix 64 bit shift inconsistencies (on 32 bit targets)

Recent shift changes made the JIT_LLsh helper mask the shift count to 6 bits. The other 2 helpers (JIT_LRsh and JIT_LRsz) so now we get inconsistencies such as `(x >> 64) != (x << 64)`.

The ECMA spec says that "the return value is unspecified if shiftAmount is greater than or equal to the width of value" so the JIT has no obligation to implement a particular behavior. But it seems preferable to have all shift instructions behave similarly, it avoids complications and reduces risks.

This also changes `ValueNumStore::EvalOpIntegral` to mask the shift count for 64 bit shifts so it matches `gtFoldExprConst`. Otherwise the produced value depends on the C/C++ compiler's behavior.

6 years ago#if defined(_TARGET_XARCH_) || defined(_TARGET_ARM64_)
Fei Peng [Sat, 20 Jan 2018 06:08:03 +0000 (22:08 -0800)]
#if defined(_TARGET_XARCH_) || defined(_TARGET_ARM64_)

6 years agoMerge pull request #15945 from dotnet-bot/from-tfs
Bruce Forstall [Sat, 20 Jan 2018 05:59:44 +0000 (21:59 -0800)]
Merge pull request #15945 from dotnet-bot/from-tfs

Merge changes from TFS

6 years agoBreak current culture initialization cycle (#15938)
Jan Kotas [Sat, 20 Jan 2018 04:06:39 +0000 (20:06 -0800)]
Break current culture initialization cycle (#15938)

Fixes #15931

6 years agoMerge pull request #15903 from CarolEidt/Fix545505
Carol Eidt [Sat, 20 Jan 2018 02:15:33 +0000 (18:15 -0800)]
Merge pull request #15903 from CarolEidt/Fix545505

ARM: Fix morphing of struct passed on stack

6 years agoFix desktop build
Bruce Forstall [Sat, 20 Jan 2018 01:18:49 +0000 (17:18 -0800)]
Fix desktop build

1. Fix `LEGACY_BACKEND`
2. `#if FEATURE_HW_INTRINSICS` => `#ifdef FEATURE_HW_INTRINSICS`

[tfs-changeset: 1686599]

6 years agoUpdating the VM to no longer treat the SIMD HWIntrinsic types as HFA or MultiReg...
Tanner Gooding [Fri, 19 Jan 2018 23:49:47 +0000 (15:49 -0800)]
Updating the VM to no longer treat the SIMD HWIntrinsic types as HFA or MultiReg structs.

6 years agoAdd CI support for updated run-corefx-tests.py
Bruce Forstall [Fri, 19 Jan 2018 23:59:09 +0000 (15:59 -0800)]
Add CI support for updated run-corefx-tests.py

Change CI to build a "GenerateLayoutOnly" drop for corefx testing,
specifically to cause the corefx package to be restored, so we
can determine its version.

6 years agoMerge pull request #15836 from tannergooding/emitInsBinary
Tanner Gooding [Fri, 19 Jan 2018 23:51:51 +0000 (15:51 -0800)]
Merge pull request #15836 from tannergooding/emitInsBinary

Refactoring emitInsBinary

6 years agoCharUnicodeInfo.GetUnicodeCategory(int codePoint) (#15911)
Nobuyuki Iwanaga [Fri, 19 Jan 2018 23:29:32 +0000 (08:29 +0900)]
CharUnicodeInfo.GetUnicodeCategory(int codePoint) (#15911)

* CharUnicodeInfo.GetUnicodeCategory(int codePoint)

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

- renamed UnicodeCategory.InternalGetUnicodeCategory to GetUnicodeCategory
- renamed its parameter ch to codePoint
- made it public

* fix build break

6 years agoMerge pull request #15798 from sdmaclea/PR-ARM64-Set-Instruction-Set-Flags
Carol Eidt [Fri, 19 Jan 2018 23:21:09 +0000 (15:21 -0800)]
Merge pull request #15798 from sdmaclea/PR-ARM64-Set-Instruction-Set-Flags

[Arm64] Set Instruction set flags

6 years agoMerge pull request #15933 from sdmaclea/PR-ARM64-EMIT-COMPARE-ZERO
Carol Eidt [Fri, 19 Jan 2018 23:17:18 +0000 (15:17 -0800)]
Merge pull request #15933 from sdmaclea/PR-ARM64-EMIT-COMPARE-ZERO

[Arm64] Add compare vector to zero emitters

6 years agoMerge pull request #15935 from sdmaclea/PR-ARM64-IRREGULAR-NOT
Carol Eidt [Fri, 19 Jan 2018 23:16:18 +0000 (15:16 -0800)]
Merge pull request #15935 from sdmaclea/PR-ARM64-IRREGULAR-NOT

[Arm64] Remove irregular vector not handling

6 years agoConvert perf.groovy to use run-xunit-perf.py (#15881)
Michelle McDaniel [Fri, 19 Jan 2018 22:29:45 +0000 (14:29 -0800)]
Convert perf.groovy to use run-xunit-perf.py (#15881)

* Convert perf.groovy to use run-xunit-perf.py

Also removes run-xunit-perf.cmd and run-xunit-perf.sh. This change moves us to using build-tests.sh to generate the layout (ie pull down corefx), so this change fixes #12143.

6 years agoMerge pull request #15930 from mikedn/useless-code
Carol Eidt [Fri, 19 Jan 2018 22:15:26 +0000 (14:15 -0800)]
Merge pull request #15930 from mikedn/useless-code

Remove some redundant code from TreeNodeInfoInit

6 years agoFor corefx testing, use a matching corefx repo version git hash
Bruce Forstall [Fri, 19 Jan 2018 22:15:09 +0000 (14:15 -0800)]
For corefx testing, use a matching corefx repo version git hash

If the user doesn't specify a specific corefx commit hash to use,
try to find the matching commit hash in the coreclr repro. If the
matching hash can't be found, use 'HEAD'.

We find the matching corefx commit hash by first parsing file
'dependencies.props' at the root of the coreclr repro, looking for this:
   <MicrosoftPrivateCoreFxNETCoreAppPackageVersion>4.5.0-preview1-26112-01</MicrosoftPrivateCoreFxNETCoreAppPackageVersion>
This determines the corefx package version that matches. Next, we look for the version.txt
file in the package cache, e.g.,
   <coreclr_root>\packages\microsoft.private.corefx.netcoreapp\4.5.0-preview1-26112-01\version.txt
The contents of this file is exactly the git commit hash
we need to use, e.g.:
   197a0699b08087ea85581679afdd9fd7b5c465c3
The version.txt file is created when the corefx package is restored,
which happens when doing one of:
   Windows: tests\runtests.cmd GenerateLayoutOnly
   non-Windows: build-test.sh generatelayoutonly

It would also be possible to not depend on the package already
being downloaded, but instead download the correct package here,
using the determined "MicrosoftPrivateCoreFxNETCoreAppPackageVersion"
package version, e.g.:
   https://dotnet.myget.org/F/dotnet-core/api/v2/package/Microsoft.Private.CoreFx.NETCoreApp/4.5.0-preview1-26112-01
and then extracting the ZIP archive to find the version.txt file.

This might get easier if the corefx commit hash is added directly to dependencies.props, as
discussed in https://github.com/dotnet/buildtools/issues/1141.

6 years agoStop treating all calls to instance interface methods as callvirt (#15925)
Michal Strehovský [Fri, 19 Jan 2018 21:47:47 +0000 (22:47 +0100)]
Stop treating all calls to instance interface methods as callvirt (#15925)

Fixes #15827.

6 years agoRemove Redundant Resource entry (#15928)
Tarek Mahmoud Sayed [Fri, 19 Jan 2018 21:47:02 +0000 (13:47 -0800)]
Remove Redundant Resource entry (#15928)

6 years agoMove platform-neutral part of TimeZone to shared CoreLib partition (#15926)
Jan Kotas [Fri, 19 Jan 2018 21:46:22 +0000 (13:46 -0800)]
Move platform-neutral part of TimeZone to shared CoreLib partition (#15926)

Prep work for moving the platform specific parts

6 years agoMerge pull request #15749 from fiigii/tabledrive
Carol Eidt [Fri, 19 Jan 2018 20:17:14 +0000 (12:17 -0800)]
Merge pull request #15749 from fiigii/tabledrive

Table-driven Intel hardware intrinsic

6 years agoAllow implicit conversion of null arrays to empty Memory instances
Levi Broderick [Fri, 19 Jan 2018 19:50:02 +0000 (11:50 -0800)]
Allow implicit conversion of null arrays to empty Memory instances

6 years ago[Arm64] Set Instruction set flags
Steve MacLean [Tue, 9 Jan 2018 21:01:03 +0000 (16:01 -0500)]
[Arm64] Set Instruction set flags

6 years ago[Arm64] Remove irregular vector not handling
Steve MacLean [Fri, 19 Jan 2018 17:41:47 +0000 (12:41 -0500)]
[Arm64] Remove irregular vector not handling

6 years agoDisable eventpipetrace test due to JIT stress failure (#15927)
Victor "Nate" Graf [Fri, 19 Jan 2018 19:25:38 +0000 (11:25 -0800)]
Disable eventpipetrace test due to JIT stress failure (#15927)

* Disable eventpipetrace test due to JIT stress failure

* Use double wildcard to properly include the right files

6 years ago[Arm64] Add compare vector to zero emitters
Steve MacLean [Thu, 18 Jan 2018 21:45:25 +0000 (16:45 -0500)]
[Arm64] Add compare vector to zero emitters

6 years agoRevert "Change just-in-time debugging registry keys. (#15722)" (#15921)
Mike McLaughlin [Fri, 19 Jan 2018 19:12:02 +0000 (11:12 -0800)]
Revert "Change just-in-time debugging registry keys. (#15722)" (#15921)

This reverts commit 8b2cac974db3edde38e1a555455f53592d03b68e.

6 years agoRemove some redundant code from TreeNodeInfoInit
Mike Danes [Fri, 19 Jan 2018 18:44:39 +0000 (20:44 +0200)]
Remove some redundant code from TreeNodeInfoInit

6 years ago[armel tizen] Fixed CoreRT issue #4626 unwinding support (#15913)
sergey ignatov [Fri, 19 Jan 2018 14:28:38 +0000 (17:28 +0300)]
[armel tizen] Fixed CoreRT issue #4626 unwinding support (#15913)

6 years agoMerge SSE intrinsics into the table-driven framework
Fei Peng [Fri, 19 Jan 2018 08:01:21 +0000 (00:01 -0800)]
Merge SSE intrinsics into the table-driven framework

6 years agoRemoving an incorrect assert from emitInsBinary
Tanner Gooding [Fri, 19 Jan 2018 03:55:41 +0000 (19:55 -0800)]
Removing an incorrect assert from emitInsBinary

6 years agoCache Invariant CompareInfo (#15902)
Jan Kotas [Fri, 19 Jan 2018 02:57:14 +0000 (18:57 -0800)]
Cache Invariant CompareInfo (#15902)

The Invariant CompareInfo is used in number of places. It is fetched via virtual method on CultureInfo. Caching it avoids the virtual method calls and extra indirections.

6 years agoMerge pull request #15920 from BruceForstall/AllowArmJitHaltPopup
Bruce Forstall [Fri, 19 Jan 2018 02:01:43 +0000 (18:01 -0800)]
Merge pull request #15920 from BruceForstall/AllowArmJitHaltPopup

Allow COMPlus_JitHalt to display a pop-up on ARM/ARM64

6 years agoDo not throw IndexOutOfBounds when AM/PM designator is empty (#15904)
Krzysztof Wicher [Fri, 19 Jan 2018 00:58:15 +0000 (16:58 -0800)]
Do not throw IndexOutOfBounds when AM/PM designator is empty (#15904)

* do not throw IndexOutOfBounds when AM/PM designator is empty

* store am/pm designator in local

6 years agoMirror changes from dotnet/corefx (#15909)
dotnet bot [Thu, 18 Jan 2018 23:36:01 +0000 (15:36 -0800)]
Mirror changes from dotnet/corefx (#15909)

* Consolidate System.Memory code to shared folder (dotnet/corefx#26393)

* Consolidate System.Memory code to shared folder

This change is removing the duplicate codes from System.Memory and keep only one copy under the shared folder to be easier to edit such code in one place and get reflected on the other repos.

* Address the review feedback

* Addressing more feedback

* More cleanup

* remove empty line and added a comment

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
* Add missing throw helper methods used in the code we got from corefx

* Update the exception helper

* fix the break

6 years agoEnable EventPipe and EventSource Functional Tests (#15917)
Brian Robbins [Thu, 18 Jan 2018 23:28:33 +0000 (15:28 -0800)]
Enable EventPipe and EventSource Functional Tests (#15917)

6 years agoRefactoring emitInsBinary
Tanner Gooding [Wed, 10 Jan 2018 16:25:43 +0000 (08:25 -0800)]
Refactoring emitInsBinary