platform/upstream/coreclr.git
6 years agoMerge pull request #14573 from CarolEidt/Fix13751
Carol Eidt [Thu, 19 Oct 2017 03:49:56 +0000 (20:49 -0700)]
Merge pull request #14573 from CarolEidt/Fix13751

Fix multiple issues in LSRA for TYP_DOUBLE:

6 years agoJIT: optimize stelem (ref) like we optimize stelem.ref (#14580)
Andy Ayers [Thu, 19 Oct 2017 02:42:52 +0000 (19:42 -0700)]
JIT: optimize stelem (ref) like we optimize stelem.ref (#14580)

In particular, avoid the array store check when storing null or values from
the same array.

Addresses first part of #14574.

6 years agoIfdef out legacy uses of GT_ASG_op (#14384)
mikedn [Thu, 19 Oct 2017 01:34:55 +0000 (04:34 +0300)]
Ifdef out legacy uses of GT_ASG_op (#14384)

* Ifdef out legacy uses of GT_ASG_op

GT_ASG_op nodes are only generated when the legacy backend is used.

* Address feedback

* Cleanup gtOverflow/gtOverflowEx

6 years agoFix BinaryWriter/Reader span parameter names (#14577)
Stephen Toub [Thu, 19 Oct 2017 00:55:09 +0000 (20:55 -0400)]
Fix BinaryWriter/Reader span parameter names (#14577)

Per API review, they should match the corresponding overloads' existing parameter names.

6 years agoAllow both CORINFO_FLG_INTRINSIC and CORINFO_FLG_JIT_INTRINSIC to be set on potential...
Jan Kotas [Thu, 19 Oct 2017 00:54:18 +0000 (17:54 -0700)]
Allow both CORINFO_FLG_INTRINSIC and CORINFO_FLG_JIT_INTRINSIC to be set on potential intrinsics (#14566)

* Allow both CORINFO_FLG_INTRINSIC and CORINFO_FLG_JIT_INTRINSIC to be set on potential intrinsics

* Call getIntrinsicID for CORINFO_FLG_INTRINSIC only

6 years agoMerge pull request #14572 from sdmaclea/PR-ARM64-SIMD-INSTRS
Bruce Forstall [Wed, 18 Oct 2017 23:01:27 +0000 (16:01 -0700)]
Merge pull request #14572 from sdmaclea/PR-ARM64-SIMD-INSTRS

[Arm64] Add instructions needed by SIMD

6 years agoFix multiple issues in LSRA for TYP_DOUBLE:
Carol Eidt [Wed, 18 Oct 2017 21:31:05 +0000 (14:31 -0700)]
Fix multiple issues in LSRA for TYP_DOUBLE:
- updateAssignedInterval() needs to handle the case where the previously assigned interval was TYP_DOUBLE.
- Similarly, at block boundaries, if we are setting the register for a double interval, and the assigned interval is either null or is TYP_FLOAT ,we also need to unassign the other half of the register.
- LSRA only considers the valid double registers when allocating. When setting the candidates for the source of a return, it should only set the bit for the valid double register.

Fix #13751

6 years ago[Arm64] Add instructions needed by SIMD
Steve MacLean [Wed, 18 Oct 2017 18:25:50 +0000 (14:25 -0400)]
[Arm64] Add instructions needed by SIMD

6 years agoMerge pull request #14569 from wtgodbe/eqNe
William Godbe [Wed, 18 Oct 2017 20:15:02 +0000 (13:15 -0700)]
Merge pull request #14569 from wtgodbe/eqNe

Replace ne with eq in publish to azure steps

6 years agoReplace ne with eq in publish to azure steps
wtgodbe [Wed, 18 Oct 2017 18:03:13 +0000 (11:03 -0700)]
Replace ne with eq in publish to azure steps

6 years agoMerge pull request #14554 from adiaaida/reenablePGOLinux
Michelle McDaniel [Wed, 18 Oct 2017 17:41:31 +0000 (10:41 -0700)]
Merge pull request #14554 from adiaaida/reenablePGOLinux

Reenable PGO on Linux Release builds

6 years agoImprove thread statics performance (#14560)
Jan Kotas [Wed, 18 Oct 2017 09:38:55 +0000 (02:38 -0700)]
Improve thread statics performance (#14560)

- Disable code to handle multiple appdomains
- Use more efficient object array accessor

6 years agoUpdate BuildTools, CoreClr, CoreFx to prerelease-02118-01, preview1-25818-02, preview...
dotnet-maestro-bot [Wed, 18 Oct 2017 05:42:06 +0000 (00:42 -0500)]
Update BuildTools, CoreClr, CoreFx to prerelease-02118-01, preview1-25818-02, preview1-25818-01, respectively (#14558)

6 years agoMerge pull request #14547 from CarolEidt/Fix14539
Carol Eidt [Wed, 18 Oct 2017 03:00:00 +0000 (20:00 -0700)]
Merge pull request #14547 from CarolEidt/Fix14539

Arm64: Use op2 type for LOCKADD

6 years agoformat spmi sources. (#14545)
Sergey Andreenko [Wed, 18 Oct 2017 00:12:24 +0000 (17:12 -0700)]
format spmi sources. (#14545)

format spmi sources.

6 years agoMerge pull request #14553 from briansull/fix-warn
Brian Sullivan [Tue, 17 Oct 2017 23:34:37 +0000 (16:34 -0700)]
Merge pull request #14553 from briansull/fix-warn

Fix for x86 desktop build break

6 years agoArm64: Use op2 type for LOCKADD
Carol Eidt [Tue, 17 Oct 2017 20:35:14 +0000 (13:35 -0700)]
Arm64: Use op2 type for LOCKADD

Fix #14539

6 years agoMerge pull request #14555 from wtgodbe/AzureBlobSymPkg
William Godbe [Tue, 17 Oct 2017 22:11:19 +0000 (15:11 -0700)]
Merge pull request #14555 from wtgodbe/AzureBlobSymPkg

Use C#-friendly path for indexing symbol packages

6 years agoUse C#-friendly path for indexing symbol packages
wtgodbe [Tue, 17 Oct 2017 22:10:21 +0000 (15:10 -0700)]
Use C#-friendly path for indexing symbol packages

6 years agoReenable PGO on Linux Release builds
Michelle McDaniel [Tue, 17 Oct 2017 22:06:34 +0000 (15:06 -0700)]
Reenable PGO on Linux Release builds

Now that all the machines have been updated to have llvm 3.9 with PGO
support, reenable PGO builds.

6 years agoFix for x86 desktop build
Brian Sullivan [Tue, 17 Oct 2017 22:03:22 +0000 (15:03 -0700)]
Fix for x86 desktop build
Fix warning C4389: '==' : signed/unsigned mismatch

6 years agoMerge pull request #14541 from stephentoub/taskbeginwait
Stephen Toub [Tue, 17 Oct 2017 21:37:57 +0000 (17:37 -0400)]
Merge pull request #14541 from stephentoub/taskbeginwait

Avoid TaskWaitBegin/End events in Task.Wait on already completed task

6 years agoGetEnvironmentVariable: Avoid StringBuilder marshaling overhead (#14502)
Justin Van Patten [Tue, 17 Oct 2017 21:23:24 +0000 (14:23 -0700)]
GetEnvironmentVariable: Avoid StringBuilder marshaling overhead (#14502)

* GetEnvironmentVariable: Avoid StringBuilder marshaling overhead

Try a stack allocated buffer first, then fallback to using the shared
array pool.

6 years agoCLRLifoSemaphore cleanup (#14535)
Koundinya Veluri [Tue, 17 Oct 2017 20:52:52 +0000 (13:52 -0700)]
CLRLifoSemaphore cleanup (#14535)

- Removed volatile loads. They don't actually help with anything. Should help a bit on arm, haven't tested.
  - I had added them initially out of pattern and could have left them out. There was some concern before that without a volatile load a compiler could replace local uses with a memory load and that would change the meaning of what is intended, but that doesn't apply to these kind of loops because it would be incorrect to do so, the concern may apply to loops like the following:
    ```c#
    while(true)
    {
        Counts counts = m_counts;
        if(InterlockedCompareExchange(&m_counts, counts + 1, counts) == counts)
            break;
    }
    ```
    Where if the 3rd argument is replaced by the compiler with m_counts, it may yield an incorrect result. It's an invalid optimization but anyway that can't be done in the type of loops used in this code because the initial value used for subsequent loop iterations is the result of the compare-exchange operation and not the memory location.
- No need to decrement the count of waiters woken upon timeout. I had initially copied that part of the code from SemaphoreSlim, which needs it because it uses a Monitor that doesn't provide the same guarantees as the wait objects used here. It's not needed here.
- No change to perf on x64, I plan on testing arm as part of issue https://github.com/dotnet/coreclr/issues/14067 once I have some time and get a machine.

6 years agoAvoid TaskWaitBegin/End events in Task.Wait on already completed task
Stephen Toub [Tue, 17 Oct 2017 20:01:57 +0000 (16:01 -0400)]
Avoid TaskWaitBegin/End events in Task.Wait on already completed task

We are unnecessarily firing the TaskWaitBegin/End EventSource event when the task has already completed if it's faulted/canceled.  We should only fire it if the task hasn't completed by the time we check.

6 years agoMerge pull request #14493 from alpencolt/armel-cross-build
Bruce Forstall [Tue, 17 Oct 2017 18:28:23 +0000 (11:28 -0700)]
Merge pull request #14493 from alpencolt/armel-cross-build

[RyuJIT/armel] cross build armel on x86 host

6 years agoMerge pull request #14334 from BruceForstall/AddTestEnvToWindows
Bruce Forstall [Tue, 17 Oct 2017 18:21:15 +0000 (11:21 -0700)]
Merge pull request #14334 from BruceForstall/AddTestEnvToWindows

Fix corefx testing invocation

6 years agomove ReplaceWith to cpp
Sergey Andreenko [Tue, 17 Oct 2017 02:46:37 +0000 (19:46 -0700)]
move ReplaceWith to cpp

to make DEBUG_DESTROY_NODE visible.

6 years agoRefactor CopyFrom
Sergey Andreenko [Thu, 12 Oct 2017 01:28:35 +0000 (18:28 -0700)]
Refactor CopyFrom

6 years agoadd check that each tree in the method has its own unique gtTreeId.
Sergey Andreenko [Thu, 12 Oct 2017 00:55:25 +0000 (17:55 -0700)]
add check that each tree in the method has its own unique gtTreeId.

6 years agoextract fgDebugCheckStmtsList
Sergey Andreenko [Wed, 11 Oct 2017 21:50:23 +0000 (14:50 -0700)]
extract fgDebugCheckStmtsList

6 years agoMerge pull request #14537 from dotnet-maestro-bot/master-UpdateDependencies
Stephen Toub [Tue, 17 Oct 2017 16:48:45 +0000 (12:48 -0400)]
Merge pull request #14537 from dotnet-maestro-bot/master-UpdateDependencies

Update CoreFx to preview1-25817-02 (master)

6 years agoMerge pull request #14311 from ViktorHofer/SerializationExceptions
Viktor Hofer [Tue, 17 Oct 2017 15:25:39 +0000 (17:25 +0200)]
Merge pull request #14311 from ViktorHofer/SerializationExceptions

Make coreclr exceptions serializable and add typeforwards

6 years agoUpdate CoreFx to preview1-25817-02
dotnet-maestro-bot [Tue, 17 Oct 2017 14:23:43 +0000 (07:23 -0700)]
Update CoreFx to preview1-25817-02

6 years ago[RyuJIT/ARM32] Add the optimization case on CreateDictionaryLookupHelper (#13933)
Sujin Kim [Tue, 17 Oct 2017 13:33:51 +0000 (22:33 +0900)]
[RyuJIT/ARM32] Add the optimization case on CreateDictionaryLookupHelper (#13933)

* Implement optimization case for CreateDictionaryLookupHelper

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* Reenable mainv1/mainv2 tests

6 years ago[RyuJIT/armel] cross build armel on x86 host.
Alexander Soldatov [Fri, 13 Oct 2017 16:14:35 +0000 (19:14 +0300)]
[RyuJIT/armel] cross build armel on x86 host.

Compile ARM soft-fp version of libclrjit.so on x86 platform.
For running cross-jit execute as:
COMPlus_AltJit=* COMPlus_AltJitName=libprotononjit.so ./corerun ...

6 years agoprotect strlen from nullptr (#14533)
Sergey Andreenko [Tue, 17 Oct 2017 06:40:43 +0000 (23:40 -0700)]
protect strlen from nullptr (#14533)

6 years agoMerge pull request #14350 from CarolEidt/LsraInfoCleanup
Carol Eidt [Tue, 17 Oct 2017 05:07:15 +0000 (22:07 -0700)]
Merge pull request #14350 from CarolEidt/LsraInfoCleanup

Cleanup of Lowering & LsraInfo

6 years agoMerge pull request #14527 from stephentoub/timer_partition
Stephen Toub [Tue, 17 Oct 2017 02:22:35 +0000 (22:22 -0400)]
Merge pull request #14527 from stephentoub/timer_partition

Reduce Timer lock contention

6 years agoUpdate BuildTools to prerelease-02116-01 (#14530)
dotnet-maestro-bot [Tue, 17 Oct 2017 01:42:41 +0000 (20:42 -0500)]
Update BuildTools to prerelease-02116-01 (#14530)

6 years agoMerge pull request #14529 from adityamandaleeka/r2r_exception_race
Aditya Mandaleeka [Tue, 17 Oct 2017 01:36:58 +0000 (18:36 -0700)]
Merge pull request #14529 from adityamandaleeka/r2r_exception_race

Fix deadlock in ReadyToRun scenarios between EH and code heap deletion

6 years agoMerge pull request #14501 from briansull/FitsIn
Brian Sullivan [Tue, 17 Oct 2017 00:47:59 +0000 (17:47 -0700)]
Merge pull request #14501 from briansull/FitsIn

Use FitsIn8 when setting GT_INT_CNS costs

6 years agoFix optEarlyPropRewriteTree (#14480)
Sergey Andreenko [Tue, 17 Oct 2017 00:46:05 +0000 (17:46 -0700)]
Fix optEarlyPropRewriteTree (#14480)

Return ans use the right tree from optEarlyPropRewriteTree
Forbid large dst nodes.

* fix typo

6 years agoFixed stack probing for RHEL 6.9 (Linux kernel 2.6.32) (#14481)
Roman Artemev [Mon, 16 Oct 2017 23:20:45 +0000 (16:20 -0700)]
Fixed stack probing for RHEL 6.9 (Linux kernel 2.6.32) (#14481)

Fixed stack probing for RHEL 6.9 (Linux kernel 2.6.32) (#14481)

6 years agoUpdated GenTree::IsIntCnsFitsInI32() tio use FitsInI32()
Brian Sullivan [Mon, 16 Oct 2017 22:33:37 +0000 (15:33 -0700)]
Updated GenTree::IsIntCnsFitsInI32() tio use FitsInI32()

6 years agoFix deadlock caused by R2R method info lookups during code heap
Aditya Mandaleeka [Mon, 16 Oct 2017 21:58:50 +0000 (14:58 -0700)]
Fix deadlock caused by R2R method info lookups during code heap
deletion.

6 years agoFix stepping with tiered jitting
Noah Falk [Mon, 16 Oct 2017 22:18:43 +0000 (15:18 -0700)]
Fix stepping with tiered jitting

Fix #14426. Added a more flexible IL master breakpoint that can:
   a) bind to native offset 0 of each jitted code body
   b) use a MethodDescFilter so that only jitted code for one generic instance receives breakpoints

The remaining change is simply to switch step-in and trace stepping to use that new breakpoint binding behavior instead of the code version specific binding behavior that was used before. This ensures that even if the code version changes after the trace occurs we will still have a breakpoint on the alternate code versions and complete the stepping operation.

6 years agoMerge branch 'master' into FitsIn
Brian Sullivan [Mon, 16 Oct 2017 22:17:36 +0000 (15:17 -0700)]
Merge branch 'master' into FitsIn

6 years agoMerge pull request #14522 from dotnet/wtgodbe-patch-1
William Godbe [Mon, 16 Oct 2017 22:17:17 +0000 (15:17 -0700)]
Merge pull request #14522 from dotnet/wtgodbe-patch-1

Parameterize PublishFlatContainer in x86 build

6 years agoReview feedback changes
Brian Sullivan [Mon, 16 Oct 2017 22:16:31 +0000 (15:16 -0700)]
Review feedback changes

6 years agospill GT_RET_EXPR inside fat calli candidates. (#14520)
Sergey Andreenko [Mon, 16 Oct 2017 22:07:23 +0000 (15:07 -0700)]
spill GT_RET_EXPR inside fat calli candidates. (#14520)

spill ret expr

6 years agoDelete dead code (#14521)
Jan Kotas [Mon, 16 Oct 2017 22:00:33 +0000 (15:00 -0700)]
Delete dead code (#14521)

6 years agoPR Feedback
Carol Eidt [Mon, 16 Oct 2017 21:58:53 +0000 (14:58 -0700)]
PR Feedback

6 years agoOptimize native build of coreclr repo - 3x less memory , 11% build time improvement...
Jacek Blaszczynski [Mon, 16 Oct 2017 21:56:59 +0000 (23:56 +0200)]
Optimize native build of coreclr repo - 3x less memory , 11% build time improvement  (#14509)

* Fix native build overparallelism

* Fix native build parallelization problems

* Allow overriding all build workaround parameters

* Fix cleanup ommisions and local environment variable naming

* Address code review feedback

* Fix nul spelling and add standard message prefix

* Simplify settings for CL compiler parallelism

* Address code review feedback - remove whitespace

6 years agoAddress PR feedback
Stephen Toub [Mon, 16 Oct 2017 21:36:09 +0000 (17:36 -0400)]
Address PR feedback

6 years agoAdjusting field name changes in native code
Viktor Hofer [Mon, 16 Oct 2017 18:29:40 +0000 (20:29 +0200)]
Adjusting field name changes in native code

6 years agoChange Task.Delay to use TimerQueueTimer instead of Timer
Stephen Toub [Mon, 16 Oct 2017 19:16:31 +0000 (15:16 -0400)]
Change Task.Delay to use TimerQueueTimer instead of Timer

Timer is just a wrapper for a TimerHolder which is just a wrapper for a TimerQueueTimer.  We don't actually want the behavior provided by TimerHolder (to allow the underlying timer to be collected while it's in use) and explicitly work around that, and for that pleasure we're paying two additional allocations.  Just skip directly to the inner type.

6 years agoQueue TimerQueueTimer directly to ThreadPool
Stephen Toub [Mon, 16 Oct 2017 19:09:52 +0000 (15:09 -0400)]
Queue TimerQueueTimer directly to ThreadPool

Eliminate a wrapper ThreadPoolWorkItem that's unnecessary.  Saves an allocation ever time a Timer fires.

6 years agoReduce Timer lock contention
Stephen Toub [Mon, 16 Oct 2017 18:52:31 +0000 (14:52 -0400)]
Reduce Timer lock contention

Timer currently uses a global lock to protect a single "queue" of Timers, and any operation to create/change/fire/delete a Timer takes that same lock.  This leads to a scalability problem for code that operates on lots of timers.

This change partitions this single queue into N queues, which all operate independently.  In the .NET Framework implementation, there's already logically such a split with one queue/lock per AppDomain, and this change utilizes the same underlying support in the runtime.  As such, contention is distributed across the N locks, helping scalability.

6 years agoMerge branch 'master' into FitsIn
Brian Sullivan [Mon, 16 Oct 2017 18:11:20 +0000 (11:11 -0700)]
Merge branch 'master' into FitsIn

6 years agoParameterize PublishFlatContainer in x86 build
William Godbe [Mon, 16 Oct 2017 17:59:31 +0000 (10:59 -0700)]
Parameterize PublishFlatContainer in x86 build

This was missed in my last change to parameterize PublishFlatContainer across the board, and is what was causing the failures in today's pipe builds. We only want to publish non-flat for Release builds, but were hardcoding PublishFlatContainer=true for all builds in the x86 definition.

6 years agoUpdate CoreFx to preview1-25816-01 (#14516)
dotnet-maestro-bot [Mon, 16 Oct 2017 17:13:57 +0000 (12:13 -0500)]
Update CoreFx to preview1-25816-01 (#14516)

6 years agoMerge pull request #14519 from adiaaida/fixThroughputScript
Michelle McDaniel [Mon, 16 Oct 2017 16:39:25 +0000 (09:39 -0700)]
Merge pull request #14519 from adiaaida/fixThroughputScript

Fix call to submission.py in run-throughput-perf.py

6 years agoFix call to submission.py in run-throughput-perf.py
Michelle McDaniel [Mon, 16 Oct 2017 16:03:42 +0000 (09:03 -0700)]
Fix call to submission.py in run-throughput-perf.py

In run-throughput-perf.py, we were calling submission.py with --arch,
but submission.py requires -arch or --architecture. This recently made
submission.py start failing in throughput jobs.

This change also fixes run-throughput-perf so that if submission.py or
upload.py fail, the script fails so we see these jobs as failing in the
lab.

6 years agoForbid to clone GT_RET_EXPR (#14495)
Sergey Andreenko [Mon, 16 Oct 2017 15:47:46 +0000 (08:47 -0700)]
Forbid to clone GT_RET_EXPR (#14495)

* Forbid to clone GT_RET_EXPR

It potentially creates non-unique trees.

6 years agoEnvironment.SystemDirectory: Avoid StringBuilder overhead (#14513)
Justin Van Patten [Mon, 16 Oct 2017 05:49:53 +0000 (22:49 -0700)]
Environment.SystemDirectory: Avoid StringBuilder overhead (#14513)

* Environment.SystemDirectory: Avoid StringBuilder overhead

Use a stack allocated buffer, with fallback to a char array.

6 years agoUpdate CoreFx to preview1-25815-02 (#14511)
dotnet-maestro-bot [Sun, 15 Oct 2017 22:21:29 +0000 (17:21 -0500)]
Update CoreFx to preview1-25815-02 (#14511)

6 years agoDelete contract annotations (dotnet/corert#4722) (#14507)
dotnet bot [Sat, 14 Oct 2017 20:08:26 +0000 (13:08 -0700)]
Delete contract annotations (dotnet/corert#4722) (#14507)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoUpdate BuildTools, CoreFx, PgoData to prerelease-02113-01, preview1-25814-02, master...
dotnet-maestro-bot [Sat, 14 Oct 2017 16:27:07 +0000 (11:27 -0500)]
Update BuildTools, CoreFx, PgoData to prerelease-02113-01, preview1-25814-02, master-20171012-0049, respectively (#14476)

6 years agoDelete EnvironmentAugments.GetEnvironmentVariables (#14500)
Justin Van Patten [Sat, 14 Oct 2017 14:39:37 +0000 (07:39 -0700)]
Delete EnvironmentAugments.GetEnvironmentVariables (#14500)

CoreFX has been using EnumerateEnvironmentVariables for a while now.

6 years agoRemove temp unsafe stackalloc workarounds for Span (#14503)
Justin Van Patten [Sat, 14 Oct 2017 14:39:02 +0000 (07:39 -0700)]
Remove temp unsafe stackalloc workarounds for Span (#14503)

6 years agoDelete unnecessary Debug.Assert (#14504)
Justin Van Patten [Sat, 14 Oct 2017 14:38:46 +0000 (07:38 -0700)]
Delete unnecessary Debug.Assert (#14504)

6 years agoFix ILLink perf benchmark
Swaroop Sridhar [Mon, 9 Oct 2017 19:42:12 +0000 (12:42 -0700)]
Fix ILLink perf benchmark

This commit implements the following two changes to fix the
failure in ILLink perf test.

1) Fix Roslyn benchmark

Use ILLink.Tasks package to build the Roslyn linked benchmark,
now that Roslyn can target netcoreapp2.0.

2) Disable Musicstore temporarily

Disabling MusicStore build temporarily, since there's a build failure.

6 years agoMerge pull request #14465 from sdmaclea/PR-ARM64-DUP-DV_2D
Brian Sullivan [Sat, 14 Oct 2017 03:02:43 +0000 (20:02 -0700)]
Merge pull request #14465 from sdmaclea/PR-ARM64-DUP-DV_2D

[ARM64] Fix INS_dup DV_2D encoding

6 years agoAdd EventSource event for dropped async state machines (#14497)
Stephen Toub [Sat, 14 Oct 2017 01:52:26 +0000 (21:52 -0400)]
Add EventSource event for dropped async state machines (#14497)

One of the main bugs we've seen with async methods in production are cases where an async method awaits something that's never completed and is then just dropped.  This in turn allows the async state machine to be collected, such that subsequent dumps have no usable information to determine what hung and where.

To help diagnose such issues, this commit adds an EventSource event that fires when an async state machine is collected without having been completed.  When that happens, it dumps a textual representation of itself into a string and sends that to an event.

Doing this depends on the recent changes that were made to how we box async state machines to the heap.  Now that we do so with an explicit strongly-typed "box" instead of a normal runtime box, when the event source event is enabled, we can instead instantiate a derived and finalizable box, where the finalizer is responsible for firing the event, and we then suppress finalization when the async method completes.  The only async method state machines that are then finalized are those that are allowed to be collected before they're completed.

6 years agoUse IsIntCnsFitsIn8
Brian Sullivan [Fri, 13 Oct 2017 23:22:18 +0000 (16:22 -0700)]
Use IsIntCnsFitsIn8

When classifying the size of integer constants use new method FitsInI8() and existing method FitsInI32

6 years agoDisabling legacy banckend perf CQ and scenario runs (#14468)
José Rivero [Sat, 14 Oct 2017 00:42:55 +0000 (17:42 -0700)]
Disabling legacy banckend perf CQ and scenario runs (#14468)

- Recent changes to enforce data validation uncovered bug on the legacy backend runs. Now, we do not allow to upload tests with no performance data.
  CQ run bug tracked by: #14463
  JitBench run bug tracked by: #14477

6 years agoMerge pull request dotnet/corert#4719 from dotnet/nmirror
Jan Kotas [Fri, 13 Oct 2017 20:25:47 +0000 (13:25 -0700)]
Merge pull request dotnet/corert#4719 from dotnet/nmirror

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoUpdates to the jit bench harness (#14467)
Andy Ayers [Fri, 13 Oct 2017 23:05:44 +0000 (16:05 -0700)]
Updates to the jit bench harness (#14467)

Updates to the jit bench harness

Introduce a number of new options:
* use-existing-setup to reuse a previously set up environment
* iterations to control number of iterations
* tiering to enable tiered jit
* disable-r2r to disable loading of R2R images
* disable-ngen to disable loading of NGEN images
* minopts to force jit to generate minopts code

Also start tracking average response time. This is not yet "uploaded"
since the underlying data reported by the app needs some updates.

6 years agoOptimize type casts (#14420)
Andy Ayers [Fri, 13 Oct 2017 22:55:06 +0000 (15:55 -0700)]
Optimize type casts (#14420)

JIT: optimize type casts

Implement the jit interface compareTypesForEquality method
to handle casts from known types to known types, and from
shared types to certain interface types.

Call this method in the jit for castclass and isinst, using
`gtGetClassHandle` to obtain the from type. Optimize sucessful
casts and unsuccessful isinsts when the from type is known
exactly.

Undo part of the type-equality based optimization/workaround
in the AsyncMethodBuilder code that was introduced in #14178
in favor of interface checks. There is more here that can
be done here before this issue is entirely closed and I will
look at this subsequently.

This optimization allows the jit to remove boxes that are
used solely to feed type casts, and so closes #12877.

6 years agoFix handling of SIMD12
Carol Eidt [Fri, 13 Oct 2017 20:35:42 +0000 (13:35 -0700)]
Fix handling of SIMD12

It turns out that it is problematic to change the type of a SIMD12 PUTARG_STK operand. Instead, at codegen time, use the number of slots on the PUTARG_STK to identify the SIMD12 case.
Also, add some tests extracted from the corefx System.Numerics.Vectors tests.

6 years agoMerge pull request #14498 from wtgodbe/CloudDropAccountName
William Godbe [Fri, 13 Oct 2017 19:55:42 +0000 (12:55 -0700)]
Merge pull request #14498 from wtgodbe/CloudDropAccountName

Unify CloudDropAccountName

6 years agoUnify CloudDropAccountName
wtgodbe [Fri, 13 Oct 2017 19:55:22 +0000 (12:55 -0700)]
Unify CloudDropAccountName

6 years agoMerge pull request #14496 from wtgodbe/WorkingDir
William Godbe [Fri, 13 Oct 2017 18:45:45 +0000 (11:45 -0700)]
Merge pull request #14496 from wtgodbe/WorkingDir

Correctly set working folder in publish

6 years agoCorrectly set working folder in publish
wtgodbe [Fri, 13 Oct 2017 18:45:10 +0000 (11:45 -0700)]
Correctly set working folder in publish

6 years agoFix compile error with crossgen CreatePDB on Unix (#14488)
Hanjoung Lee [Fri, 13 Oct 2017 14:18:14 +0000 (23:18 +0900)]
Fix compile error with crossgen CreatePDB on Unix (#14488)

- Fix wchar string literals
- Fix init order of class fields

6 years agoAllow not to build SOS.NETCore.dll (#14404)
Jonghyun Park [Fri, 13 Oct 2017 02:45:20 +0000 (11:45 +0900)]
Allow not to build SOS.NETCore.dll (#14404)

* Allow not to build SOS.NETCore.dll

* Automatically enable SkipSOS when a mscorlib option is given

6 years agoMerge pull request #14466 from sdmaclea/PR-Fix-14464
Carol Eidt [Fri, 13 Oct 2017 00:18:30 +0000 (17:18 -0700)]
Merge pull request #14466 from sdmaclea/PR-Fix-14464

Fix JIT/HardwareIntrinsics/IsSupported.cs

6 years agoMerge pull request #14380 from dotnet-maestro-bot/master-UpdateDependencies
Jan Kotas [Fri, 13 Oct 2017 00:09:24 +0000 (17:09 -0700)]
Merge pull request #14380 from dotnet-maestro-bot/master-UpdateDependencies

Update BuildTools, CoreFx, PgoData to prerelease-02111-02, preview1-25812-01, master-20171009-0050, respectively (master)

6 years agoMerge pull request #14440 from briansull/needs-reloc
Brian Sullivan [Thu, 12 Oct 2017 23:34:39 +0000 (16:34 -0700)]
Merge pull request #14440 from briansull/needs-reloc

Refactor some code using opts.compReloc

6 years agoMerge pull request #14457 from wtgodbe/FixTestAndPublish
William Godbe [Thu, 12 Oct 2017 22:41:10 +0000 (15:41 -0700)]
Merge pull request #14457 from wtgodbe/FixTestAndPublish

Fix native binary syncing & myget publish

6 years agoFix Linux x86 break (#14461)
Jan Kotas [Thu, 12 Oct 2017 22:04:52 +0000 (15:04 -0700)]
Fix Linux x86 break (#14461)

6 years agoFix #14418 (#14419)
Noah Falk [Thu, 12 Oct 2017 21:54:31 +0000 (14:54 -0700)]
Fix #14418 (#14419)

Adds the appropriate handling of the default ILCodeVersion in DacDbiInterfaceImpl::GetILCodeVersionNode

6 years agoFix JIT/HardwareIntrinsics/IsSupported.cs
Steve MacLean [Thu, 12 Oct 2017 21:31:40 +0000 (17:31 -0400)]
Fix JIT/HardwareIntrinsics/IsSupported.cs

6 years agoAdd more debug logging to tiered compilation manager (#14425)
Noah Falk [Thu, 12 Oct 2017 21:43:20 +0000 (14:43 -0700)]
Add more debug logging to tiered compilation manager (#14425)

* Add more debug logging to tiered compilation manager

* Fixed format specifiers for pointer sized arguments

* A few additional tieredcompilation logging improvements

6 years agoFix #14427 (#14429)
Noah Falk [Thu, 12 Oct 2017 21:41:49 +0000 (14:41 -0700)]
Fix #14427 (#14429)

Enumerate all of the jitted instances of a method using the tiered compilation manager

6 years ago[ARM64] Fix INS_dup DV_2D encoding
Steve MacLean [Tue, 10 Oct 2017 00:07:06 +0000 (20:07 -0400)]
[ARM64] Fix INS_dup DV_2D encoding

6 years agoMerge branch 'master' into needs-reloc
Brian Sullivan [Thu, 12 Oct 2017 18:50:14 +0000 (11:50 -0700)]
Merge branch 'master' into needs-reloc

6 years agoFix native binary syncing & myget publish
wtgodbe [Thu, 12 Oct 2017 18:49:48 +0000 (11:49 -0700)]
Fix native binary syncing & myget publish

6 years agoAdjust whitespace for clang format
Brian Sullivan [Thu, 12 Oct 2017 18:49:30 +0000 (11:49 -0700)]
Adjust whitespace for clang format