platform/upstream/coreclr.git
7 years agoUpdate README.md (#10641)
Nicolò Carandini [Tue, 4 Apr 2017 01:42:15 +0000 (03:42 +0200)]
Update README.md (#10641)

In this file I’ve found a “project.json” occurrence that I've changed to ".csproj".

7 years agoMove '#pragma warning(disable:21000)' to correct place (#10455)
Matt Warren [Tue, 4 Apr 2017 01:37:48 +0000 (02:37 +0100)]
Move '#pragma warning(disable:21000)' to correct place (#10455)

Whilst I was writing a blog post ['A Hitchhikers Guide to the CoreCLR Source Code'](http://mattwarren.org/2017/03/23/Hitchhikers-Guide-to-the-CoreCLR-Source-Code/#top-10-lists) I noticed that a `#pragma warning(disable:21000)` was mis-aligned.

I'm pretty sure that having it in the wrong place doesn't cause a problem (i.e. this doesn't actually *fix* anything), because the other methods are smaller, so I understand if you don't want to take the PR.

7 years agoImprove Guid.ToString (#10669)
Ben Adams [Tue, 4 Apr 2017 01:20:54 +0000 (02:20 +0100)]
Improve Guid.ToString (#10669)

* Improve Guid.ToString

* revert HexToChar

7 years agoMerge pull request #10678 from briansull/contract-fix
Brian Sullivan [Tue, 4 Apr 2017 00:30:36 +0000 (17:30 -0700)]
Merge pull request #10678 from briansull/contract-fix

Remove the SO_TOLERANT contact from CEEInfo::resolveVirtualMethodHelper

7 years agoDebug.Assert FF (#10652)
Dan Moseley [Tue, 4 Apr 2017 00:15:24 +0000 (17:15 -0700)]
Debug.Assert FF (#10652)

7 years agoFix 'this' pointer in struct methods (#10668)
Igor Kulaychuk [Tue, 4 Apr 2017 00:10:40 +0000 (03:10 +0300)]
Fix 'this' pointer in struct methods (#10668)

The 'this' method argument should always be a pointer.

7 years agoremove fedora 23 (#10667)
Dan Moseley [Mon, 3 Apr 2017 23:43:43 +0000 (16:43 -0700)]
remove fedora 23 (#10667)

7 years agoMerge pull request #10629 from russellhadley/EHWriteThru-design-doc
Russell C Hadley [Mon, 3 Apr 2017 23:37:00 +0000 (16:37 -0700)]
Merge pull request #10629 from russellhadley/EHWriteThru-design-doc

Add initial design document for EH WriteThru

7 years agoFix InternalsVisibleTo when it references an assembly with some DebuggableAttribute...
Koundinya Veluri [Mon, 3 Apr 2017 23:35:47 +0000 (16:35 -0700)]
Fix InternalsVisibleTo when it references an assembly with some DebuggableAttribute flags (#10664)

Fixes #3541
- Mask out the DebuggableAttribute bits from when comparing assembly spec flags for matching an InternalsVisibleTo reference to an assembly

7 years agoMerge pull request #10671 from wtgodbe/Redist
William Godbe [Mon, 3 Apr 2017 23:26:02 +0000 (16:26 -0700)]
Merge pull request #10671 from wtgodbe/Redist

Publish VC Redist DLLs as part of CoreCLR Package

7 years agoRemove the SO_TOLERANT contact from CEEInfo::resolveVirtualMethodHelper
Brian Sullivan [Mon, 3 Apr 2017 23:01:23 +0000 (16:01 -0700)]
Remove the SO_TOLERANT contact from CEEInfo::resolveVirtualMethodHelper
that contract should only apply to CEEInfo::resolveVirtualMethod which uses the JIT_TO_EE_TRANSITION() transition macros.

7 years agoMerge pull request #10672 from pgavlin/FixExceptionReference
Pat Gavlin [Mon, 3 Apr 2017 22:34:34 +0000 (15:34 -0700)]
Merge pull request #10672 from pgavlin/FixExceptionReference

Fix a reference to System.Exception in a JIT test.

7 years agoPublish VC Redist DLLs as part of CoreCLR Package
wtgodbe [Mon, 3 Apr 2017 20:29:27 +0000 (13:29 -0700)]
Publish VC Redist DLLs as part of CoreCLR Package

7 years agoMerge pull request #10326 from jashook/arm64_test_update_20_march
Jarret Shook [Mon, 3 Apr 2017 20:56:40 +0000 (13:56 -0700)]
Merge pull request #10326 from jashook/arm64_test_update_20_march

Update the arm64 test drop - WIP

7 years agoFix a reference to System.Exception in a JIT test.
Pat Gavlin [Mon, 3 Apr 2017 20:53:04 +0000 (13:53 -0700)]
Fix a reference to System.Exception in a JIT test.

This bad reference was casuing a failure in the x64 pri1 R2R jobs.

7 years ago[x86/Linux] add the process of handling when entry point is funclet. (#10602)
ragmani [Mon, 3 Apr 2017 19:27:44 +0000 (04:27 +0900)]
[x86/Linux] add the process of handling when entry point is funclet. (#10602)

* [x86/Linux] add the process of handling the entry point when it is funclet in case x86.

* [x86/Linux] enable only for TARGET_X86 && FEATURE_PAL.

Signed-off-by: ragmani <ragmani0216@gmail.com>
7 years agoUpdate the arm64 test drop
jashook [Mon, 20 Mar 2017 21:14:31 +0000 (14:14 -0700)]
Update the arm64 test drop

7 years agoCut down FormatterServices (#10653)
Dan Moseley [Mon, 3 Apr 2017 12:44:48 +0000 (05:44 -0700)]
Cut down FormatterServices (#10653)

7 years agoFix Double.ToString performance on Linux and OSX (#10572)
Tarek Mahmoud Sayed [Sun, 2 Apr 2017 19:18:22 +0000 (12:18 -0700)]
Fix Double.ToString performance on Linux and OSX (#10572)

* Fix Double.ToString performance on Linux and OSX

* some feedback fixes

* Remove the implementation depending on ecvt_r

7 years agoBring back kApplicationException (#10650)
Hugh Bellamy [Sun, 2 Apr 2017 16:12:29 +0000 (23:12 +0700)]
Bring back kApplicationException (#10650)

7 years agoRemove securitystate (#10649)
Dan Moseley [Sun, 2 Apr 2017 10:16:23 +0000 (03:16 -0700)]
Remove securitystate (#10649)

7 years agoMove identical Globalization files to shared partition
Jan Kotas [Sat, 1 Apr 2017 19:25:28 +0000 (12:25 -0700)]
Move identical Globalization files to shared partition

7 years agoMove identical files to shared partition
Jan Kotas [Sat, 1 Apr 2017 18:40:23 +0000 (11:40 -0700)]
Move identical files to shared partition

7 years agoMove identical Interop files to shared partition
Jan Kotas [Sat, 1 Apr 2017 18:26:05 +0000 (11:26 -0700)]
Move identical Interop files to shared partition

7 years ago[Local GC] Move some EE-specific finalize-on-unload logic out of the GC (#10598)
Sean Gillespie [Sat, 1 Apr 2017 21:25:46 +0000 (14:25 -0700)]
[Local GC] Move some EE-specific finalize-on-unload logic out of the GC (#10598)

* Move some EE-specific logic to a callback on GCToEEInterface

* Fix the sample

* Consistent style for pointers

* Code review feedback: Move app domain index check into EE callback and make ShouldFinalizeObjectForUnload always return true (due to CoreCLR not having app domains)

* Code review feedback: Fix a comment and add a TODO for bringing these changes to desktop

7 years ago[Local GC] Remove static fields from GC interface (#10566)
Sean Gillespie [Sat, 1 Apr 2017 21:25:07 +0000 (14:25 -0700)]
[Local GC] Remove static fields from GC interface (#10566)

* Remove max_generation from GC interface

* [Local GC] Clean up the GC interface by removing all static fields
from it:
  1) gcHeapType is replaced by g_heap_type (EE side) and g_gc_heap_type
     (GC side), each of which is set on initialization. g_heap_type is
     read by the DAC to determine what kind of heap is being used.
  2) maxGeneration is not necessary due to the GC DAC changes.

* Rebase against master

* Comments and cleanup

* Use a heap allocation instead of alloca

* Code review feedback: remove a redundant cast and allocate generation count table once, on first use

* Address code review feedback: cache some calls to GetMaxGeneration

7 years agoMerge pull request #10584 from adityamandaleeka/handle_table_local_gc_init
Aditya Mandaleeka [Sat, 1 Apr 2017 19:25:08 +0000 (12:25 -0700)]
Merge pull request #10584 from adityamandaleeka/handle_table_local_gc_init

Change how the VM calls ObjectFromHandle.

7 years agoAdd .gitmirror file
Matt Ellis [Sat, 1 Apr 2017 18:13:03 +0000 (11:13 -0700)]
Add .gitmirror file

7 years agoMerge pull request #10627 from briansull/profile-data
Brian Sullivan [Sat, 1 Apr 2017 17:46:58 +0000 (10:46 -0700)]
Merge pull request #10627 from briansull/profile-data

Added DisableInlining flag to the ProfileData.

7 years agoAdd initial design document for EH WriteThru
Russell C Hadley [Mon, 27 Mar 2017 17:14:25 +0000 (10:14 -0700)]
Add initial design document for EH WriteThru

Document describes an initial approch to enregistering local variables
that live across EH flow.  Today the JIT forces all local vars that are live
across EH flow that kills all registers to live on the stack.  The transformation outlined ensures consistency on the stack across the EH kills but allows the enregistration with in either the normal flow of control or with in any EH handlers.

7 years agoRefactor dotnet download code in init-tools.cmd (#10527)
Luis G [Sat, 1 Apr 2017 09:00:12 +0000 (06:00 -0300)]
Refactor dotnet download code in init-tools.cmd (#10527)

* Refactor dotnet download code in init-tools.cmd
This addresses the improvements proposed in issue #10526.
Includes the init-tools.cmd script refactor and a new script called
dotnet-download.ps1 which includes the extracted code and logic

* Code review feedback changes

* Fix spacing

7 years agoJit: fix a few issues with single def local tracking (#10633)
Andy Ayers [Sat, 1 Apr 2017 07:56:33 +0000 (00:56 -0700)]
Jit: fix a few issues with single def local tracking (#10633)

Fixes for three issues that came up in desktop testing.

1. Don't track class types for locals when in import only mode,
since the jit may be looking at an uninstantiated generic method.
In these cases the jit's use of TYP_REF to represent CORINFO_TYPE_VAR
confuses the tracking code. In import only mode the jit is not going
to use the information, so there is no need to track it at all.

    Import only mode is tied to verification and CoreCLR runs in full
trust mode, so no test was added.

2. Allow `lvaUpdateClass` to be called more than once but assert
that the second and subsequent calls provide the exact same update
as the first call.

    This can happen for single def ref class locals whose definition
block is reimported. Reimportation is triggered by some tolerable
non-ref type mismatches at block joins and so ref type information
should be consistent for each importation attempt.

    Add a couple of IL test cases translated from destkop MC++ tests
that will trigger this kind of reimportation.

3. Bail out of devirtualization (for desktop only) if the base class
has precise initialization semantics, since desktop seems to trigger
class initialization for ref type callvirts (contrary to ECMA355 I.8.9.5).
See #4853 for some discussion. Since this is desktop only behavior
no test was added.

7 years agoMerge pull request #10638 from AndyAyersMS/EmptyTryUpdateFinallyNestLevel
Andy Ayers [Sat, 1 Apr 2017 06:04:48 +0000 (23:04 -0700)]
Merge pull request #10638 from AndyAyersMS/EmptyTryUpdateFinallyNestLevel

Jit: decrement finally nesting level when removing empty trys

7 years agoDelete moved files
Jan Kotas [Fri, 31 Mar 2017 23:20:12 +0000 (16:20 -0700)]
Delete moved files

7 years agoMerge pull request dotnet/corert#3175 from jkotas/nmirror-merge
Michal Strehovský [Fri, 31 Mar 2017 22:08:40 +0000 (15:08 -0700)]
Merge pull request dotnet/corert#3175 from jkotas/nmirror-merge

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoChange how VM calls ObjectFromHandle.
Aditya Mandaleeka [Sat, 1 Apr 2017 00:12:03 +0000 (17:12 -0700)]
Change how VM calls ObjectFromHandle.

7 years agoAdd way to get table for handle and ADIndex for handletable.
Aditya Mandaleeka [Sat, 1 Apr 2017 00:09:46 +0000 (17:09 -0700)]
Add way to get table for handle and ADIndex for handletable.

7 years agodelete GetMethod2 (#10626)
Sergey Andreenko [Sat, 1 Apr 2017 01:36:06 +0000 (18:36 -0700)]
delete GetMethod2 (#10626)

* delete GetMethod2

* delete unused code

7 years agoJit: decrement finally nesting level when removing empty trys
Andy Ayers [Sat, 1 Apr 2017 01:13:32 +0000 (18:13 -0700)]
Jit: decrement finally nesting level when removing empty trys

For non-funclet EH models, the GT_END_LFIN statement tracks the
nesting level of the associated finally. When removing a try-finally
with an empty try we need to decrement this level for any try-finallys
nested within the associated finally.

Added a test case with several levels of empty try and nesting.

Closes #10621.

7 years agodelete wrong and unused value (#10634)
Sergey Andreenko [Sat, 1 Apr 2017 01:12:53 +0000 (18:12 -0700)]
delete wrong and unused value (#10634)

7 years agoMerge pull request #10467 from helloguo/VectorConversionTest
Bruce Forstall [Sat, 1 Apr 2017 00:19:54 +0000 (17:19 -0700)]
Merge pull request #10467 from helloguo/VectorConversionTest

Add vector conversion tests

7 years agoMerge pull request #10619 from BruceForstall/legacynonjit
Bruce Forstall [Sat, 1 Apr 2017 00:14:19 +0000 (17:14 -0700)]
Merge pull request #10619 from BruceForstall/legacynonjit

Add ARM32 legacy altjit build

7 years agoRemoving Slice on string overloads and adding AsSpan (#10544)
Ahson Ahmed Khan [Sat, 1 Apr 2017 00:10:50 +0000 (17:10 -0700)]
Removing Slice on string overloads and adding AsSpan (#10544)

7 years agoMerge pull request #10625 from jkotas/debug
Jan Kotas [Fri, 31 Mar 2017 23:15:56 +0000 (16:15 -0700)]
Merge pull request #10625 from jkotas/debug

Move System.Diagnostics.Debug from corefx to coreclr

7 years agoTemporary removing string slice span bench test. (#10617)
Ahson Ahmed Khan [Fri, 31 Mar 2017 22:27:46 +0000 (15:27 -0700)]
Temporary removing string slice span bench test. (#10617)

* Temporary removing string slice bench test.

* Using if false directive to skip breaking tests

7 years agoAdded DisableInlining flag to the ProfileData.
Brian Sullivan [Fri, 31 Mar 2017 01:16:58 +0000 (18:16 -0700)]
Added DisableInlining flag to the ProfileData.
Extended CompileStatus to have both COMPILE_HOT_EXCLUDED and COMPILE_COLD_EXCLUDED.
Fixes the IsNull implementation
Fixes getBBProfileData to handle the case where pos can now be zero

7 years agoAdd altjit build for Windows x86-hosted, Windows ARM32 LEGACY_BACKEND target named...
Bruce Forstall [Fri, 31 Mar 2017 17:11:28 +0000 (10:11 -0700)]
Add altjit build for Windows x86-hosted, Windows ARM32 LEGACY_BACKEND target named legacynonjit.dll

7 years agoMerge pull request #10193 from mskvortsov/ryujit-arm32-fix-struct
Bruce Forstall [Fri, 31 Mar 2017 21:21:23 +0000 (14:21 -0700)]
Merge pull request #10193 from mskvortsov/ryujit-arm32-fix-struct

[RyuJIT/ARM32] Fix lvOnFrame for struct args

7 years agoChange the test hook from interface to delegate
Jan Kotas [Fri, 31 Mar 2017 20:33:53 +0000 (13:33 -0700)]
Change the test hook from interface to delegate

7 years agoFix build breaks
Jan Kotas [Fri, 31 Mar 2017 18:45:17 +0000 (11:45 -0700)]
Fix build breaks

7 years agoNS2.0 Inject more missing types into CoreRT by sharing them. (#10613)
Atsushi Kanamori [Fri, 31 Mar 2017 18:41:39 +0000 (11:41 -0700)]
NS2.0 Inject more missing types into CoreRT by sharing them. (#10613)

* NS2.0 Inject more missing types into CoreRT by sharing them.

- ArgIterator was cleaned up for sharing but actually
  sharing it today is too messy with TypedReference
  being in the wrong namespace on half of CoreRT.

  Some preparatory fixes discovered during the
  attempt will be going in on CoreRT...

* Leave RuntimeArgumentHandle and ArgIterator unshared.

7 years agoCopy System.Diagnostics.Debug implementation from corefx
Jan Kotas [Fri, 31 Mar 2017 18:18:51 +0000 (11:18 -0700)]
Copy System.Diagnostics.Debug implementation from corefx

7 years agoFallback for enum.Format(G) when not valid (#10610)
Ben Adams [Fri, 31 Mar 2017 17:50:36 +0000 (18:50 +0100)]
Fallback for enum.Format(G) when not valid (#10610)

7 years agoPrepare TimeZoneInfo.cs for move to shared partition. (#10606)
Atsushi Kanamori [Fri, 31 Mar 2017 14:20:30 +0000 (07:20 -0700)]
Prepare TimeZoneInfo.cs for move to shared partition. (#10606)

(This is the CoreRT side of https://github.com/dotnet/coreclr/pull/10606)

TimeZoneInfo.cs needs no changes but it brings in
another file CurrentTimeZone.cs.

Which drags in yet another file (Hashtable.cs)
which is widely used inside CoreCLR but aside
from this one file, it seems to be stuff that'll
will never be ported over or already has been
ported over sans Hashtable.

So we'll refactor the memoization logic of
CurrentTimeZone.cs into its own partial file
and share the rest. CoreCLR will use continue to use Hashtable.
CoreRT will use ConcurrentUnifier.

And while we're at it, will rename it to
CurrentSystemTimeZone.cs to match the actual class name.

Once we make a corresponding change on the CoreCLR side,
both TimeZone.cs and CurrentSystemTimeZone.cs will
be fully synced and can move to the shared partition.

7 years agoAdd assert to GCHeap::ValidateObjectMember (#10591)
Steve MacLean [Fri, 31 Mar 2017 02:06:23 +0000 (22:06 -0400)]
Add assert to GCHeap::ValidateObjectMember (#10591)

In presence of a corrupt heap, objects can contain
null method table.  Add assertion to prevent segfault
in checked/debug builds.

7 years agoAdd test coverage for ldtoken of open generic methods (#10592)
Michal Strehovský [Fri, 31 Mar 2017 02:00:24 +0000 (19:00 -0700)]
Add test coverage for ldtoken of open generic methods (#10592)

7 years agoMerge pull request #10593 from dotnet/standaloneservergc
Jeff Schwartz [Thu, 30 Mar 2017 23:37:42 +0000 (16:37 -0700)]
Merge pull request #10593 from dotnet/standaloneservergc

Enable StandAloneGC and Server GC

7 years ago[Ryujit/ARM32][ReadyToRun] Fix invocation to Thunk (#10348)
Hyung-Kyu Choi [Thu, 30 Mar 2017 22:40:19 +0000 (07:40 +0900)]
[Ryujit/ARM32][ReadyToRun] Fix invocation to Thunk (#10348)

Fix invocation to Thunk code from code generated from ReadyToRun.
Thunk code for ARM32 accept r12 as a parameter.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoEnable CROSS for testing (#10594)
Matt Mitchell [Thu, 30 Mar 2017 22:05:38 +0000 (15:05 -0700)]
Enable CROSS for testing (#10594)

7 years agoMerge pull request #10513 from briansull/profile-data
Brian Sullivan [Thu, 30 Mar 2017 22:03:49 +0000 (15:03 -0700)]
Merge pull request #10513 from briansull/profile-data

Crossgen support for ExcludeHotMethodCode and ExcludeColdMethodCode

7 years agoFix Issue #10022. (#10587)
Pat Gavlin [Thu, 30 Mar 2017 22:02:10 +0000 (15:02 -0700)]
Fix Issue #10022. (#10587)

This issue occurred because the JIT currently inserts the P/Invoke
method prolog into the first block of a function without ensuring that
this block will only execute once. This is not safe, as executing the
P/Invoke prolog multiple times can create cycles in the frame list and
casue the stack unwinder to hang.

This change ensures that lowering inserts a new, single-entry basic
block at the beginning of the function for functions that require P/Invoke prologs.

7 years agoFix tabs and spaces
Jeff Schwartz [Thu, 30 Mar 2017 22:01:26 +0000 (15:01 -0700)]
Fix tabs and spaces

7 years ago[x86/Linux] Use CDECL instead of STDCALL (#10410)
Jonghyun Park [Thu, 30 Mar 2017 21:20:01 +0000 (06:20 +0900)]
[x86/Linux] Use CDECL instead of STDCALL (#10410)

[x86/Linux] Use CDECL instead of STDCALL

Use STDCALL/THISCALL/FASTCALL if callconv is explicitly specified

Merge two adjustment (argument/alignment) into one

7 years agoMerge pull request #10228 from mskvortsov/ryujit-arm32-copy-barrier
Bruce Forstall [Thu, 30 Mar 2017 21:16:47 +0000 (14:16 -0700)]
Merge pull request #10228 from mskvortsov/ryujit-arm32-copy-barrier

[RyuJIT/ARM32] Enable GT_COPY and GT_MEMORYBARRIER

7 years agoMerge pull request #10588 from jashook/add_correct_failure_metadata_for_b08046
Jarret Shook [Thu, 30 Mar 2017 20:46:59 +0000 (13:46 -0700)]
Merge pull request #10588 from jashook/add_correct_failure_metadata_for_b08046

Re-disable b08046 and add correct metadata.

7 years agoChange necessary to enable standalonegc on server gc. Now CreateThread in gcenv...
Jeff Schwartz [Thu, 30 Mar 2017 20:41:39 +0000 (13:41 -0700)]
Change necessary to enable standalonegc on server gc.  Now CreateThread in gcenv.windows.cpp matches gcenv.os.cpp

7 years ago[Ryujit/ARM32] Implement NYI related with overflow for ARM (#10491)
Sujin Kim [Thu, 30 Mar 2017 20:37:13 +0000 (05:37 +0900)]
[Ryujit/ARM32] Implement NYI related with overflow for ARM (#10491)

* Implement NYI(overflow checks) for ARM

On last comment of #8496, the NYI message of overflow checks is printed after running the CodeGenBringUpTests.

That was the message about temp register setup for overflow checks.

It was referenced
https://github.com/dotnet/coreclr/blob/master/src/jit/lsraarm64.cpp#L399

I think it doesn't make any problem even though writing it the same as arm64.

* modifiy for coding convention

* Implement NYI : Unimplmented GT_CAST:int <--> int with overflow

I think it doesn't make any problem even though writing it the same as arm64.
So I copied parts of CodeGen::genIntToIntCast() and modified some below codes.

```
if (emitter::emitIns_valid_imm_for_cmp(castInfo.typeMax, cmpSize))
```
-->
```
if (emitter::emitIns_valid_imm_for_cmp(castInfo.typeMax, INS_FLAGS_DONT_CARE))
```

* Implement NYI : genLongToIntCast: overflow check

I copied and pasted codes from codegenxarch.cpp.
But It seemed be necessary that conditional execution values are changed by each architectures.
So I used 'genJumpKindForOper' for getting the emitJumpKind value.

The sample app has been checked to work well.

* Modify the implementation of emitter::emitIns_valid_imm_for_cmp

According to reference manual, I figured out CMP and ADD have different mechanisms on ARM unlike ARM64.
So I defined "...for_cmp" function not just use "..for_add" in the function likes ARM64.

7 years agoMerge pull request #10569 from sdmaclea/PR-FIX-10359
Joseph Tremoulet [Thu, 30 Mar 2017 18:57:06 +0000 (14:57 -0400)]
Merge pull request #10569 from sdmaclea/PR-FIX-10359

Handle null ref in Compiler::optCreateAssertion

7 years agoRe-disable b08046 and add correct metadata.
jashook [Thu, 30 Mar 2017 18:07:13 +0000 (11:07 -0700)]
Re-disable b08046 and add correct metadata.

\JIT\Regression\CLR-x86-JIT\V1.2-M01\b08046\b08046\b08046.cmd was disabled because the issue #2414
was closed but the tests tagged with that issue were not removed. b08046's correct issue is #4849.

7 years agoFix an issue where the DAC and GC versions of the heap_segment data structure did...
Sean Gillespie [Thu, 30 Mar 2017 17:11:28 +0000 (10:11 -0700)]
Fix an issue where the DAC and GC versions of the heap_segment data structure did not agree on the location of the heap field (#10576)

7 years agoFix formatting
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Thu, 30 Mar 2017 16:53:55 +0000 (16:53 +0000)]
Fix formatting

7 years agoFix magic number explanation in filetime.cpp (#10582)
Andrey Akinshin [Thu, 30 Mar 2017 13:25:42 +0000 (18:25 +0500)]
Fix magic number explanation in filetime.cpp (#10582)

89 * 366 + 280 * 365 equals to 134774 (not 134744)

7 years ago[Linux][GDB-JIT] Remove (nothrow) when using new (#10457)
Igor Kulaychuk [Thu, 30 Mar 2017 09:54:02 +0000 (12:54 +0300)]
[Linux][GDB-JIT] Remove (nothrow) when using new (#10457)

* Merge ByteTypeInfo into PrimitiveTypeInfo

* Remove ArrayTypeInfo ownership over its array element type

ArrayTypeInfo should not delete memory for its array element type
because element type is owned by NotifyGdb::PTK_TypeInfoMap.

* Make NamedRefTypeInfo to own its value type pointer

* Fix memory leak when creating ArrayTypeInfo

* Refactor creation of PrimitiveTypeInfo class

* Move code from GetTypeInfoFromTypeHandle to ClassTypeInfo constructor

* Move code from GetTypeInfoFromTypeHandle to RefTypeInfo constructor

* Remove (nothrow) usage from GetTypeInfoFromTypeHandle function

* Remove most usages of (nothrow) from gdbjit

* Remove all remaining (nothrow) usages from gdbjit

* Throw COR_E_NOTSUPPORTED from GetTypeInfoFromTypeHandle when dumping unsupported types

* Remove (nothrow) usage from MemBuf::Resize

* Use NewArrayHolder for vars in FunctionMember class

* Use NewArrayHolder for m_type_name in TypeInfoBase class

* Use NewArrayHolder for m_typedef_name in TypeDefInfo class

* Use NewArrayHolder for m_member_name in TypeMember class

* Use NewArrayHolder for m_var_name in VarDebugInfo class

* Use NewArrayHolder for members in ClassTypeInfo class

* Add m_symbol_name field to Elf_Symbol struct for managing symbol name memory

* Add m_value_type_storage field to NamedRefTypeInfo class for managing referenced type memory

* Remove CalledMethod list cleanup - avoid having dangling pointer in CodeHeader class

* Fix memory leak in GetMethodNativeMap function

* Simplify FunctionMemberPtrArrayHolder class

Since FunctionMemberPtrArrayHolder instance lifetime is limited to
NotifyGdb::MethodCompiled method, there is no need for complicated reallocation code.

* Wrap NotifyGdb::MethodCompiled endtry point in try/catch block

* Fix argument naming style - rename MethodDescPtr to methodDescPtr

7 years agoMerge pull request #10478 from noahfalk/fitjit
Noah Falk [Thu, 30 Mar 2017 06:24:57 +0000 (23:24 -0700)]
Merge pull request #10478 from noahfalk/fitjit

Tiered Compilation step 1

7 years agoUpdate CoreClr to preview1-25130-01 (#10573)
dotnet bot [Thu, 30 Mar 2017 03:49:47 +0000 (20:49 -0700)]
Update CoreClr to preview1-25130-01 (#10573)

7 years agoMerge pull request #10575 from adityamandaleeka/544701_reduce_consolewrites
Aditya Mandaleeka [Thu, 30 Mar 2017 02:37:00 +0000 (19:37 -0700)]
Merge pull request #10575 from adityamandaleeka/544701_reduce_consolewrites

Reduce console writes in 544701

7 years agoTiered Compilation step 1
noahfalk [Sat, 25 Mar 2017 05:43:47 +0000 (22:43 -0700)]
Tiered Compilation step 1

Tiered compilation is a new feature we are experimenting with that aims to improve startup times. Initially we jit methods non-optimized, then switch to an optimized version once the method has been called a number of times. More details about the current feature operation are in the comments of TieredCompilation.cpp.

This is only the first step in a longer process building the feature. The primary goal for now is to avoid regressing any runtime behavior in the shipping configuration in which the complus variable is OFF, while putting enough code in place that we can measure performance in the daily builds and make incremental progress visible to collaborators and reviewers. The design of the TieredCompilationManager is likely to change substantively, and the call counter may also change.

7 years agoAdd PGO support for Clang/LLVM on Unix (#10533)
Daniel Podder [Thu, 30 Mar 2017 02:01:55 +0000 (19:01 -0700)]
Add PGO support for Clang/LLVM on Unix (#10533)

Extend PGO support from VC++ on WIN32 to Clang/LLVM on UNIX as well.
* Just like on Windows: if profile data is missing, skip enabling PGO
  (allows non-PGO builds in branches where we don't publish PGO data).
* PGO with LTO requires additional dependencies (namely a discoverable
  `ld.gold` and `LLVMgold.so`). To protect against broken support and
  keep the build flexible across a wider array of distros, attempt to
  detect whether PGO compilation would work (using cmake's
  `try_compile()`), and fall back to a non-PGO/non-LTO build if the test
  fails.

7 years agoDelete moved files
Jan Kotas [Wed, 29 Mar 2017 23:01:23 +0000 (16:01 -0700)]
Delete moved files

7 years agoMerge pull request dotnet/corert#3141 from dotnet/nmirror
Jan Kotas [Wed, 29 Mar 2017 18:45:24 +0000 (11:45 -0700)]
Merge pull request dotnet/corert#3141 from dotnet/nmirror

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoRevert "TimeSpan.FromMilliseconds(TimeSpan.MaxValue.TotalMilliseconds) exception...
Stephen Toub [Thu, 30 Mar 2017 01:30:23 +0000 (21:30 -0400)]
Revert "TimeSpan.FromMilliseconds(TimeSpan.MaxValue.TotalMilliseconds) exception fix (#10352)" (#10552)

This reverts commit 7951bc9accbbf9552d9b5c8105df8f5a32d6c3ab.

7 years agoAdded two new profile data flags: ExcludeHotMethodCode and ExcludeColdMethodCode
Brian Sullivan [Tue, 28 Mar 2017 00:00:51 +0000 (17:00 -0700)]
Added two new profile data flags: ExcludeHotMethodCode and ExcludeColdMethodCode

Refactored zapimage CompileProfileData into four new methods:
CompileHotRegion, CompileColdRegion, PlaceMethodIL and ProfileDisableInlining

Preserve the CompileStatus and methodProfilingDataFlags used when we compile methods during CompileHotRegion()
Then during CompileColdRegion retrieve these value and exclude the method from the AOT native image if the status is COMPILE_EXCLUDED.

7 years agoReduce console writes in 544701.
Aditya Mandaleeka [Thu, 30 Mar 2017 00:41:08 +0000 (17:41 -0700)]
Reduce console writes in 544701.

7 years agoReflect PortableRIDs in Identity packages (#10567)
Gaurav Khanna [Wed, 29 Mar 2017 23:34:58 +0000 (16:34 -0700)]
Reflect PortableRIDs in Identity packages (#10567)

7 years ago[Linux/x86] Change non-PR Linux/x86 build CI job to daily job (#10551)
Hyeongseok Oh [Wed, 29 Mar 2017 23:31:52 +0000 (08:31 +0900)]
[Linux/x86] Change non-PR Linux/x86 build CI job to daily job (#10551)

This commit change non-PR Linux/x86 build CI job to daily job.
This job only perform build process now,
but it will be perform Linux/x86 CoreCLR unittest later.
And build result could be used for Linux/x86 CoreFX unittest.

7 years agoSwitch to produce Preview1 packages (#9886)
Gaurav Khanna [Wed, 29 Mar 2017 22:55:28 +0000 (15:55 -0700)]
Switch to produce Preview1 packages (#9886)

7 years agoMerge pull request #10506 from adityamandaleeka/handle_table_local_gc_init
Aditya Mandaleeka [Wed, 29 Mar 2017 21:55:34 +0000 (14:55 -0700)]
Merge pull request #10506 from adityamandaleeka/handle_table_local_gc_init

Create an IGCHandleTable interface

7 years agoHandle null ref in Compiler::optCreateAssertion
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Wed, 29 Mar 2017 21:07:26 +0000 (21:07 +0000)]
Handle null ref in Compiler::optCreateAssertion

Code as recommended by Eugene Rozenfeld in #10359

Fixes #10359

7 years agoJIT: improve types for single def locals and temps (#10471)
Andy Ayers [Wed, 29 Mar 2017 21:16:46 +0000 (14:16 -0700)]
JIT: improve types for single def locals and temps (#10471)

* JIT: improve types for single def locals and temps

Track whether a local has a single definition, and if so, if it has
a reference type, try and update its type from the declared type to
a better type taken from the value being assigned to the local.

Obtain types for some of the 'short-lived' ref type temps that should
have a single definition. Use both the tree and the eval stack as sources
of type information (the latter can be phased out if/when all tree nodes
can return rich type information).

Refactor the code that sets or updates lvClassHnd into utilities
to provide better auditing of type flow and make the set/update process
a bit more rigorous.

Cleanup the code that passes argument values a bit by commoning redundant
argument lookup expressions.

7 years agoMerge pull request #10564 from JosephTremoulet/SelfAssign
Joseph Tremoulet [Wed, 29 Mar 2017 21:14:42 +0000 (17:14 -0400)]
Merge pull request #10564 from JosephTremoulet/SelfAssign

Take fields into account checking for self-assign

7 years agoUpdate CoreClr, CoreFx to beta-25129-03, beta-25129-02, respectively (#10539)
dotnet bot [Wed, 29 Mar 2017 21:12:21 +0000 (14:12 -0700)]
Update CoreClr, CoreFx to beta-25129-03, beta-25129-02, respectively (#10539)

7 years agochange JitEE interface signature for getReadyToRunDelegateCtorHelper (#10562)
dotnet bot [Wed, 29 Mar 2017 20:21:41 +0000 (13:21 -0700)]
change JitEE interface signature for getReadyToRunDelegateCtorHelper (#10562)

[tfs-changeset: 1652444]

7 years agoFix some bugs in Linux ILLINK testing.
Swaroop Sridhar [Wed, 29 Mar 2017 01:51:56 +0000 (18:51 -0700)]
Fix some bugs in Linux ILLINK testing.

Fix a few problems in the <test>.sh generation for
running CoreCLR tests on Linux via ILLINK

7 years agoCreate a GCHandleTable interface with Init/Shutdown.
Aditya Mandaleeka [Thu, 23 Mar 2017 23:23:05 +0000 (16:23 -0700)]
Create a GCHandleTable interface with Init/Shutdown.

7 years agoRe-enable multi-queue for coreclr (#10541)
smile21prc [Wed, 29 Mar 2017 18:52:25 +0000 (11:52 -0700)]
Re-enable multi-queue for coreclr (#10541)

* Add multiqueue Support for coreclr.

Add multiqueue Support for coreclr.

* Upload build results to ONE linux container

Upload build results to ONE linux container

* Fix helixpublish.proj

Fix helixpublish.proj

* Adding more logs.

Adding more logs.

* Revert logging changes.

Revert logging changes.

* Use build version containing support of "+" delimiter

Use build version containing support of "+" delimiter

* Fix indention.

Fix indention.

* Update to use latest tools.

Update to use latest tools.

* Use an older tool as latest has a wired error on "Run build.sh" step.

Error details:
2017-03-28T23:30:13.2659430Z Running:
/root/coreclr/Tools/dotnetcli/dotnet /root/coreclr/Tools/run.exe
/root/coreclr/config.json build -Project=/root/coreclr/build.proj
-MsBuildLog=/flp:Verbosity=normal;LogFile=/root/coreclr/bin/Logs/System.Private.CoreLib_Checked.log
-BuildTarget -__IntermediatesDir=/root/coreclr/bin/obj/Linux.x64.Checked
-__RootBinDir=/root/coreclr/bin -BuildNugetPackage=false
-UseSharedCompilation=false -BuildArch=x64 -BuildType=Checked
-BuildOS=Linux
-OptimizationDataDir="/root/coreclr/packages/optimization.Linux-x64.IBC.CoreCLR//data/"
-EnableProfileGuidedOptimization=true -skiprestore
-OfficialBuildId=20170329-01 -- /p:ConfigurationGroup=Release
/flp:v=diag
2017-03-28T23:30:13.6855470Z Running: /root/coreclr/Tools/msbuild.sh
/nologo /verbosity:minimal /clp:Summary /maxcpucount
/l:BinClashLogger,Tools/net46/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log
/p:RestoreDuringBuild=false  /root/coreclr/build.proj
/p:__BuildType=Checked /p:__BuildArch=x64 /p:__BuildOS=Linux
/p:__RootBinDir=/root/coreclr/bin
/p:__IntermediatesDir=/root/coreclr/bin/obj/Linux.x64.Checked
/p:OfficialBuildId=20170329-01 /p:EnableProfileGuidedOptimization=true
/p:OptimizationDataDir="/root/coreclr/packages/optimization.Linux-x64.IBC.CoreCLR//data/"

/flp:Verbosity=normal;LogFile=/root/coreclr/bin/Logs/System.Private.CoreLib_Checked.log
/p:BuildNugetPackage=false /t:Build /p:UseSharedCompilation=false
/p:ConfigurationGroup=Release /flp:v=diag
2017-03-28T23:30:15.5843800Z
/root/coreclr/Tools/Microsoft.CSharp.CurrentVersion.targets(321,5):
error MSB4019: The imported project
"/root/coreclr/Tools/Microsoft.Net.Compilers/2.0.0-rc/tools/Microsoft.CSharp.Core.targets"
was not found. Confirm that the path in the <Import> declaration is
correct, and that the file exists on disk.
[/root/coreclr/src/ToolBox/SOS/NETCore/SOS.NETCore.csproj]
2017-03-28T23:30:16.6459770Z
/root/coreclr/Tools/Microsoft.CSharp.CurrentVersion.targets(321,5):
error MSB4019: The imported project
"/root/coreclr/Tools/Microsoft.Net.Compilers/2.0.0-rc/tools/Microsoft.CSharp.Core.targets"
was not found. Confirm that the path in the <Import> declaration is
correct, and that the file exists on disk.
[/root/coreclr/src/mscorlib/System.Private.CoreLib.csproj]

* New builds have errors, revert to use older builds.

New builds have errors, revert to use older builds.

7 years agoMerge pull request #10446 from rahku/fix9879
Rahul Kumar [Wed, 29 Mar 2017 18:50:38 +0000 (11:50 -0700)]
Merge pull request #10446 from rahku/fix9879

Allow assemblies in TPA to loaded using LoadFrom

7 years agoAdd shared directory README (#10535)
Alex Perovich [Wed, 29 Mar 2017 18:41:45 +0000 (13:41 -0500)]
Add shared directory README (#10535)

* Add shared directory README

* PR feedback

7 years agoTake fields into account checking for self-assign
Joseph Tremoulet [Tue, 28 Mar 2017 18:56:27 +0000 (14:56 -0400)]
Take fields into account checking for self-assign

The code in `fgMorphCopyBlock` that removes self-assigns checks if the LHS
and RHS refer to the same `lclVar`; update it to also check if the LHS and
RHS refer to the same field(s) of that `lclVar`, since otherwise copies
from one field to another of a struct can get lost.

Fixes #10481.

7 years agoFix indentation of diagram in comment (#10554)
Hyung-Kyu Choi [Wed, 29 Mar 2017 17:28:13 +0000 (02:28 +0900)]
Fix indentation of diagram in comment (#10554)

Fix indentation of diagram in comment
in Compiler::fgRecognizeAndMorphBitwiseRotation

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoFix duplicate fcall entries for GetAssemblyName (#10546)
Rahul Kumar [Wed, 29 Mar 2017 17:26:35 +0000 (10:26 -0700)]
Fix duplicate fcall entries for GetAssemblyName (#10546)