platform/upstream/coreclr.git
6 years ago[Darc-Update] Update dependencies from build 20181102.21 of https://github.com/dotnet...
dotnet-maestro[bot] [Sun, 4 Nov 2018 15:49:22 +0000 (15:49 +0000)]
[Darc-Update] Update dependencies from build 20181102.21 of https://github.com/dotnet/arcade (#20783)

* Updating version files

* Updating version files

6 years agoOptimization: Reduce many array allocations in GetCustomAtttributes()'s inherited...
Nick Craver [Sun, 4 Nov 2018 07:11:47 +0000 (02:11 -0500)]
Optimization: Reduce many array allocations in GetCustomAtttributes()'s inherited path (#20779)

* Optimization: avoid 2 array allocations in inherited attribute misses

This is a follow-up to many allocations recognized in #20448.

A lot of methods ultimately call through CustomAttributes.GetCustomAttributes(). In the inherited search path (default for most searches above), the inheritance path of a class is traversed, resulting in an array allocation per crawled type, a copy to the overall List<object> and then after that - in current code - an array allocation from that list and a typed array allocation it's copied to.

However, in the common miss case as simple as:
typeof(T).GetCustomAttributes(typeof(TAttr), true);
...and many other overloads, all the same path underneath...

We can avoid the last 2 arrays in the miss case. We have the List<object> to go off of. If that's a zero-entry list, we can return an Array.Empty<TAttr>(). That's effectively what this change does.

While converting the entire attribute pipeline to generics is problematic and has issue since some object[] return abstracts aren't sealed, we can at least somewhat trivially cache an array per attribute type (only one static, ultimately from Array.Empty<T> underneath) and return that for the miss case.

There are far more wins to be had here, but they require more changes.

* Move RuntimeType empty array cache generation to Attribute.CreateAttributeArrayHelper

This exposes Attribute.CreateAttributeArrayHelper to internal and uses it directly on the RuntimeType caching for empty arrays. Though this allocated 1 additional array overall, it's simpler, faster to init, and still is an infinite win over the per-call allocations before this overall changesets.

* CustomAttributes: remove needless array copy in the inherited hit case

This removes a .ToArray() for the sake of Array.Copy() where a simple for loop suffices and removes the allocation. Reversing the "empty" result checks is also just a bit cleaner here.

This also expands the same fix to the MemberInfo path.

Note: should DRY these up too (longstanding issue) - but let's do that in a separate commit for clarity.

* GetCusomAttributes: use ListBuilder<object> for inheritance crawls

This exposes RuntimeType.ListBuilder<T> for internal usage and replaces the List<T> allocation in GetCustomAttributes() paths to reduce allocations and increase performance in the inherited crawl paths (which is the default for many optional-parameter methods in layers above).

Note: there is a subtle behavior depending on previous-null (not possible with a struct now) in AttributeUsageCheck() that I believe still behaves correctly, but could use another set of eyes and a full test suite run to confirm. object[] attributes was removed there simply because it wasn't used before - only cleaning up.

* Attribute caching: use Array.CreateInstance() directly on RuntimeType

This also reverts the CreateAttributeArrayHelper => internal change, since it's no longer needed.

* Ref passing for RuntimeType.ListBuilder<object> & CustomAttribute simplification

This fixes the struct passing duplication and tweaks how we're creating arrays a bit, centralizing the zero-element checks to cover all cases as well as simplify the per-method code to rely on the fact this is happening underneath.

