platform/upstream/coreclr.git
7 years agoMerge pull request #13442 from BruceForstall/EnableSuperPmiCoreDisAsmDiffs2
Bruce Forstall [Fri, 18 Aug 2017 04:34:58 +0000 (21:34 -0700)]
Merge pull request #13442 from BruceForstall/EnableSuperPmiCoreDisAsmDiffs2

Enable SuperPMI asm diffs using CoreDisTools

7 years agoPort fixes in DotNet-CoreClr-Trusted-Linux.json to unblock coreclr (#13446)
smile21prc [Fri, 18 Aug 2017 03:58:14 +0000 (20:58 -0700)]
Port fixes in DotNet-CoreClr-Trusted-Linux.json to unblock coreclr (#13446)

* Port fixes in DotNet-CoreClr-Trusted-Linux.json to unblock coreclr official run.

Port this commit:
https://github.com/dotnet/coreclr/commit/66d0fed853589e19336b6486f05f9218019ca4c9

* Remove extra new line at end of the file

Remove extra new line at end of the file

* Remove end line

Remove end line

7 years agoEnable SuperPMI asm diffs using CoreDisTools
Bruce Forstall [Fri, 18 Aug 2017 01:29:20 +0000 (18:29 -0700)]
Enable SuperPMI asm diffs using CoreDisTools

Change SuperPMI to dynamically load coredistools.dll on demand.

7 years agoMerge pull request #12632 from rartemev/issue_12464
Roman Artemev [Fri, 18 Aug 2017 01:34:37 +0000 (18:34 -0700)]
Merge pull request #12632 from rartemev/issue_12464

Fix legacy backend crash on assert #12464

7 years agoMigrate Git clone from GitHub to VSO (#13430)
smile21prc [Fri, 18 Aug 2017 01:24:22 +0000 (18:24 -0700)]
Migrate Git clone from GitHub to VSO (#13430)

* Migrate Git clone from GitHub to VSO

Migrate Git clone from GitHub to VSO

* Correct var name

Correct var name

* Remove PB_ as they are unnecessary and confusing.

Remove PB_ as they are unnecessary and confusing.

* Add dependent vars.

Add dependent vars.

* Fix repo name.

Fix repo name.

7 years agoFix legacy backend crash
Roman Artemev [Tue, 4 Jul 2017 19:53:31 +0000 (12:53 -0700)]
Fix legacy backend crash

7 years agoRevert test part "Enable RedHat 6 in coreclr master (#13315)" to unblock CI.
Smile Wei [Thu, 17 Aug 2017 23:04:29 +0000 (16:04 -0700)]
Revert test part "Enable RedHat 6 in coreclr master (#13315)" to unblock CI.

This reverts commit b2b5fef27a4cb68571549f2e19660f39bd76467b.

7 years agoRevert PR 13375 (#13436)
Victor "Nate" Graf [Thu, 17 Aug 2017 21:48:28 +0000 (14:48 -0700)]
Revert PR 13375 (#13436)

7 years agoMerge pull request #13073 from rartemev/add_minopts_scenario
Roman Artemev [Thu, 17 Aug 2017 21:02:48 +0000 (14:02 -0700)]
Merge pull request #13073 from rartemev/add_minopts_scenario

Added perf and perf_minopts scenarios for legacy backend

7 years agoAdd minopts scenario for Legacy backend
Roman Artemev [Wed, 26 Jul 2017 23:07:24 +0000 (16:07 -0700)]
Add minopts scenario for Legacy backend

7 years agoMerge pull request #13426 from JosephTremoulet/ConservativeConstant
Joseph Tremoulet [Thu, 17 Aug 2017 19:03:25 +0000 (15:03 -0400)]
Merge pull request #13426 from JosephTremoulet/ConservativeConstant

Use conservative VN in CSE candidate const check

7 years agoEnable RedHat 6 in coreclr master (#13315)
smile21prc [Thu, 17 Aug 2017 17:42:22 +0000 (10:42 -0700)]
Enable RedHat 6 in coreclr master (#13315)

* Enable RedHat 6 in coreclr master

Enable RedHat 6 in coreclr master.

This is identical as the approved PR to enable RedHat 6 in coreclr
release/2.0.0:
https://github.com/dotnet/coreclr/pull/13301

* Correct Rid to match /src/.nuget/dirs.props

Correct Rid to match /src/.nuget/dirs.props

* Update dockertag and add logic to detect RHEL6 in init-tools.sh

Update dockertag and add logic to detect RHEL6 in init-tools.sh

* Port changes from Release/2.0.0 to fix coreclr RHEL 6 official runs.

Port changes from Release/2.0.0 to fix coreclr RHEL 6 official runs.

* Remove empty quotes.

Remove empty quotes.

7 years agoMerge pull request #13419 from wateret/fix-arm-lea-needless-mov
Bruce Forstall [Thu, 17 Aug 2017 17:39:22 +0000 (10:39 -0700)]
Merge pull request #13419 from wateret/fix-arm-lea-needless-mov

[RyuJIT/arm32] Fix LEA codegen

7 years agoMerge pull request #13198 from CarolEidt/LowerContain
Carol Eidt [Thu, 17 Aug 2017 17:04:09 +0000 (10:04 -0700)]
Merge pull request #13198 from CarolEidt/LowerContain

Move containment analysis to 1st phase of Lowering

7 years agoSupport GDBJIT on NI/IL_STUBS (#13417)
Jonghyun Park [Thu, 17 Aug 2017 16:01:26 +0000 (01:01 +0900)]
Support GDBJIT on NI/IL_STUBS (#13417)

* Support GDBJIT on NI/IL_STUBS

* Move tls_isSymReaderInProgress into gdbjit.cpp

7 years agoMerge pull request #13100 from sjsinju/currentInterval2
Carol Eidt [Thu, 17 Aug 2017 15:00:24 +0000 (08:00 -0700)]
Merge pull request #13100 from sjsinju/currentInterval2

[RyuJIT/ARM32] Add additional unassigning if the currentInterval has TYP_DOUBLE

7 years agoUse conservative VN in CSE candidate const check
Joseph Tremoulet [Thu, 17 Aug 2017 14:09:24 +0000 (10:09 -0400)]
Use conservative VN in CSE candidate const check

The check in CSE is supposed to leave code alone that constant prop
(done by VN-based Assertion Prop) is going to handle, but since that
constant prop code only propagates based on conservative VN, the check
in CSE needs to likewise use conservative VN to determine what to skip,
or else neither phase will eliminate the redundancy.

Fixes #6234.

7 years agoMerge pull request #13406 from ericstj/updateDependencies
Eric StJohn [Thu, 17 Aug 2017 13:38:50 +0000 (06:38 -0700)]
Merge pull request #13406 from ericstj/updateDependencies

Update dependencies

7 years agoFix AssemblyName(string) constructor's version parsing (#13373)
Koundinya Veluri [Thu, 17 Aug 2017 07:05:21 +0000 (00:05 -0700)]
Fix AssemblyName(string) constructor's version parsing (#13373)

Fix AssemblyName(string) constructor's version parsing

Functional fix for https://github.com/dotnet/corefx/issues/22663
- Allow fewer version components
- Match .NET Framework behavior in several cases. Major and minor version must be specified for the version to be used.
- Used zero for unspecified build/revision. This is different from .NET Framework but the loader also behaves differently. Details are in code comments.

7 years ago[RyuJIT/arm32] Fix LEA codegen
Hanjoung Lee [Thu, 17 Aug 2017 02:55:43 +0000 (11:55 +0900)]
[RyuJIT/arm32] Fix LEA codegen

Do not generate `mov` when src and dst are the same
when we generate code for LEA node.

Fix #13418

7 years agoMerge pull request #13409 from stephentoub/encoder_span
Stephen Toub [Thu, 17 Aug 2017 01:53:02 +0000 (21:53 -0400)]
Merge pull request #13409 from stephentoub/encoder_span

Add span-based overloads to Encoder/Decoder

7 years agoUpdate coreclr tests to netcoreapp2.1
Eric St. John [Wed, 16 Aug 2017 22:38:31 +0000 (15:38 -0700)]
Update coreclr tests to netcoreapp2.1

7 years ago`archiveSettings.addFiles` uses glob instead of path. (#13403)
José Rivero [Thu, 17 Aug 2017 00:11:56 +0000 (17:11 -0700)]
`archiveSettings.addFiles` uses glob instead of path. (#13403)

- Files were not being archived after last changes.

7 years agoAdd span-based overloads to Encoder/Decoder
Stephen Toub [Wed, 16 Aug 2017 23:19:17 +0000 (19:19 -0400)]
Add span-based overloads to Encoder/Decoder

7 years agoAdded BinaryWriter Span-based APIs (#13378)
jp2masa [Wed, 16 Aug 2017 22:53:56 +0000 (23:53 +0100)]
Added BinaryWriter Span-based APIs (#13378)

7 years agoUpdate CoreClr, CoreFx to preview2-25616-01, preview2-25616-02, respectively
dotnet-maestro-bot [Wed, 16 Aug 2017 13:37:35 +0000 (06:37 -0700)]
Update CoreClr, CoreFx to preview2-25616-01, preview2-25616-02, respectively

7 years agoFixed Android AMD64 build. (#13402)
Mike McLaughlin [Wed, 16 Aug 2017 22:35:38 +0000 (15:35 -0700)]
Fixed Android AMD64 build. (#13402)

7 years agoIntroduce FEATURE_GDBJIT_FRAME feature (#13283)
Jonghyun Park [Wed, 16 Aug 2017 22:23:44 +0000 (07:23 +0900)]
Introduce FEATURE_GDBJIT_FRAME feature (#13283)

7 years agoAdd Span-based {Try}Parse methods to primitive types (#13389)
Stephen Toub [Wed, 16 Aug 2017 21:09:29 +0000 (17:09 -0400)]
Add Span-based {Try}Parse methods to primitive types (#13389)

* Add Span-based {Try}Parse methods to primitive types

Adds Parse and TryParse methods to Boolean, Byte, Double, Int16, Int32, Int64, SByte, Single, UInt16, UInt32, UInt64, and Decimal.

* Address PR feedback

- Make delegation between overloads as consistent as possible across the primitive types: Boolean, SByte/Byte, Int16/UInt16, and Single/Double were doing it one way, whereas Decimal, Int32/UInt32, and Int64/UInt64 were doing it another way (most of this inconsistency was preexisting this PR, but my previous commit doubled-down on the inconsistency).  Changed the former to be like the latter.

7 years agoMove Containment Analysis to Lowering
Carol Eidt [Tue, 1 Aug 2017 00:41:13 +0000 (17:41 -0700)]
Move Containment Analysis to Lowering

- Ensure that the only changes to child nodes are the specification of srcCandidates
(i.e. the register requirements of the parent/consumer)
- Since this now occurs before redoing dataflow, we don't have complete information on
what lclVars are containable. To mitigate this:
  - In `TreeNodeInfoInit()`, if a lclVar is marked `isRegOptional` but is now untracked,
  change it to be contained.
  - Mark decomposed/promoted fields of long params as `lvDoNotEnregister`
 - Ensure that any new code added after `Lowering` is analyzed as necessary.

- When a value becomes unused, it is no longer contained. (This is needed now because liveness runs after containment analysis)
- Add dumping of nodes deleted as unused.
- Need to set byteable regs, as needed on contained RMW memory ops.

7 years agoMerge pull request #13208 from jashook/add_gc_stress_arm_metadata
Jarret Shook [Wed, 16 Aug 2017 18:13:13 +0000 (11:13 -0700)]
Merge pull request #13208 from jashook/add_gc_stress_arm_metadata

Add arm32 GCStress excludes

7 years agoMerge pull request #13377 from jashook/arm64_alignment
Jarret Shook [Wed, 16 Aug 2017 18:10:37 +0000 (11:10 -0700)]
Merge pull request #13377 from jashook/arm64_alignment

Restrict alignment assert to only if volatile

7 years agoRestrict alignment assert to only if volatile
jashook [Tue, 15 Aug 2017 15:57:54 +0000 (08:57 -0700)]
Restrict alignment assert to only if volatile

7 years agoFix AsyncValueTaskMethodBuilder.Create for corert (#13396)
Stephen Toub [Wed, 16 Aug 2017 17:54:51 +0000 (13:54 -0400)]
Fix AsyncValueTaskMethodBuilder.Create for corert (#13396)

I changed AsyncValueTaskMethodBuilder.Create to avoid calling the nop AsyncTaskMethodBuilder.Create, but it turns out on corert that AsyncTaskMethodBuilder.Create actually does additional work if the debugger is attached, so we should still call it there.

7 years agoDon't run arm64 on every commit (#13384)
Matt Mitchell [Wed, 16 Aug 2017 16:08:28 +0000 (09:08 -0700)]
Don't run arm64 on every commit (#13384)

We cannot keep up currently

@jashook PTAL

7 years agoAdd arm32 GCStress excludes
jashook [Thu, 3 Aug 2017 18:29:32 +0000 (11:29 -0700)]
Add arm32 GCStress excludes

7 years agoMerge pull request #13390 from stephentoub/avtmbcreate
Stephen Toub [Wed, 16 Aug 2017 14:25:16 +0000 (10:25 -0400)]
Merge pull request #13390 from stephentoub/avtmbcreate

Remove overhead from AsyncValueTaskMethodBuilder.Create

7 years agoSmall perf infrastructure changes (#13325)
José Rivero [Wed, 16 Aug 2017 04:11:36 +0000 (21:11 -0700)]
Small perf infrastructure changes (#13325)

- Move xUnit Perf Api output files to a folder `Logs` under sandbox
- Made necessary changes to `perf.groovy` to archive artifacts
- Added a switch -outputdir to the run-xunit-perf* scripts
- Enable running all CoreClr scenarios (JitBench & IlLink) despite failure
- Move sandbox to bin folder
- Use the default output dir: `.\bin\sandbox`

7 years agoRemove overhead from AsyncValueTaskMethodBuilder.Create
Stephen Toub [Wed, 16 Aug 2017 02:56:24 +0000 (22:56 -0400)]
Remove overhead from AsyncValueTaskMethodBuilder.Create

AsyncValueTaskMethodBuilder.Create wraps an AsyncTaskMethodBuilder and thus initializes its _methodBuilder field to AsyncTaskMethodBuilder.Create.  But even though AsyncTaskMethodBuilder.Create just returns default(AsyncTaskMethodBuilder), a non-trivial amount of code is being generated into AsyncValueTaskMethodBuilder.Create, even though it's really just returning default(AsyncValueTaskMethodBuilder).  So while the "right" thing to do is to call Create, this commit just skips it and adds a comment that if AsyncTaskMethodBuilder.Create ever becomes more than a nop, various callers would need to be updated as well (though I doubt we'd ever change it).

This reduces the overhead of a nop ValueTask-returning async method by ~30%.

7 years agoFix formatting
sjsujinkim [Wed, 16 Aug 2017 02:00:10 +0000 (11:00 +0900)]
Fix formatting

7 years agoGet sort version dynamically and expose ICU version from native component (#13382)
Tarek Mahmoud Sayed [Wed, 16 Aug 2017 01:49:16 +0000 (18:49 -0700)]
Get sort version dynamically and expose ICU version from native component (#13382)

* Support ICU Version

* Add the assert

7 years agoFix genIsValidDoubleReg not found
sjsujinkim [Wed, 16 Aug 2017 01:44:08 +0000 (10:44 +0900)]
Fix genIsValidDoubleReg not found

7 years ago[RyuJIT/ARM32] Add additional unassignToInterval if the currentInterval is TYP_DOUBLE
sjsujinkim [Fri, 28 Jul 2017 08:56:12 +0000 (17:56 +0900)]
[RyuJIT/ARM32] Add additional unassignToInterval if the currentInterval is TYP_DOUBLE

7 years agoImplement out of context stack unwinder (#13302)
Mike McLaughlin [Wed, 16 Aug 2017 00:33:04 +0000 (17:33 -0700)]
Implement out of context stack unwinder (#13302)

Implement out of context stack unwinder

Decode the eh frame info found in the in-memory module image
and pass it back to the remote libunwind8 to do the unwind.

Added remote-unwind.cpp for all the out of context unwind code.

Added an all managed threads option -all the "clrstack" (sos ClrStack).

The IDebugDataTarget4 feature needs to be enabled for OS X.

Add libunwind license notice to third party notices file.

7 years agoAdd enforcepgo to official builds (#13375)
Victor "Nate" Graf [Tue, 15 Aug 2017 23:56:45 +0000 (16:56 -0700)]
Add enforcepgo to official builds (#13375)

7 years agoMerge pull request #13029 from mikedn/disp-bbid
Bruce Forstall [Tue, 15 Aug 2017 17:07:42 +0000 (10:07 -0700)]
Merge pull request #13029 from mikedn/disp-bbid

Dump basic block ids instead of pointers

7 years agoUse dashes for build options (#13353)
Vance Morrison [Tue, 15 Aug 2017 16:18:50 +0000 (09:18 -0700)]
Use dashes for build options (#13353)

* Fix IndexOutOfRangeException in PayloadNames property

If you pass an null payload using Write<T>, and in the EventListener then call PayloadNames, it
will throw an IndexOutOfRangeException.   It should just return null.   This fixes this.

* To be consistant with the other build.cmd files use - for options

* Update docs to track change in option convention

* Updated Unix script to use - for options.

* Fix build break

* Fix Whitespace (review feedback)

* Another fix

7 years agoAllocate FileMappingImmutableData::szFileName and CFileProcessLocalData::unix_filenam...
gbalykov [Tue, 15 Aug 2017 16:15:47 +0000 (19:15 +0300)]
Allocate FileMappingImmutableData::szFileName and CFileProcessLocalData::unix_filename strings dynamically (#13374)

7 years agoMerge pull request #13366 from mikedn/imp-init-array
Joseph Tremoulet [Tue, 15 Aug 2017 14:08:23 +0000 (10:08 -0400)]
Merge pull request #13366 from mikedn/imp-init-array

Do not use GT_INDEX in impInitializeArrayIntrinsic

7 years agoJIT: fix CHK/REL diff from fgRetypeImplicitByRefArgs (#13372)
Andy Ayers [Tue, 15 Aug 2017 05:42:43 +0000 (22:42 -0700)]
JIT: fix CHK/REL diff from fgRetypeImplicitByRefArgs (#13372)

Make sure some important code is not under DEBUG.

Fixes #13358.

7 years agoSkip null checks for implicit byref argument references (#13355)
Jan Kotas [Tue, 15 Aug 2017 05:03:16 +0000 (22:03 -0700)]
Skip null checks for implicit byref argument references (#13355)

```
struct S
{
    public int _a;
    public int _b;
    public int _c;
    public int _d;
};

static void foo(S s)
{
    bar(ref s._b);
}
```

Before:

```
sub      rsp, 40
cmp      dword ptr [rcx], ecx // unnecessary
add      rcx, 4
call     My:bar(byref)
nop
add      rsp, 40
ret
```

After:
```
sub      rsp, 40
add      rcx, 4
call     My:bar(byref)
nop
add      rsp, 40
ret
```

7 years agoAdd full URL to the FileVersion information created a build time (#13352)
Vance Morrison [Tue, 15 Aug 2017 02:25:32 +0000 (19:25 -0700)]
Add full URL to the FileVersion information created a build time (#13352)

* Tag dlls with the URL of the github commit

* Fix name of BuildVersion file for non-official builds

This fix does something very safe (only overrides the name of the buildVersionFile with
a name from the OfficialBuildId variable if that variable is non-empty.

This is importnat because otherwise is that the override ALWAYS kicks in and sometimes
corrupts the name, which has the effect of throwning the information in the BuildVersionFile
(namely the version number) out

* Update to latest build tools.

7 years agoMerge pull request #13310 from shimingsg/v-shige/add-perftc-0810
Shiming Ge [Tue, 15 Aug 2017 02:16:05 +0000 (10:16 +0800)]
Merge pull request #13310 from shimingsg/v-shige/add-perftc-0810

add perf test cases(GCSmall, GCHandle, LOHSmooth) to coreclr

7 years agoMerge pull request #13334 from shimingsg/v-shige/add-perftc-0811
Shiming Ge [Tue, 15 Aug 2017 02:15:22 +0000 (10:15 +0800)]
Merge pull request #13334 from shimingsg/v-shige/add-perftc-0811

add perf test cases(MicroBench, MemoryPressure, etc) to coreclr

7 years agoMerge pull request #13362 from shimingsg/v-shige/add-perftc-0814-2
Shiming Ge [Tue, 15 Aug 2017 02:14:51 +0000 (10:14 +0800)]
Merge pull request #13362 from shimingsg/v-shige/add-perftc-0814-2

add perf test cases(ServerSpin, ToBoxOrNot, etc.) to coreclr

7 years agoMerge pull request #13328 from hseok-oh/ryujit/tmp_high_cost
Bruce Forstall [Tue, 15 Aug 2017 00:42:38 +0000 (17:42 -0700)]
Merge pull request #13328 from hseok-oh/ryujit/tmp_high_cost

[RyuJIT/ARM32] TmpVar for expensive struct argument

7 years agoFix race condition for some threading tests using GC.KeepAlive (#13351)
Ahson Ahmed Khan [Tue, 15 Aug 2017 00:18:05 +0000 (17:18 -0700)]
Fix race condition for some threading tests using GC.KeepAlive (#13351)

* Fix race condition for some threading tests using GC.KeepAlive

* Removing unnecessary change to null array test

* Removing extra space

7 years agoMerge pull request #13365 from dotnet-maestro-bot/master-UpdateDependencies
Wes Haggard [Mon, 14 Aug 2017 22:35:52 +0000 (15:35 -0700)]
Merge pull request #13365 from dotnet-maestro-bot/master-UpdateDependencies

Update CoreClr, CoreFx to preview2-25614-02, preview2-25614-02, respectively (master)

7 years agoMerge pull request #13364 from hqueue/arm/ryujit/issue_13363_regression_of_13190
Bruce Forstall [Mon, 14 Aug 2017 22:16:44 +0000 (15:16 -0700)]
Merge pull request #13364 from hqueue/arm/ryujit/issue_13363_regression_of_13190

[RyuJIT/ARM32] Fix regression

7 years agoDump basic block ids instead of pointers
Mike Danes [Tue, 25 Jul 2017 12:00:11 +0000 (15:00 +0300)]
Dump basic block ids instead of pointers

7 years ago[Linux/ARM] Fix managed breakpoints (#13316)
Igor Kulaychuk [Mon, 14 Aug 2017 21:30:56 +0000 (00:30 +0300)]
[Linux/ARM] Fix managed breakpoints (#13316)

* [Linux/ARM] Fix managed breakpoints

This commit introduces the following changes in order to enable
ICorDebug-based debuggers to use breakpoints on ARM Linux:

* Use 0xde01 as breakpoint instruction on ARM Linux.
  ARM reference recommends to use 0xdefe as a breakpoint instruction,
  but Linux kernel generates SIGILL for this instruction.
  The 0xde01 instruction causes the kernel to generate SIGTRAP.

* Fix SIGTRAP handling on ARM Linux.
  Unlike x86, when SIGTRAP happens on ARM Linux, the PC points
  at the break instruction. But the rest of the code expects
  that it points to an instruction after the break,
  so we adjust the PC at the start of HandleHardwareException().

* Enable ARM single stepping for PAL.
  Handle single stepping for PAL path the same way as for non-PAL path.
  Also enable ArmSingleStepper executable buffer by allocating it
  from system global loader executable heap.

* Hande ARM single step only when debugger is attached, fix comments and code style

* Pass existing Thread object to HandleArmSingleStep

7 years agoMerge pull request #13350 from BruceForstall/FixVSO478352
Bruce Forstall [Mon, 14 Aug 2017 17:30:38 +0000 (10:30 -0700)]
Merge pull request #13350 from BruceForstall/FixVSO478352

Fix double-indirect p/invoke call generation

7 years agoAdded SetThreadDescription to set the unmanaged thread name (#12593)
Alois-xx [Mon, 14 Aug 2017 17:26:28 +0000 (19:26 +0200)]
Added SetThreadDescription to set the unmanaged thread name (#12593)

* Added SetThreadDescription to set the unmanaged thread name as well when a managed thread name was set.
This will show up in future debuggers which know how to read that information or in ETW traces in the Thread Name column.

* use printf  instead of wprintf which exists on all platforms.

* Removed printf
Ensure that GetProceAddress is only called once to when the method is not present.
Potential perf hit should be negligible since setting a thread name can only happen once per managed thread.

* - Moved SetThreadName code to winfix.cpp as proposed
- Finalizer and threadpool threads get their name
- GCToEEInterface::CreateBackgroundThread is also named
- but regular GC threads have no name because when I included utilcode.h things did break apart.

* Fix for data race in g_pfnSetThreadDescription

* Fix string literals on unix builds.

* Fixed nits
Settled thread name on ".NET Core ThreadPool"

7 years agoDo not use GT_INDEX in impInitializeArrayIntrinsic
Mike Danes [Mon, 14 Aug 2017 15:46:56 +0000 (18:46 +0300)]
Do not use GT_INDEX in impInitializeArrayIntrinsic

We know that array size is larger than 0 so we do not need a range check.  This range check survives until the RangeCheck phase so it creates more work of the phases before it. It is also very unlikely to enable other optimizations, subsequent `a[0]` range checks can still be eliminated because the array length is known and constant.

7 years agoUpdate CoreClr, CoreFx to preview2-25614-02, preview2-25614-02, respectively
dotnet-maestro-bot [Mon, 14 Aug 2017 13:35:26 +0000 (06:35 -0700)]
Update CoreClr, CoreFx to preview2-25614-02, preview2-25614-02, respectively

7 years agoIncrease timeout and log the result for a couple of WaitAny tests that expect Abandon...
Koundinya Veluri [Mon, 14 Aug 2017 11:23:16 +0000 (04:23 -0700)]
Increase timeout and log the result for a couple of WaitAny tests that expect AbandonedMutexException (#13298)

7 years ago[RyuJIT/ARM32] Fix regression
Hyung-Kyu Choi [Mon, 14 Aug 2017 10:18:13 +0000 (19:18 +0900)]
[RyuJIT/ARM32] Fix regression

- This fixes regression cuased by PR #13190
- Restore code for resolving registers for multi register operator

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoadd perf test cases to coreclr
Shiming Ge (Pactera Technologies) [Mon, 14 Aug 2017 09:29:02 +0000 (02:29 -0700)]
add perf test cases to coreclr

7 years agoremove line includes CopyToOutputDirectory
Shiming Ge (Pactera Technologies) [Mon, 14 Aug 2017 08:10:04 +0000 (01:10 -0700)]
remove line includes CopyToOutputDirectory

7 years agoreplace p/invokes into kernel32 with cross-platform implementations
Shiming Ge (Pactera Technologies) [Mon, 14 Aug 2017 07:03:58 +0000 (00:03 -0700)]
replace p/invokes into kernel32 with cross-platform implementations

7 years agoTypo (#13360)
John Doe [Mon, 14 Aug 2017 06:47:41 +0000 (23:47 -0700)]
Typo (#13360)

7 years agoUpdate CoreClr, CoreFx to preview2-25614-01, preview2-25614-01, respectively (#13359)
dotnet-maestro-bot [Mon, 14 Aug 2017 06:47:19 +0000 (23:47 -0700)]
Update CoreClr, CoreFx to preview2-25614-01, preview2-25614-01, respectively (#13359)

7 years agoFinish moving Guid to shared partition
Jan Kotas [Sun, 13 Aug 2017 15:35:37 +0000 (08:35 -0700)]
Finish moving Guid to shared partition

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoUpdate CoreClr, CoreFx to preview2-25613-02, preview2-25613-02, respectively (#13300)
dotnet-maestro-bot [Sun, 13 Aug 2017 19:14:04 +0000 (12:14 -0700)]
Update CoreClr, CoreFx to preview2-25613-02, preview2-25613-02, respectively (#13300)

7 years agoFollow-up: Add enforcepgo for release Windows_NT default release build (#13319)
Victor "Nate" Graf [Fri, 11 Aug 2017 23:43:51 +0000 (16:43 -0700)]
Follow-up: Add enforcepgo for release Windows_NT default release build (#13319)

* Add enforcepgo for release Windows_NT default release build

* Restrict enforment of PGO to PGO supported builds

* Expand the usage of enforcpgo

* Fix break in the if-else control flow

7 years agoMerge pull request #13332 from wateret/fix-ryuarm-hfa
Bruce Forstall [Fri, 11 Aug 2017 23:43:21 +0000 (16:43 -0700)]
Merge pull request #13332 from wateret/fix-ryuarm-hfa

[RyuJIT/armel] Fix PutArgReg BuildRefPositions

7 years agoMove files to shared CoreLib partition (#13342)
Jan Kotas [Fri, 11 Aug 2017 23:17:00 +0000 (16:17 -0700)]
Move files to shared CoreLib partition (#13342)

7 years agoFix double-indirect p/invoke call generation
Bruce Forstall [Fri, 11 Aug 2017 22:15:29 +0000 (15:15 -0700)]
Fix double-indirect p/invoke call generation

When the signature to getAddressOfPInvokeTarget() was changed,
the double-indirect CT_USER_FUNC case was accidentally changed
to pass a non-null `addr` to emitIns_Call(). This leads to asserts
when ngen'ing (in my test, ngen of System.dll on desktop using `LEGACY_BACKEND`
cross-compiling arm32 altjit). For some reason, x86 is more permissive
in the emitIns_Call() assert for this case, but doesn't use the
non-null addr.

Fixes VSO 478352

7 years agoFix bug where whitespace breaks arg proccessing (#13320)
Victor "Nate" Graf [Fri, 11 Aug 2017 22:10:29 +0000 (15:10 -0700)]
Fix bug where whitespace breaks arg proccessing (#13320)

* Fix bug where whitespace breaks arg proccessing

* Fix whitespace proccessing bug in buil-text.cmd

7 years agoMerge pull request #13338 from jashook/log_crossgen_command
Jarret Shook [Fri, 11 Aug 2017 21:08:55 +0000 (14:08 -0700)]
Merge pull request #13338 from jashook/log_crossgen_command

Log the crossgen command in build.sh.

7 years agoChanges that didn't make it to PR#12982 (#13055)
Cyd Haselton [Fri, 11 Aug 2017 20:14:36 +0000 (15:14 -0500)]
Changes that didn't make it to PR#12982 (#13055)

* Changes that didn't make it to PR#12982

* Recommended changes to volatile.h

Added two templates to cast away volatility due to clang 3.8 changes

* Update runtime.Linux.Microsoft.NETCore.Runtime.CoreCLR.props

Fixed erroneous extra Platform conditional line

7 years agoLog the crossgen command in build.sh.
jashook [Fri, 11 Aug 2017 15:56:20 +0000 (08:56 -0700)]
Log the crossgen command in build.sh.

This makes it easier to copy paste the commnand if it fails.

7 years agoFixed CoreRT issue https://github.com/dotnet/coreclr/issues/13195 (#13335)
sergey ignatov [Fri, 11 Aug 2017 14:39:04 +0000 (17:39 +0300)]
Fixed CoreRT issue https://github.com/dotnet/coreclr/issues/13195 (#13335)

7 years agoadd perf test cases to coreclr
Shiming Ge (Pactera Technologies) [Fri, 11 Aug 2017 08:49:42 +0000 (01:49 -0700)]
add perf test cases to coreclr

7 years ago[RyuJIT/armel] Fix PutArgReg BuildRefPositions
Hanjoung Lee [Fri, 11 Aug 2017 07:19:02 +0000 (16:19 +0900)]
[RyuJIT/armel] Fix PutArgReg BuildRefPositions

We should fix registers for GT_PUTARG_REG, not GT_COPY or GT_MUL_LONG.
And merge the `if` statement with GT_PUTARG_SPLIT case.

7 years agoMerge pull request #13306 from hseok-oh/ryujit/fix_13156
Carol Eidt [Fri, 11 Aug 2017 06:31:17 +0000 (23:31 -0700)]
Merge pull request #13306 from hseok-oh/ryujit/fix_13156

Fix lclVar move node type inserted on lsra resolve phase

7 years agoFix genSpillVar
Hyeongseok Oh [Fri, 11 Aug 2017 05:00:02 +0000 (14:00 +0900)]
Fix genSpillVar

Fix genSpillVar() instead of insertMove()

7 years ago[RyuJIT/ARM32] TmpVar for expensive struct argument
Hyeongseok Oh [Fri, 11 Aug 2017 04:12:02 +0000 (13:12 +0900)]
[RyuJIT/ARM32] TmpVar for expensive struct argument

Assign expensive argument to tmpVar on morphing phase

7 years agoFix the race condition in mutex test using another manual reset event (#13308)
Ahson Ahmed Khan [Fri, 11 Aug 2017 02:56:03 +0000 (19:56 -0700)]
Fix the race condition in mutex test using another manual reset event (#13308)

* Fix the race condition by using a manual reset event instead of gc.keepalive

* Addressing PR comment

7 years agoMerge pull request #13285 from shimingsg/v-shige/add-perftc-GCLarge
Shiming Ge [Fri, 11 Aug 2017 01:37:26 +0000 (09:37 +0800)]
Merge pull request #13285 from shimingsg/v-shige/add-perftc-GCLarge

add perf test case GCLarge

7 years agoMerge pull request #13299 from pgavlin/GH13161
Pat Gavlin [Thu, 10 Aug 2017 23:02:03 +0000 (16:02 -0700)]
Merge pull request #13299 from pgavlin/GH13161

Fix issue #13161.

7 years agoImplement BitConverter Span-based APIs (#13278)
Nina Chikanov [Thu, 10 Aug 2017 23:01:27 +0000 (16:01 -0700)]
Implement BitConverter Span-based APIs (#13278)

Finished first checkbox of issue 22355: Implement in
System.Private.CoreLib in coreclr

7 years agoMerge pull request #13304 from BruceForstall/FixVSO471672
Bruce Forstall [Thu, 10 Aug 2017 23:00:37 +0000 (16:00 -0700)]
Merge pull request #13304 from BruceForstall/FixVSO471672

Copy additional GenTreeBoundsChk fields in gtCloneExpr

7 years agoJIT: modify box/unbox/isinst/castclass expansions for fast jitting (#13188)
Andy Ayers [Thu, 10 Aug 2017 22:17:31 +0000 (15:17 -0700)]
JIT: modify box/unbox/isinst/castclass expansions for fast jitting (#13188)

When the jit is generating code in debug/minopts/rare-block modes,
we'd prefer it to generate code more quickly and worry less about overall
generated code performance.

Generally speaking smaller intermediate and final code should correlate
well with faster jitting.

This change alters the expansions of box, unbox, isinst, and castclass when
generating code for minopts, debug, or in rarely run blocks. In such modes
the jit estimates whether an inline sequence or general helper call would
result in more compact code, and then chooses the smaller sequence.

This reduces generated code size around 2.5% in a variety of scenarios,
and roughly translates to a 1.5% improvement in time spent jitting.

Similar strategies can be applied to other complex operations during
importation. That work is forthcoming.

7 years agoRevert "Add enforcepgo for release Windows_NT default release build (#13275)" (#13318)
Jan Kotas [Thu, 10 Aug 2017 21:24:33 +0000 (14:24 -0700)]
Revert "Add enforcepgo for release Windows_NT default release build (#13275)" (#13318)

This reverts commit b07a921524ec9e8c8f5e482707f9fc1b9b86d95e.

7 years agoMerge pull request #13307 from wateret/cleanup-armel-lsracond
Bruce Forstall [Thu, 10 Aug 2017 16:20:59 +0000 (09:20 -0700)]
Merge pull request #13307 from wateret/cleanup-armel-lsracond

[RyuJIT/armel] Cleanup with OperIsMultiRegOp()

7 years agoMerge pull request #13309 from wateret/arm-getregcount
Bruce Forstall [Thu, 10 Aug 2017 16:09:11 +0000 (09:09 -0700)]
Merge pull request #13309 from wateret/arm-getregcount

[RyuJIT/armel] Introduce GetRegCount() for MultiRegOp

7 years agoAdd enforcepgo for release Windows_NT default release build (#13275)
Victor "Nate" Graf [Thu, 10 Aug 2017 15:47:44 +0000 (08:47 -0700)]
Add enforcepgo for release Windows_NT default release build (#13275)

* Add enforcepgo for release Windows_NT default release build

* Restrict enforment of PGO to PGO supported builds

* Expand the usage of enforcpgo

* Fix break in the if-else control flow

7 years agoMerge pull request #13286 from JosephTremoulet/TailLoopScratch
Joseph Tremoulet [Thu, 10 Aug 2017 14:19:38 +0000 (10:19 -0400)]
Merge pull request #13286 from JosephTremoulet/TailLoopScratch

Ensure scratch BB in tail recursion -> loop xform

7 years ago[RyuJIT/armel] Cleanup with OperIsMultiRegOp()
Hanjoung Lee [Thu, 10 Aug 2017 03:24:45 +0000 (12:24 +0900)]
[RyuJIT/armel] Cleanup with OperIsMultiRegOp()

Use OperIsMultiRegOp() instead of separated conditions