6 years agoImprove error messages for byref-like type loading errors (#20789)
Jan Kotas [Sat, 3 Nov 2018 23:14:10 +0000 (16:14 -0700)]
Improve error messages for byref-like type loading errors (#20789)

Related to dotnet/corefx#33233

6 years agoMerge pull request #20780 from dotnet/dev/unix_test_workflow
Bruce Forstall [Sat, 3 Nov 2018 22:23:17 +0000 (15:23 -0700)]
Merge pull request #20780 from dotnet/dev/unix_test_workflow

PMI asm diffs changes

6 years agoAdd StringBuilder.Append(ROM<char>) (#20773)
Wraith2 [Sat, 3 Nov 2018 20:54:23 +0000 (20:54 +0000)]
Add StringBuilder.Append(ROM<char>) (#20773)

* added Append(ROM<char>)

* address feedback

* revert sln

6 years agoUpdate CoreFx, CoreSetup, IbcData, PgoData to preview.18553.3, preview-27103-01,...
dotnet-maestro-bot [Sat, 3 Nov 2018 20:49:44 +0000 (13:49 -0700)]
Update CoreFx, CoreSetup, IbcData, PgoData to preview.18553.3, preview-27103-01, master-20181103-0046, master-20181103-0042, respectively (#20785)

6 years agoCleanup and improve name formatting in reflection (#20781)
Jan Kotas [Sat, 3 Nov 2018 16:45:30 +0000 (09:45 -0700)]
Cleanup and improve name formatting in reflection (#20781)

* Delete internal Array.UnsafeCreateInstance method

* Delete binary serialization specific type name formatting

* Use ValueStringBuilder to format method names in reflection

6 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03402...
dotnet-maestro-bot [Sat, 3 Nov 2018 12:31:32 +0000 (05:31 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03402-01, preview-27102-02, preview.18552.1, preview-27102-03, master-20181102-0044, master-20181102-0041, respectively (master) (#20745)

* Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03402-01, preview-27102-02, preview.18552.1, preview-27102-03, master-20181102-0044, master-20181102-0041, respectively

* Disabled outdated test

6 years agoPerf improvements to Span and Memory (#20771)
Levi Broderick [Sat, 3 Nov 2018 02:15:43 +0000 (19:15 -0700)]
Perf improvements to Span and Memory (#20771)

* Perf improvements to Span and Memory
- Improves perf of AsSpan, AsMemory, ctor, and Slice

* PR feedback - add comments

6 years agoUse C# compiler's static data support in Encoding.Preamble (#20768)
Stephen Toub [Sat, 3 Nov 2018 02:08:35 +0000 (22:08 -0400)]
Use C# compiler's static data support in Encoding.Preamble (#20768)

* Use C# compiler's static data support in Encoding.Preamble

Also avoid Array.Empty and just use default span for an empty preamble.

* Address PR feedback

6 years agoAdd remaining IAsyncDisposable implementations to CoreLib (#20676)
Stephen Toub [Sat, 3 Nov 2018 00:51:26 +0000 (20:51 -0400)]
Add remaining IAsyncDisposable implementations to CoreLib (#20676)

* Add remaining IAsyncDisposable implementations to CoreLib

* Address PR feedback

6 years agoFix logging so that we can see the full 64 bit integer in the log file (#20741)
Andrew Au [Sat, 3 Nov 2018 00:22:36 +0000 (17:22 -0700)]
Fix logging so that we can see the full 64 bit integer in the log file (#20741)

6 years agoImprove performance of String.Equals(..., OrdinalIgnoreCase) (#20734)
Levi Broderick [Sat, 3 Nov 2018 00:15:47 +0000 (17:15 -0700)]
Improve performance of String.Equals(..., OrdinalIgnoreCase) (#20734)

- Tries to consume multiple chars in parallel when possible
- Didn't vectorize because inputs to this function are generally fairly small
- Moved static GlobalizationMode lookup out of hot path
- Removed indirection so that StringComparer now calls directly into workhorse routine

6 years agoMerge pull request #20769 from BruceForstall/FixArm
Bruce Forstall [Fri, 2 Nov 2018 21:27:02 +0000 (14:27 -0700)]
Merge pull request #20769 from BruceForstall/FixArm

Need to archive and transfer the Product directory for Linux arm/arm64

6 years agoMerge pull request #20760 from hoyosjs/arcade
Juan Hoyos [Fri, 2 Nov 2018 20:48:49 +0000 (13:48 -0700)]
Merge pull request #20760 from hoyosjs/arcade

Add base arcade scripts and versioning files

6 years agoMerge pull request #20770 from BruceForstall/EnableMoreDiffs
Bruce Forstall [Fri, 2 Nov 2018 20:47:35 +0000 (13:47 -0700)]
Merge pull request #20770 from BruceForstall/EnableMoreDiffs

Do PMI diffs on frameworks and benchmarks

6 years agoDo PMI diffs on frameworks and benchmarks
Bruce Forstall [Fri, 2 Nov 2018 20:45:59 +0000 (13:45 -0700)]
Do PMI diffs on frameworks and benchmarks

6 years agoAllows Debug.Fail to go through Trace Listeners (#20764)
Maryam Ariyan [Fri, 2 Nov 2018 20:42:11 +0000 (13:42 -0700)]
Allows Debug.Fail to go through Trace Listeners (#20764)

6 years agoNeed to archive and transfer the Product directory for Linux arm/arm64 PMI diffs
Bruce Forstall [Fri, 2 Nov 2018 20:39:53 +0000 (13:39 -0700)]
Need to archive and transfer the Product directory for Linux arm/arm64 PMI diffs

6 years agoAvoid unnecessary interlocked in ManualResetValueTaskSourceCore (#20742)
Stephen Toub [Fri, 2 Nov 2018 16:52:42 +0000 (12:52 -0400)]
Avoid unnecessary interlocked in ManualResetValueTaskSourceCore (#20742)

When a ManualResetValueTaskSourceCore is used as the implementation for a ValueTask, it's set up for the operation, and then two things happen: a callback is hooked up at some point, and the operation completes at some point.  The former generally occurs before the latter, however there is a race condition, and so both paths currently use an Interlocked.CompareExchange to coordinate.  But that means that we always end up with two CompareExchange operations.  In the common path, there's no contention between these, and so we can avoid one of the CompareExchanges by first doing a normal read of the target field (we were already doing that read in one of the two cases, but we weren't taking advantage of it).

6 years agoFix the test. (#20701)
Sergey Andreenko [Fri, 2 Nov 2018 00:43:17 +0000 (17:43 -0700)]
Fix the test. (#20701)

As https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.gchandle.free?view=netframework-4.7.2 says "The caller must ensure that for a given handle, Free is called only once.".

So delete the second call to `Free()`.

I believe it changes the desired behaviour for this test but it was added before 2010 (via source depo) and there are no comments about the regression that it was able to repro, so it is not worth to investigate that.

6 years agoRemove redundant zero-initializations for long-lifetime structs. (#20753)
Eugene Rozenfeld [Fri, 2 Nov 2018 00:19:34 +0000 (17:19 -0700)]
Remove redundant zero-initializations for long-lifetime structs. (#20753)

When compInitMem is true long-lifetime structs (i.e., the ones with lvIsTemp set to false)
are zero-initialized in the prolog: https://github.com/dotnet/coreclr/blob/c8a63947382b0db428db602238199ca81badbe8e/src/jit/codegencommon.cpp#L4765

Therefore, these structs don't need an explicit zero-initialization in blocks that are not in a loop.

6 years agoAdd base arcade scripts and versioning files
Juan Sebastian Hoyos Ayala [Thu, 1 Nov 2018 20:59:59 +0000 (13:59 -0700)]
Add base arcade scripts and versioning files

6 years agoFix freebsd symbol upload failure. (#20759)
Mike McLaughlin [Thu, 1 Nov 2018 22:08:17 +0000 (15:08 -0700)]
Fix freebsd symbol upload failure. (#20759)

6 years agoone more place to add case for freebsd (#20756)
Tomas Weinfurt [Thu, 1 Nov 2018 21:39:42 +0000 (14:39 -0700)]
one more place to add case for freebsd (#20756)

6 years agoDisplay offset in TimeZoneInfo.DisplayName (#20728)
Egor Bogatov [Thu, 1 Nov 2018 21:13:10 +0000 (00:13 +0300)]
Display offset in TimeZoneInfo.DisplayName (#20728)

* Display offset in TimeZoneInfo.DisplayInfo

* Display offset in TimeZoneInfo.DisplayInfo

* prefer +00.00

* Update TimeZoneInfo.Unix.cs

6 years agoMerge pull request #20755 from dotnet/dev/unix_test_workflow
Bruce Forstall [Thu, 1 Nov 2018 21:07:15 +0000 (14:07 -0700)]
Merge pull request #20755 from dotnet/dev/unix_test_workflow

Enable triggers for Linux x64 PMI asm diffs

6 years agoMerge pull request #20752 from BruceForstall/EnableLinuxX64PmiDiffs
Bruce Forstall [Thu, 1 Nov 2018 20:03:43 +0000 (13:03 -0700)]
Merge pull request #20752 from BruceForstall/EnableLinuxX64PmiDiffs

Fix PMI job triggers for x64 Linux

6 years agoMerge pull request #20750 from BruceForstall/ReduceExpectedTestCount
Bruce Forstall [Thu, 1 Nov 2018 19:49:42 +0000 (12:49 -0700)]
Merge pull request #20750 from BruceForstall/ReduceExpectedTestCount

Fix expected Pri-1 test count

6 years agoDisable outdated CoreFX tests (#20749)
Jan Kotas [Thu, 1 Nov 2018 19:11:20 +0000 (12:11 -0700)]
Disable outdated CoreFX tests (#20749)

6 years agoFix PMI job triggers for x64 Linux
Bruce Forstall [Thu, 1 Nov 2018 18:44:51 +0000 (11:44 -0700)]
Fix PMI job triggers for x64 Linux

Also, convert asm from ZIP to tar on non-Windows.

6 years agoMerge pull request #20720 from dotnet/mmitche-patch-1
Matt Mitchell [Thu, 1 Nov 2018 18:01:57 +0000 (11:01 -0700)]
Merge pull request #20720 from dotnet/mmitche-patch-1

preview1 -> preview

6 years agoFix expected Pri-1 test count
Bruce Forstall [Thu, 1 Nov 2018 17:56:53 +0000 (10:56 -0700)]
Fix expected Pri-1 test count

https://github.com/dotnet/coreclr/pull/20693 reduced the number of
Pri-1 tests significantly, which caused this error to appear on
some Pri-1 builds, e.g., Ubuntu x64 Checked builds.

6 years agoFix JIT flags for ARM64 altjit (#20711)
Bruce Forstall [Thu, 1 Nov 2018 17:46:41 +0000 (10:46 -0700)]
Fix JIT flags for ARM64 altjit (#20711)

The ARM64 altjit was interpreting some JIT flags from the (mismatched)
x64 runtime incorrectly: they actually specify x64 architecture
capabilities, not ARM64 capabilities. And some of these capabilities
are not fully implemented/tested, so were leading to crashes doing
altjit asm diffs.

6 years agoWorkaround FreeBSD symbol publishing problem. (#20733)
Mike McLaughlin [Thu, 1 Nov 2018 17:14:39 +0000 (10:14 -0700)]
Workaround FreeBSD symbol publishing problem. (#20733)

Issue #https://github.com/dotnet/coreclr/issues/20722

6 years agoUpdate PMI asm diffs in the CI (#20743)
Bruce Forstall [Thu, 1 Nov 2018 16:59:04 +0000 (09:59 -0700)]
Update PMI asm diffs in the CI (#20743)

* Respond to PMI asm diffs code review feedback

Add some try/finally code to improve robustness.
Remove direct invocation of run.cmd.

Also, simplify the generated asm directory hierarchy.

* Improve PMI script error code

Only return non-zero if there is a fatal error. For non-fatal error,
such as the existence of asm diffs, return zero. This will allow
subsequent "build" steps in netci.groovy to run, namely, the
archiving of the asm directory.

Later, determine a better way figure out how to deal with the existence
of asm diffs.

* Update dotnet SDK download links

6 years agocorert compile fixes, corert class Debug should be partial and s_WriteCore need to...
Maryam Ariyan [Thu, 1 Nov 2018 03:18:02 +0000 (20:18 -0700)]
corert compile fixes, corert class Debug should be partial and s_WriteCore need to be assigned

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoMake BitScanForward/BitScanForward64 PAL wrappers branchless. (#20412)
Jack Pappas [Thu, 1 Nov 2018 05:50:23 +0000 (01:50 -0400)]
Make BitScanForward/BitScanForward64 PAL wrappers branchless. (#20412)

The BitScanForward/BitScanForward64 wrapper functions from the PAL and
gcenv have been modified so they're faster (and branchless), while also
adhering more closely to the behavior of the MSVC intrinsics.

Use _BitScanForward64 when targeting 64-bit Windows.

The _WIN32 macro is always defined by MSVC, even when targeting 64-bit
versions of Windows. Use the _WIN64 macro instead to check whether the
build is targeting 64-bit Windows, and if so, use the _BitScanForward64
intrinsic for the BitScanForward64 wrapper instead of the 32-bit-based
fallback.

6 years agoUpdate BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03330...
dotnet-maestro-bot [Thu, 1 Nov 2018 03:03:51 +0000 (20:03 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03330-01, preview1-27031-03, preview1.18530.5, preview1-27031-02, master-20181031-1450, master-20181031-1447, respectively (#20665)

6 years agoClean up string literal implicit const casting and some two-phase lookup nits on...
Jeremy Koritzinsky [Thu, 1 Nov 2018 00:56:38 +0000 (17:56 -0700)]
Clean up string literal implicit const casting and some two-phase lookup nits on Windows (#20730)

* Remove implicit c-string const casting and clean up some C++ standards conformance bugs.

* Fix const string conversion in FCSigCheck.

6 years agoDetect integer overflow in String.Replace
Jan Kotas [Wed, 31 Oct 2018 20:43:20 +0000 (13:43 -0700)]
Detect integer overflow in String.Replace

Fixes #20719

6 years agoFix corrupted StringBuilder state after out of memory exception
Jan Kotas [Wed, 31 Oct 2018 18:19:32 +0000 (11:19 -0700)]
Fix corrupted StringBuilder state after out of memory exception

Fixes #20718

6 years agoMake the check for a struct fitting in a register check for either managed or native...
Jeremy Koritzinsky [Tue, 30 Oct 2018 23:30:16 +0000 (16:30 -0700)]
Make the check for a struct fitting in a register check for either managed or native depending on the situation (i.e. managed call, reflection, P/Invoke) instead of only for managed. Fixes #20702.

Clean up duplicate #ifdefs.

Move #ifdef into method impl instead of outside the implementations.

Move IsRegPassedStruct out of UNIX_AMD64_ABI #ifdef.

Move check for enregistered struct out of UNIX_AMD64_ABI #ifdef

Add dummy implementation of IsRegPassedStruct and IsNativeStructPassedInRegisters when UNIX_AMD64_ABI isn't defined.

6 years agoAdd PInvoke/Structures tests
Jiang Zeng (Pactera Technologies Inc) [Wed, 8 Aug 2018 09:19:42 +0000 (02:19 -0700)]
Add PInvoke/Structures tests

Fix compile warnings

Fix compile warnings

Fix compile warnings

Remove duplicate tests. Move ReversePinvoke tests under StructMarshalling.

Clean up some compile errors.

More string cleanup.

More string fixes

Clean up consts and typedefs.

Fix typo.

Change TP_slen return type to match xplatform.h

Fix printf specifiers.

Don't define wcslen in xplatform if it's been macro redefined (to platformdefines.h's TP_slen)

Fix build breaks.

Remove extension from DllImport so it will correctly resolve xplat.

Fix printf specifiers again...

Fix Windows x86 calling convention mismatch.

Fix HRESULT size off-Windows

6 years agoAdd PInvoke/NativeCallManagedComVisible tests (#19328)
Zeng Jiang [Thu, 1 Nov 2018 00:02:52 +0000 (08:02 +0800)]
Add PInvoke/NativeCallManagedComVisible tests (#19328)

* Add PInvoke/NativeCallManagedComVisible tests

* Update to current infrastructure and disable off-Windows

* Fix incorrect S_OK value and made the native side actually return an HRESULT in hr.

6 years agoMerge pull request #20683 from CarolEidt/FixDD710234
Carol Eidt [Wed, 31 Oct 2018 23:51:17 +0000 (16:51 -0700)]
Merge pull request #20683 from CarolEidt/FixDD710234

Arm32: Handle live-out double reg in resolution

6 years agoMerge pull request #20723 from BruceForstall/ImproveNOWAYOutput
Bruce Forstall [Wed, 31 Oct 2018 22:06:24 +0000 (15:06 -0700)]
Merge pull request #20723 from BruceForstall/ImproveNOWAYOutput

Improve the assert output for NO_WAY and BADCODE

6 years agomore changes to fix packaging on FreeBSD. runtime.json now contains freebsd-x64 and...
Tomas Weinfurt [Wed, 31 Oct 2018 21:58:06 +0000 (14:58 -0700)]
more changes to fix packaging on FreeBSD. runtime.json now contains freebsd-x64 and portable build/packaging works (#20725)

6 years agoMaking Debug and Trace behavior consistent with eachother and Desktop (#20581)
Maryam Ariyan [Wed, 31 Oct 2018 21:32:19 +0000 (14:32 -0700)]
Making Debug and Trace behavior consistent with eachother and Desktop (#20581)

* Making Debug and Trace behavior more consistent with Desktop and eachother
* Syncs IndentLevel and IndentSize for Debug and Trace
* Completing DebugProvider APIs. Fixing Indentation bugs
* Make WriteCore public
* Make s_provider and s_indentSize volatile
* Applied PR feedbacks

6 years agoRemove superfluous 'const' qualifier from trivial return types (#20652)
Michał Janiszewski [Wed, 31 Oct 2018 20:30:48 +0000 (21:30 +0100)]
Remove superfluous 'const' qualifier from trivial return types (#20652)

The 'const' used in this context has no meaning

6 years agoRe-Enable Windows tests with JitOptSensitive flag (#20697)
Jarret Shook [Wed, 31 Oct 2018 19:52:19 +0000 (12:52 -0700)]
Re-Enable Windows tests with JitOptSensitive flag (#20697)

* Re-Enable windows with JitOptSensitive flag

The check in batch targets would keep us from running jitOptimiztionSensitiveTests
with COMPlus_TieredCompilation=0.

* Address pr feedback

6 years agoFix DevDiv issue with JitStressRegs=0x3 on arm32. (#20485)
Sergey Andreenko [Wed, 31 Oct 2018 19:13:25 +0000 (12:13 -0700)]
Fix DevDiv issue with JitStressRegs=0x3 on arm32. (#20485)

* Fix the issue.

* Fix the comment.

* update the comment

6 years agoImprove the assert output for NO_WAY and BADCODE
Bruce Forstall [Wed, 31 Oct 2018 17:59:44 +0000 (10:59 -0700)]
Improve the assert output for NO_WAY and BADCODE

Include the file and line number information that we already have.

6 years agoFix Windows x86 EH for exception from UMThunkPrestub (#20704)
Jan Vorlicek [Wed, 31 Oct 2018 17:02:36 +0000 (18:02 +0100)]
Fix Windows x86 EH for exception from UMThunkPrestub (#20704)

The exception handling was poping an explicit frame in
UMThunkPrestubHandler down the call chain from CallRtlUnwindSafe, but it
was not updating the tct.pBottomFrame after returning from that function
back to CPFH_RealFirstPassHandler. And the call to COMPlusAfterUnwind
then called UnwindFrames starting at the old frame that was already
removed from the chain.

6 years agoWork around XUnit FileLoadException issues (#20644)
Egor Chesakov [Wed, 31 Oct 2018 16:28:09 +0000 (09:28 -0700)]
Work around XUnit FileLoadException issues (#20644)

In order to mitigate System.IO.FileLoadException we built our own xunit.console.dll with ConcurrentDictionary used for DependencyContextAssemblyCache.managedAssemblyCache instead of Dictionary and use this instead of the one pulled from NuGet.

6 years agoArm32: Handle live-out double reg in resolution
Carol Eidt [Mon, 29 Oct 2018 23:05:25 +0000 (16:05 -0700)]
Arm32: Handle live-out double reg in resolution

When handling critical edges, live-in and live-out reg masks must contain both halves of double regs.

6 years agoMerge pull request #20638 from fiigii/movetest
Carol Eidt [Wed, 31 Oct 2018 15:42:48 +0000 (08:42 -0700)]
Merge pull request #20638 from fiigii/movetest

Move SSE/SSE2/AVX Load* intrinsic tests to the template framework

6 years agopreview1 -> preview
Matt Mitchell [Wed, 31 Oct 2018 15:17:09 +0000 (08:17 -0700)]
preview1 -> preview

.NET Core 3.0 previews should not have numeric suffixes.

6 years agoMerge pull request #20710 from BruceForstall/DisableNonPRJobsMaster
Bruce Forstall [Wed, 31 Oct 2018 06:57:20 +0000 (23:57 -0700)]
Merge pull request #20710 from BruceForstall/DisableNonPRJobsMaster

Disable non-PR triggers in dev/unix_test_workflow branch

6 years agoDisable non-PR triggers in dev/unix_test_workflow branch
Bruce Forstall [Wed, 31 Oct 2018 06:37:20 +0000 (23:37 -0700)]
Disable non-PR triggers in dev/unix_test_workflow branch

6 years agoDelete redundant framework API tests (#20693)
Jan Kotas [Wed, 31 Oct 2018 02:47:26 +0000 (19:47 -0700)]
Delete redundant framework API tests (#20693)

This is the last batch of deleting tests that are obviously redundant. The remaining framework API tests in CoreCLR can be dealt with as needed if it ever becomes a problem.

Fixes #12782

6 years agoAdd support for large number of argumets in CCW call on Arm64 (#20670)
David Wrighton [Wed, 31 Oct 2018 01:05:39 +0000 (18:05 -0700)]
Add support for large number of argumets in CCW call on Arm64 (#20670)

* Fix CCW with large numbers of arguments on arm64
- Correctly align the stack in COMToCLRDispatchHelper
- Add tests for naturally 16 byte aligned stack growth, and non-aligned growth
* New many arguments COM test
* Add support for the IL stub ETW diagnostic event

6 years agoMerge pull request #20703 from MattGal/bsd-pipebuild-tweaks
Matt Galbraith [Tue, 30 Oct 2018 23:06:29 +0000 (16:06 -0700)]
Merge pull request #20703 from MattGal/bsd-pipebuild-tweaks

Remove DotNetBootstrapCliTarPath from variables

6 years agoFix printing in `CodeGen::siEndScope`. (#20698)
Sergey Andreenko [Tue, 30 Oct 2018 23:04:24 +0000 (16:04 -0700)]
Fix printing in `CodeGen::siEndScope`. (#20698)

6 years agoFixed small typo in a comment (#20695)
lastsannin [Tue, 30 Oct 2018 23:03:00 +0000 (00:03 +0100)]
Fixed small typo in a comment (#20695)

fixed a simple typo, "co-" should contain a dash in this case.

6 years agofix detection for LLDB.h and make sos mandatory on FreeBSD (#20551)
Tomas Weinfurt [Tue, 30 Oct 2018 23:01:16 +0000 (16:01 -0700)]
fix detection for LLDB.h and make sos mandatory on FreeBSD (#20551)

* fix detection for LLDB.h and make sos mandatory on FreeBSD

* feedback from review

* feedback from review

* add llvm40 as well for completness

* fix OR condition

6 years agoRemove DotNetBootstrapCliTarPath from variables as it was getting forcibly upper...
Matt Galbraith [Tue, 30 Oct 2018 22:58:38 +0000 (15:58 -0700)]
Remove DotNetBootstrapCliTarPath from variables as it was getting forcibly upper-cased, making it useless. Instead, use the workaround of setting it explicitly before sync.sh.

6 years agoMerge pull request #20699 from MattGal/bsd-pipebuild-tweaks
Matt Galbraith [Tue, 30 Oct 2018 22:03:33 +0000 (15:03 -0700)]
Merge pull request #20699 from MattGal/bsd-pipebuild-tweaks

Add FreeBSD to official build pipelines

6 years agoadd -portablebuild=false to build.sh (affects naming)
Matt Galbraith [Tue, 30 Oct 2018 20:57:08 +0000 (13:57 -0700)]
add -portablebuild=false to build.sh (affects naming)

6 years agoFix `JitStressRegs=0x1` issue with `RefTypeUpperVectorSaveDef`. (#20623)
Sergey Andreenko [Tue, 30 Oct 2018 20:38:50 +0000 (13:38 -0700)]
Fix `JitStressRegs=0x1` issue with `RefTypeUpperVectorSaveDef`. (#20623)

* Add a repro test.

* Fix the issue.

* Add comments

6 years agoFixing build.sh args
Matt Galbraith [Tue, 30 Oct 2018 20:21:08 +0000 (13:21 -0700)]
Fixing build.sh args

6 years agoAdd freebsd flavor to CoreCLR pipebuild
Matt Galbraith [Tue, 30 Oct 2018 17:47:13 +0000 (10:47 -0700)]
Add freebsd flavor to CoreCLR pipebuild

6 years agoJIT: Fix call flag propagation for GenTreeArrElem (#20660)
Andy Ayers [Tue, 30 Oct 2018 18:24:37 +0000 (11:24 -0700)]
JIT: Fix call flag propagation for GenTreeArrElem (#20660)

Closes #20651.

Also fix up some "near miss" cases for GenTreeField and GenTreeBoundsCheck,
where we get lucky and the importer currently splits trees with temps so the
currently ignored child nodes have no interesting side effects.

Revise GenTreeField a bit to pull more of the initialization work into the
constructor. Add a missing R2R field propagation for field nodes in GtClone
(evidently also never hit in practice).

6 years agoMerge pull request #20641 from briansull/vso_707552
Brian Sullivan [Tue, 30 Oct 2018 17:03:16 +0000 (10:03 -0700)]
Merge pull request #20641 from briansull/vso_707552

Fix VSO 707552

6 years agoAdd the execution policy when running powershell in size on disk benchmarks (#20680)
Michelle McDaniel [Tue, 30 Oct 2018 16:51:40 +0000 (09:51 -0700)]
Add the execution policy when running powershell in size on disk benchmarks (#20680)

Since moving to the helix queue, we have been failing because the execution policy on the vms is not set to unrestricted. To get around this, we need to explicitly pass -ExecutionPolicy Bypass.

6 years agoDisable failing on Windows/ARM Interop/COM tests (#20675)
Egor Chesakov [Tue, 30 Oct 2018 15:30:15 +0000 (08:30 -0700)]
Disable failing on Windows/ARM Interop/COM tests (#20675)

* Interop/COM/NETClients/Primitives/NETClientPrimitives
* Interop/COM/NativeClients/Primitives
* Interop/COM/NETClients/IDispatch/NETClientIDispatch
* Interop/COM/NETClients/Aggregation/NETClientAggregation

6 years agoCorrected Typos and grammar (#20658)
Shreyas Jejurkar [Tue, 30 Oct 2018 15:05:58 +0000 (08:05 -0700)]
Corrected Typos and grammar (#20658)

* Corrected some typos and grammar as per English language guidelines.

* Reverted some of the changes

* Reverted back some changes Phase 2

6 years agoRemove unnecessary Pack directive to fix build break (#20681)
dotnet-maestro-bot [Tue, 30 Oct 2018 12:18:38 +0000 (05:18 -0700)]
Remove unnecessary Pack directive to fix build break (#20681)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoMerge pull request #20679 from BruceForstall/DumpTempReason
Bruce Forstall [Tue, 30 Oct 2018 06:57:11 +0000 (23:57 -0700)]
Merge pull request #20679 from BruceForstall/DumpTempReason

Dump the "reason" for a compiler temp

6 years agoDump the "reason" for a compiler temp
Bruce Forstall [Mon, 29 Oct 2018 21:49:26 +0000 (14:49 -0700)]
Dump the "reason" for a compiler temp

Compiler temps are created with a "reason" that is dumped in JitDump.
Save the reason and display it in the local variable table dump.
This is useful when trying to find a particular temp and see what
code has been generated using it.

6 years agoJIT: streamline temp usage for returns (#20640)
Andy Ayers [Mon, 29 Oct 2018 23:11:53 +0000 (16:11 -0700)]
JIT: streamline temp usage for returns (#20640)

If the jit decides it needs a return spill temp, and the return value
has already been spilled to a single-def temp, re-use the existing
for the return temp rather than creating a new one.

In conjunction with #20553 this allows late devirtualization for calls where
the object in the virtual call is the result of an inline that provides
a better type, and the objected formerly reached the call via one or more
intermediate temps.

Closes #15873.

6 years agoFix VSO 707552
Brian Sullivan [Fri, 26 Oct 2018 22:07:21 +0000 (15:07 -0700)]
Fix VSO 707552
[RyuJIT][ilgen] Assertion failed 'exp->gtOper != GT_COUNT'
Use nullptr instead of NULL

6 years agoRemove outdated GC perf test framework (#20673)
Sung Yoon Whang [Mon, 29 Oct 2018 22:04:56 +0000 (15:04 -0700)]
Remove outdated GC perf test framework (#20673)

6 years agoSome cleanup of the System.Number class (#20619)
Tanner Gooding [Mon, 29 Oct 2018 18:15:35 +0000 (11:15 -0700)]
Some cleanup of the System.Number class (#20619)

* Formatting Number.Formatting.cs and Number.Parsing.cs

* Removing some duplicated parsing code by having the Parse method call TryParse

* Moving two constants from NumberBuffer to Dragon4

* Rename FloatPrecision to SinglePrecision

* Updating the casing of the NumberBuffer fields

* Updating NumberBuffer to allow taking a custom-sized digit buffer.

* Updating the various NumberBufferLength constants to be the exact needed lengths

* Fixing DoubleNumberBufferLength and SingleNumberBufferLength to account for the rounding digit.

* Fixing TryParseNumber to use the correct maxDigCount

* Ensure the TryParseSingle out result is assigned on success

6 years agoFix typo in linux-performance-tracing (#20667)
Jesús Corrius [Mon, 29 Oct 2018 16:45:43 +0000 (17:45 +0100)]
Fix typo in linux-performance-tracing (#20667)

precomppiled -> precompiled

6 years agoUnhelpful error when Activator.CreateInstance can't find default constructor (#20491)
Andrew Au [Mon, 29 Oct 2018 16:09:48 +0000 (09:09 -0700)]
Unhelpful error when Activator.CreateInstance can't find default constructor  (#20491)

6 years agoUpdate CoreClr, CoreSetup, IbcData, PgoData to preview1-27028-04, preview1-27029...
dotnet-maestro-bot [Mon, 29 Oct 2018 12:55:12 +0000 (05:55 -0700)]
Update CoreClr, CoreSetup, IbcData, PgoData to preview1-27028-04, preview1-27029-01, master-20181029-0053, master-20181029-0054, respectively (#20662)

6 years agoUpdate CoreClr, CoreSetup, IbcData, PgoData to preview1-27028-03, preview1-27028...
dotnet-maestro-bot [Sun, 28 Oct 2018 15:46:44 +0000 (08:46 -0700)]
Update CoreClr, CoreSetup, IbcData, PgoData to preview1-27028-03, preview1-27028-01, master-20181028-0058, master-20181028-0055, respectively (#20653)

6 years agoDelete redundant CoreMangLib decimal tests (#20649)
Jan Kotas [Sat, 27 Oct 2018 17:25:09 +0000 (10:25 -0700)]
Delete redundant CoreMangLib decimal tests (#20649)

Fixes failing test obsoleted by #20638 and contributes to #12782

Delete redundant CoreMangLib decimal tests  \85

6 years agoUpdate BuildTools, CoreClr, CoreSetup, IbcData, PgoData to preview1-03326-01, preview...
dotnet-maestro-bot [Sat, 27 Oct 2018 10:33:24 +0000 (03:33 -0700)]
Update BuildTools, CoreClr, CoreSetup, IbcData, PgoData to preview1-03326-01, preview1-27027-01, preview1-27027-01, master-20181027-0055, master-20181027-0036, respectively (#20559)

6 years agoAdd IAsyncDisposable implementation to Timer (#20646)
Stephen Toub [Sat, 27 Oct 2018 05:19:45 +0000 (22:19 -0700)]
Add IAsyncDisposable implementation to Timer (#20646)

6 years agoImplement IAsyncDisposable on CancellationTokenRegistration (#20645)
Stephen Toub [Sat, 27 Oct 2018 04:19:05 +0000 (21:19 -0700)]
Implement IAsyncDisposable on CancellationTokenRegistration (#20645)

6 years agoRemove dead RESOURCE_SATELLITE_CONFIG (#20639)
Steve MacLean [Sat, 27 Oct 2018 02:57:42 +0000 (22:57 -0400)]
Remove dead RESOURCE_SATELLITE_CONFIG (#20639)

6 years agoMerge pull request #20621 from AaronRobinsonMSFT/block_tests_WindowsNano
Aaron Robinson [Fri, 26 Oct 2018 22:28:51 +0000 (15:28 -0700)]
Merge pull request #20621 from AaronRobinsonMSFT/block_tests_WindowsNano

Add a run time check for Windows.Nano to all COM related tests.

6 years agoAllow ArrayPool.Shared devirtualization (redux) (#20637)
Ben Adams [Fri, 26 Oct 2018 21:12:13 +0000 (22:12 +0100)]
Allow ArrayPool.Shared devirtualization (redux) (#20637)

6 years agoMove SSE/SSE2/AVX Load* intrinsic tests to the template framework
Fei Peng [Fri, 26 Oct 2018 19:15:48 +0000 (12:15 -0700)]
Move SSE/SSE2/AVX Load* intrinsic tests to the template framework

6 years agoNew Decimal.Remainder implementation (#20305)
Pent Ploompuu [Fri, 26 Oct 2018 19:04:18 +0000 (22:04 +0300)]
New Decimal.Remainder implementation (#20305)

* New Decimal.Remainder implementation

* Update CoreFX.issues.json

6 years agoImplement interface dispatch to COM for ARM64 (#20618)
David Wrighton [Fri, 26 Oct 2018 18:30:55 +0000 (11:30 -0700)]
Implement interface dispatch to COM for ARM64 (#20618)

* Implement interface dispatch to COM for ARM64
- Implement missing stub (GenericComPlusCallStub)

* Re-enable IDispatch test for Arm64 (Fix issue #20580 )

6 years agoJIT: refactor how we do late devirtualization (#20553)
Andy Ayers [Fri, 26 Oct 2018 17:55:06 +0000 (10:55 -0700)]
JIT: refactor how we do late devirtualization (#20553)

Change late devirtualization to run in a postorder callback during
the tree search to update GT_RET_EXPRs, instead of shoehorning it into
the preorder callback.

This allows the jit to reconsider all calls for late devirtualization,
not just calls that are parents of particular GT_RET_EXPRs. The jit will
take advantage of this in subsequent work that does more aggressive
bottup-up type sharpening.

Reconsidering all calls for late devirt instead of just a select subset
incurs around a 0.5% throughput impact.

To mitigate this, short-circult the tree walk when we no longer see a
GTF_CALL flag. This prevents us from walking through CALL and RET_EXPR
free subtrees.

To make this work we have to make sure all node types propagate flags from
their children. This required some updates to a few node constructors.

There is also an odd quirk in the preorder callback where it may overwrite
the parent node (from GT_ASG to GT_BLK or GT_NOP). If the overwrite creates
a GT_NOP, the postorder callback may see a null tree. Tolerate this for now
by checking for that case in the postorder callback.

Also take advantage of `gtRetExprVal` to tunnel through GT_RET_EXPR chains
to the final tree to avoid needing multiple overwrites when propagating
the return expression back into the IR.

With these mitigations this change has minimal throughput impact.

6 years agofixes to build properly on FreeBSD (#20588)
Tomas Weinfurt [Fri, 26 Oct 2018 16:37:37 +0000 (09:37 -0700)]
fixes to build properly on FreeBSD (#20588)

* fixes to build properly on FreeBSD

* remove ulimit from freebsd branch