platform/upstream/coreclr.git
8 years agoNull check folding.
Eugene Rozenfeld [Fri, 5 Aug 2016 20:14:58 +0000 (13:14 -0700)]
Null check folding.

1. Added a null check folding optimization to early prop. The optimization tries to fold
GT_NULLCHECK(y) nodes  into GT_IND(x) nodes where x=y+const
in the same block (where const is sufficiently small). The algorithm uses SSA use-def info
to go from x to its def and then tries to match the pattern x = COMMA(NULLCHECK(y), ADD(y, const))).
If such a pattern is found, the algorithm checks the trees and statements that are between the use
and the def in execution order to see if they have unsafe side effects: calls, exception sources, and
assignments (all assignment if we are in a try and assignments to global memory if we are not).
If there are no nodes with unsafe side effects, the null check is removed.

2. Made several improvements to null check elimination in assertion propagation.
..* Added a new kind for op1: O1K_VALUE_NUMBER
..* Non-null assertions can now be made about arbitrary value numbers, not just locals
..* Fixed code that was trying to find a ref given a byref: the code now handles an arbitrary number of
    offsets and checks whether the total offsetof is small enough.
..* Added similar code that tries to find a ref VN given a byref VN

This addresses part of the suboptimal code generated for #1226: null check is no longer emitted.

Correctness: ran full desktop and CoreCLR testing.

Throughput: no measurable throughput impact (verified by running internal CQNgenTP several times).

Code size in CoreCLR:

Framework assemblies:

Total bytes of diff: -805 (-0.01 % of base)
    diff is an improvement.
Total byte diff includes 0 bytes from reconciling methods
        Base had    0 unique methods,        0 unique bytes
        Diff had    0 unique methods,        0 unique bytes
Top file improvements by size (bytes):
        -352 : System.Private.CoreLib.dasm (-0.01 % of base)
        -306 : Microsoft.CodeAnalysis.CSharp.dasm (-0.01 % of base)
         -58 : Microsoft.CodeAnalysis.dasm (-0.01 % of base)
         -48 : System.Numerics.Vectors.dasm (-0.08 % of base)
         -14 : System.Xml.XmlDocument.dasm (-0.01 % of base)
7 total files with size differences.
Top method improvements by size (bytes):
         -30 : System.Numerics.Vectors.dasm - System.Numerics.Matrix4x4:ToString():ref:this
         -30 : System.Private.CoreLib.dasm - System.DateTimeParse:ParseByFormat(byref,byref,byref,ref,byref):bool
         -24 : Microsoft.CodeAnalysis.CSharp.dasm - <GetMethodsToEmit>d__68:MoveNext():bool:this
         -18 : System.Private.CoreLib.dasm - System.DateTimeParse:Lex(int,byref,byref,byref,byref,byref,int):bool
         -18 : System.Private.CoreLib.dasm - System.DateTimeParse:ProcessDateTimeSuffix(byref,byref,byref):bool
243 total methods with size differences.

JIT Code quality benchmarks in CoreCLR:

Total bytes of diff: -29 (-0.01 % of base)
    diff is an improvement.
Total byte diff includes 0 bytes from reconciling methods
        Base had    0 unique methods,        0 unique bytes
        Diff had    0 unique methods,        0 unique bytes
Top file improvements by size (bytes):
         -25 : Bytemark\Bytemark\Bytemark.dasm (-0.03 % of base)
          -4 : BenchmarksGame\pidigits\pi-digits\pi-digits.dasm (-0.21 % of base)
2 total files with size differences.
Top method improvements by size (bytes):
          -9 : Bytemark\Bytemark\Bytemark.dasm - AssignJagged:second_assignments(ref,ref)
          -6 : Bytemark\Bytemark\Bytemark.dasm - EMFloat:MultiplyInternalFPF(byref,byref,byref)
          -4 : Bytemark\Bytemark\Bytemark.dasm - EMFloat:AddSubInternalFPF(ubyte,byref,byref,byref)
          -2 : Bytemark\Bytemark\Bytemark.dasm - EMFloat:denormalize(byref,int)
          -2 : Bytemark\Bytemark\Bytemark.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
8 total methods with size differences.

In internal SPMI:

3915 methods with diffs, almost everything -- code size improvements
13,715 bytes code size reduction overall 0.51% on affected methods

CQ_Perf: 85 methods with diffs, 84 code size improvements, no regressions
Benchmarks with code size diffs:
Roslyn 59
TrueTypeBench 19
mono-pi-digits 2
mono-chameneos-redux 2
ByteMark\assign_jagged 1
Json_Serialize 1
SharpChess 1
BenchI\mulmtx 1

Internal CQPerf didn't report any runtime wins for these benchmarks.

8 years agoAdding Support for FieldDescSlot generic dictionary entries for R2R generic code...
Fadi Hanna [Thu, 4 Aug 2016 01:00:49 +0000 (18:00 -0700)]
Adding Support for FieldDescSlot generic dictionary entries for R2R generic code. (#6200)

This enables generic code with ldtoken instructions for fields on generic types to be compiled into R2R.

This change makes newer versions of the runtime compatible with older version R2R images,
but not vice-versa. Therefore, the major version is increased to 2 with this change.

This change adds more encodings to a R2R image without changing the format of any previously encoded
entity, and is backwards compatible.

8 years agoMerge pull request #6592 from Priya91/runpath
Lakshmi Priya [Wed, 3 Aug 2016 22:10:22 +0000 (15:10 -0700)]
Merge pull request #6592 from Priya91/runpath

Modify rebuild scenario.

8 years agoUpdate documentation on how to build corefx (#6594)
Mariana Rios Flores [Wed, 3 Aug 2016 21:55:04 +0000 (14:55 -0700)]
Update documentation on how to build corefx (#6594)

8 years agoMerge pull request #6586 from kyulee1/fixbuildtest
Kyungwoo Lee [Wed, 3 Aug 2016 20:50:26 +0000 (13:50 -0700)]
Merge pull request #6586 from kyulee1/fixbuildtest

ARM64: Fix Build Test Break

8 years agoModify rebuild scenario.
Lakshmi Priya Sekar [Wed, 3 Aug 2016 20:31:06 +0000 (13:31 -0700)]
Modify rebuild scenario.

8 years agoMerge pull request #6534 from RussKeldorph/fix6236
Russ Keldorph [Wed, 3 Aug 2016 19:40:25 +0000 (12:40 -0700)]
Merge pull request #6534 from RussKeldorph/fix6236

Fix build warnings in Vector3Interop test

8 years agoMerge pull request #6578 from rahku/version
Rahul Kumar [Wed, 3 Aug 2016 19:32:04 +0000 (12:32 -0700)]
Merge pull request #6578 from rahku/version

RC2 release used version 4.6.*. However RTM release started to use th…

8 years agoARM64: Fix Build Test Break
Kyungwoo Lee [Wed, 3 Aug 2016 16:26:41 +0000 (09:26 -0700)]
ARM64: Fix Build Test Break

8 years agoMerge pull request #6584 from kyulee1/distest
Kyungwoo Lee [Wed, 3 Aug 2016 05:32:06 +0000 (22:32 -0700)]
Merge pull request #6584 from kyulee1/distest

ARM64: Disable Two Tests

8 years agoMerge pull request #6529 from JosephTremoulet/AssertionOrder
Joseph Tremoulet [Wed, 3 Aug 2016 03:15:19 +0000 (23:15 -0400)]
Merge pull request #6529 from JosephTremoulet/AssertionOrder

Optimize bounds checks with correct assertion set

8 years agoARM64: Disable Two Tests
Kyungwoo Lee [Wed, 3 Aug 2016 00:55:19 +0000 (17:55 -0700)]
ARM64: Disable Two Tests

https://github.com/dotnet/coreclr/issues/6583

8 years agoMerge pull request #6576 from Priya91/runpath
Brian Sullivan [Wed, 3 Aug 2016 01:00:52 +0000 (18:00 -0700)]
Merge pull request #6576 from Priya91/runpath

Use absolute paths for specifying projects to build.

8 years agoRC2 release used version 4.6.*. However RTM release started to use the default values...
Rahul Kumar [Tue, 2 Aug 2016 22:40:23 +0000 (15:40 -0700)]
RC2 release used version 4.6.*. However RTM release started to use the default values of 1.0.* by mistake. Revert back to using 4.6 as major & minor version number

8 years agoOptimize bounds checks with correct assertion set
Joseph Tremoulet [Mon, 18 Jul 2016 16:56:37 +0000 (12:56 -0400)]
Optimize bounds checks with correct assertion set

Assertion prop defers removing redundant bounds checks until processing
the parent comma, because the rewrite involves the comma as well.  The
code currently has a bug in that its check for whether the bounds check
is redundant also occurs when processing reaches the comma, which is wrong
because the assertion set may then include assertions generated by the RHS
of the comma (there is code to compensate for the assertion generated by
the bounds check itself, which is the LHS of the comma, but no compensation
for the RHS).

This change moves the analysis of whether bounds checks are redundant to
the proper spot in the processing order, and delays only the rewrite to
the processing of the comma; the redundancy of the bounds check is
communicated via a new opcode-specific flag: GTF_ARR_BOUND_INBND.

Fixes #6318.

8 years agoUpdate cross-building.md
Lakshmi Priya [Tue, 2 Aug 2016 21:17:17 +0000 (14:17 -0700)]
Update cross-building.md

8 years agoUpdate windows-test-instructions.md
Lakshmi Priya [Tue, 2 Aug 2016 21:15:45 +0000 (14:15 -0700)]
Update windows-test-instructions.md

8 years agoUpdate unix-test-instructions.md
Lakshmi Priya [Tue, 2 Aug 2016 21:14:23 +0000 (14:14 -0700)]
Update unix-test-instructions.md

8 years agoFix build warnings in Vector3Interop test
Russ Keldorph [Fri, 29 Jul 2016 22:19:39 +0000 (15:19 -0700)]
Fix build warnings in Vector3Interop test

Fixes #6236

8 years agoSwallow exception in gc_heap::fire_etw_allocation_event (#6571)
Jan Vorlicek [Tue, 2 Aug 2016 20:35:06 +0000 (22:35 +0200)]
Swallow exception in gc_heap::fire_etw_allocation_event (#6571)

The gc_heap::fire_etw_allocation_event calls TypeHandle::GetName that can throw
due to OOM. But we don't want failures to fire event cause a failure during the GC,
so such exception should be swallowed and no event fired in such case.
This was discovered as a contract failure during test runs with ETW logging enabled
when this function was transitively called from Thread::PerformPreemptiveGC which
was recently modified to have NOTHROW contract.
Interestingly, this was not detected by the static contract checker.

8 years agoUpdate windows-instructions.md
Lakshmi Priya [Tue, 2 Aug 2016 20:13:43 +0000 (13:13 -0700)]
Update windows-instructions.md

8 years agoUse absolute paths for specifying projects to build.
Lakshmi Priya Sekar [Tue, 2 Aug 2016 19:18:47 +0000 (12:18 -0700)]
Use absolute paths for specifying projects to build.

8 years agoMerge pull request #6564 from kyulee1/fixbuild
Kyungwoo Lee [Tue, 2 Aug 2016 18:35:22 +0000 (11:35 -0700)]
Merge pull request #6564 from kyulee1/fixbuild

ARM64: Fix Build Break

8 years agoSlightly increase throughput of string.Concat(object[]) (#6547)
James Ko [Tue, 2 Aug 2016 07:02:41 +0000 (03:02 -0400)]
Slightly increase throughput of string.Concat(object[]) (#6547)

8 years agoMerge pull request #6566 from Priya91/run2
Lakshmi Priya [Tue, 2 Aug 2016 05:12:07 +0000 (22:12 -0700)]
Merge pull request #6566 from Priya91/run2

Change processing of args in build scripts to keep =.

8 years agoARM64: Fix Build Break
Kyungwoo Lee [Mon, 1 Aug 2016 23:49:32 +0000 (16:49 -0700)]
ARM64: Fix Build Break

8 years agoChange int return values to BOOL for coreclr delegates (#6551)
Evgeny Pavlov [Tue, 2 Aug 2016 01:53:15 +0000 (04:53 +0300)]
Change int return values to BOOL for coreclr delegates (#6551)

8 years agoMerge pull request #6560 from dotnet-bot/from-tfs
Jan Kotas [Tue, 2 Aug 2016 01:50:01 +0000 (18:50 -0700)]
Merge pull request #6560 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoRename ZeroFreeMemoryUTF8 to ZeroFreeCoTaskMemUTF8 in ref (#6561)
tijoytom [Tue, 2 Aug 2016 01:49:10 +0000 (18:49 -0700)]
Rename ZeroFreeMemoryUTF8 to ZeroFreeCoTaskMemUTF8 in ref (#6561)

8 years agoDocumentation: Additional optimization levels for ARM/Linux (#6548)
Geunsik Lim [Tue, 2 Aug 2016 01:48:12 +0000 (10:48 +0900)]
Documentation: Additional optimization levels for ARM/Linux (#6548)

This instruction is to enable -Ofast or -Oz optimization level of clang on ARM/Linux.
Below is file-size comparison result of major components among -O3, -Ofast,
and -Oz on ARM/Linux-based Raspberry Pi2 board (Ubuntu/ARM 14.04 32bit).

* Linux/ARM: Release Build + O3(default): stripped , commit: 561b64d2c210b4d999de7f1ac55756704eaba784 (Jul-26-2016)
------------------------------------------------------------------------------------------------------------------
-rwxr-xr-x 1 leemgs leemgs     18,472 Jul 27 16:14 corerun
-rwxr-xr-x 1 leemgs leemgs  1,512,828 Jul 27 18:33 libclrjit.so
-rwxr-xr-x 1 leemgs leemgs  4,525,328 Jul 27 18:33 libcoreclr.so
-rwxr--r-- 1 leemgs leemgs     29,696 Jul 27 00:55 ./mscorlib.dll
-rwxr--r-- 1 leemgs leemgs  2,211,840 Jul 27 00:54 ./System.Private.CoreLib.dll
Total:   8,298,164 bytes

* Linux/ARM: Release Build + Ofast: stripped , commit: 561b64d2c210b4d999de7f1ac55756704eaba784 (Jul-26-2016)
-------------------------------------------------------------------------------------------------------------
-rwxr-xr-x 1 leemgs leemgs    18,496 Jul 26 05:00 ./corerun
-rwxr-xr-x 1 leemgs leemgs 1,512,844 Jul 26 04:59 ./libclrjit.so
-rwxr-xr-x 1 leemgs leemgs 4,525,360 Jul 26 04:59 ./libcoreclr.so
-rwxr--r-- 1 leemgs leemgs    29,696 Jul 26 00:49 ./mscorlib.dll
-rwxr--r-- 1 leemgs leemgs 2,211,840 Jul 26 00:48 ./System.Private.CoreLib.dll
Total:   8,298,236 bytes

* Linux/ARM: Release Build + Oz: stripped , commit: 561b64d2c210b4d999de7f1ac55756704eaba784 (Jul-26-2016)
---------------------------------------------------------------------------------------------------------
-rwxr-xr-x 1 leemgs leemgs    14,400 Jul 29 05:02 ./corerun
-rwxr-xr-x 1 leemgs leemgs 1,181,160 Jul 29 04:40 ./libclrjit.so
-rwxr-xr-x 1 leemgs leemgs 3,407,200 Jul 29 04:40 ./libcoreclr.so
-rwxr--r-- 1 leemgs leemgs    29,696 Jul 29 00:49 ./mscorlib.dll
-rwxr--r-- 1 leemgs leemgs 2,211,840 Jul 29 00:48 ./System.Private.CoreLib.dll
Total:  6,844,296 bytes

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
8 years agoMerge pull request #6565 from Priya91/checkrun
Lakshmi Priya [Tue, 2 Aug 2016 01:33:45 +0000 (18:33 -0700)]
Merge pull request #6565 from Priya91/checkrun

Add /m option for builds.

8 years agoChange processing of args in build scripts to keep =.
Lakshmi Priya Sekar [Tue, 2 Aug 2016 01:06:30 +0000 (18:06 -0700)]
Change processing of args in build scripts to keep =.

8 years agoMerge pull request #6533 from pgavlin/LSRA
Pat Gavlin [Tue, 2 Aug 2016 00:24:22 +0000 (17:24 -0700)]
Merge pull request #6533 from pgavlin/LSRA

Replace the LSRA stack with a hash table.

8 years agoAdd /m option for builds.
Lakshmi Priya Sekar [Tue, 2 Aug 2016 00:11:40 +0000 (17:11 -0700)]
Add /m option for builds.

8 years agoMerge pull request #6546 from pgavlin/LivenessCleanup
Pat Gavlin [Mon, 1 Aug 2016 23:44:01 +0000 (16:44 -0700)]
Merge pull request #6546 from pgavlin/LivenessCleanup

Refactor fgComputeLife.

8 years agoAdd function headers for new liveness methods.
Pat Gavlin [Mon, 1 Aug 2016 23:42:15 +0000 (16:42 -0700)]
Add function headers for new liveness methods.

In particular, `Compiler::fgComputeLife{Call,Local}` now have function
headers.

8 years agoMerge pull request #6557 from Priya91/runfix
Lakshmi Priya [Mon, 1 Aug 2016 23:05:21 +0000 (16:05 -0700)]
Merge pull request #6557 from Priya91/runfix

Fix errors in build scripts from run tool update.

8 years agoMerge pull request #6366 from pgavlin/RemoveEmbeddedStatementsPlan
Pat Gavlin [Mon, 1 Aug 2016 22:36:23 +0000 (15:36 -0700)]
Merge pull request #6366 from pgavlin/RemoveEmbeddedStatementsPlan

Add the proposal for embedded statement removal.

8 years agoReplace the LSRA stack with a hash table.
Pat Gavlin [Tue, 26 Jul 2016 13:27:06 +0000 (06:27 -0700)]
Replace the LSRA stack with a hash table.

LSRA currently uses a stack to find the `LocationInfo` for each register consumed
by a node. The changes in this stack's contents given a particular node are
governed by three factors:
- The number of registers the node consumes (`gtLsraInfo.srcCount`)
- The number of registers the node produces (`gtLstaInfo.dstCount`)
- Whether or not the node produces an unused value (`gtLsraInfo.isLocalDefUse`)

In all cases, `gtLsraInfo.srcCount` values are popped off of the stack in the
order in which they were pushed (i.e. in FIFO rather than LIFO order). If the
node produces a value that will be used, `gtLsraInfo.dstCount` values are
then pushed onto the stack. If the node produces an unused value, nothing is
pushed onto the stack.

Naively, it would appear that the number of registers a node consumes would be
at least the count of the node's non-leaf operands (to put it differently, one
might assume that any non-leaf operator that produces a value would define at
least one register). However, contained nodes complicate the situation: because
a contained node's execution is subsumed by its user, the contained node's
sources become sources for its user and the contained node does not define any
registers. As a result, both the number of registers consumed and the number of
registers produced by a contained node are 0. Thus, contained nodes do not
update the stack, and the node's parent (if it is not also contained) will
pop the values produced by the contained node's operands. Logically speaking,
it is as if a contained node defines the transitive closure of the registers
defined by its own non-contained operands.

The use of the stack relies on the property that even in linear order the
JIT's IR is still tree ordered. That is to say, given an operator and its
operands, any nodes that execute between any two operands do not produce
SDSU temps that are consumed after the second operand. IR with such a
shape would unbalance the stack.

The planned move to the LIR design given in #6366 removes the tree order
constraint in order to simplify understanding and manipulating the IR in the
backend. Because LIR may not be tree ordered, LSRA may no longer use a stack
to find the `LocationInfo` for a node's operands. This change replaces the
stack with a map from nodes to lists of `LocationInfo` values, each of
which describes a register that is logically defined (if not physically
defined) by that node. Only contained nodes logically define registers that
they do not physically define: contained nodes map to the list of
`LocationInfo` values logically defined by their operands. All non-contained
nodes map to the list of `LocationInfo` values that they physically define.
Non-contained nodes that do not define any registers are not inserted into
the map.

8 years agoAdd ExtraParameters to config.json to enable --.
Lakshmi Priya Sekar [Mon, 1 Aug 2016 20:26:14 +0000 (13:26 -0700)]
Add ExtraParameters to config.json to enable --.

8 years agoFix errors in build scripts from run tool update.
Lakshmi Priya Sekar [Mon, 1 Aug 2016 19:02:24 +0000 (12:02 -0700)]
Fix errors in build scripts from run tool update.

8 years agoInitialize `doAgain`.
Pat Gavlin [Mon, 1 Aug 2016 00:04:27 +0000 (17:04 -0700)]
Initialize `doAgain`.

8 years agoRefactor fgComputeLife.
Pat Gavlin [Sun, 31 Jul 2016 21:41:09 +0000 (14:41 -0700)]
Refactor fgComputeLife.

- Extract the liveness computations for call and local var nodes out into
  fgComputeLifeCall and fgComputeLifeLocal, respectively.
- Split fgComputeLife into two versions: one for the RyuJIT backend and
  one for the legacy backend. The former leaves out the QMARK/COLON
  processing that is necessary in the latter.

8 years agoMerge pull request #6491 from adiaaida/formatting2
Michelle McDaniel [Mon, 1 Aug 2016 14:46:14 +0000 (07:46 -0700)]
Merge pull request #6491 from adiaaida/formatting2

Massage code for clang-format

8 years agoMerge pull request #6400 from Priya91/useruntool
Lakshmi Priya [Mon, 1 Aug 2016 03:38:06 +0000 (20:38 -0700)]
Merge pull request #6400 from Priya91/useruntool

Use run tool in coreclr dev workflow.

8 years agoUpdate linux-performance-tracing.md
Lorenzo Tessiore [Sat, 30 Jul 2016 15:33:47 +0000 (08:33 -0700)]
Update linux-performance-tracing.md

8 years agoApply run on recent changes in master.
Lakshmi Priya Sekar [Sat, 30 Jul 2016 00:53:02 +0000 (17:53 -0700)]
Apply run on recent changes in master.

8 years agoRespond to PR feedback.
Lakshmi Priya Sekar [Fri, 29 Jul 2016 20:51:43 +0000 (13:51 -0700)]
Respond to PR feedback.

8 years agoRemove clean option from arm script, which deletes the copied test bits in CI.
Lakshmi Priya Sekar [Thu, 28 Jul 2016 19:19:19 +0000 (12:19 -0700)]
Remove clean option from arm script, which deletes the copied test bits in CI.

8 years agoGrant 777 for run.sh
Lakshmi Priya Sekar [Thu, 28 Jul 2016 18:44:55 +0000 (11:44 -0700)]
Grant 777 for run.sh

8 years agoUse run tool in coreclr dev workflow.
Lakshmi Priya Sekar [Thu, 14 Jul 2016 22:42:33 +0000 (15:42 -0700)]
Use run tool in coreclr dev workflow.

8 years agoMerge pull request #6493 from rahku/crossgen
Rahul Kumar [Fri, 29 Jul 2016 22:22:40 +0000 (15:22 -0700)]
Merge pull request #6493 from rahku/crossgen

adds testhost package

8 years agoadds testhost package
Rahul Kumar [Wed, 27 Jul 2016 22:50:56 +0000 (15:50 -0700)]
adds testhost package

8 years agoMerge pull request #6521 from adityamandaleeka/remove_internal_free
Aditya Mandaleeka [Fri, 29 Jul 2016 21:13:05 +0000 (14:13 -0700)]
Merge pull request #6521 from adityamandaleeka/remove_internal_free

Remove CorUnix::InternalFree from PAL

8 years agoMerge pull request #6281 from papaslavik/cse_sort_sz
Brian Sullivan [Fri, 29 Jul 2016 20:56:44 +0000 (13:56 -0700)]
Merge pull request #6281 from papaslavik/cse_sort_sz

The sort for CSE size optimization should be different from exec

8 years agoMerge pull request #6515 from kyulee1/fixcontract
Kyungwoo Lee [Fri, 29 Jul 2016 20:42:00 +0000 (13:42 -0700)]
Merge pull request #6515 from kyulee1/fixcontract

Remove useless contract in EventListener

8 years agoMerge pull request #6479 from dagood/update-dependencies
William Godbe [Fri, 29 Jul 2016 19:34:30 +0000 (12:34 -0700)]
Merge pull request #6479 from dagood/update-dependencies

Using full versions, update CoreFX dependencies to beta-24326-03

8 years agoFix a build break.
Pat Gavlin [Fri, 29 Jul 2016 18:58:10 +0000 (11:58 -0700)]
Fix a build break.

[tfs-changeset: 1619855]

8 years agoUsing full versions, update CoreFX dependencies to beta-24328-05.
Davis Goodin [Tue, 26 Jul 2016 20:42:20 +0000 (15:42 -0500)]
Using full versions, update CoreFX dependencies to beta-24328-05.

To fix tests, change dnxcore50 -> netcoreapp1.0 and add test_runtime.

8 years agoMerge pull request #6506 from gkhanna79/FixReflectionLoadContext
Gaurav Khanna [Fri, 29 Jul 2016 17:04:51 +0000 (10:04 -0700)]
Merge pull request #6506 from gkhanna79/FixReflectionLoadContext

Enable RefEmitted assemblies to have Fallback LoadContext notion

8 years agoMassage code for clang-format
Michelle McDaniel [Fri, 24 Jun 2016 21:10:52 +0000 (14:10 -0700)]
Massage code for clang-format

This change starts the process of updating the jit code to make it ready
for being formatted by clang-format. Changes mostly include reflowing
comments that go past our column limit and moving comments around ifdefs
so clang-format does not modify the indentation. Additionally, some
header files are manually reformatted for pointer alignment and marked
as clang-format off so that we do not lose the current formatting.

8 years agoMerge pull request #6523 from dotnet-bot/UpdateDependencies20160729052446
Gaurav Khanna [Fri, 29 Jul 2016 13:01:04 +0000 (06:01 -0700)]
Merge pull request #6523 from dotnet-bot/UpdateDependencies20160729052446

Updating External dependencies to beta-24329-00

8 years agoMerge pull request #6499 from ramarag/unc_cwd
Rama krishnan Raghupathy [Fri, 29 Jul 2016 07:06:12 +0000 (00:06 -0700)]
Merge pull request #6499 from ramarag/unc_cwd

Fxing the paths that are resolved relative to a network share

8 years agoUpdating External dependencies to beta-24329-00
dotnet-bot [Fri, 29 Jul 2016 05:24:45 +0000 (05:24 +0000)]
Updating External dependencies to beta-24329-00

8 years agoMerge pull request #6394 from adityamandaleeka/ymm_save_restore
Aditya Mandaleeka [Fri, 29 Jul 2016 02:37:56 +0000 (19:37 -0700)]
Merge pull request #6394 from adityamandaleeka/ymm_save_restore

Save and restore ymm registers in signal handlers.

8 years agoMerge pull request #6512 from dotnet-bot/UpdateDependencies20160728083626
Aditya Mandaleeka [Fri, 29 Jul 2016 02:23:22 +0000 (19:23 -0700)]
Merge pull request #6512 from dotnet-bot/UpdateDependencies20160728083626

Updating External dependencies to beta-24328-00

8 years agoExpose missing members of Array in contract to prep for dotnet/corefx#9998. (#6519)
Sepideh Khoshnood [Fri, 29 Jul 2016 02:14:33 +0000 (19:14 -0700)]
Expose missing members of Array in contract to prep for dotnet/corefx#9998. (#6519)

8 years agoMerge pull request #6509 from dotnet-bot/from-tfs
Jan Kotas [Fri, 29 Jul 2016 02:11:16 +0000 (19:11 -0700)]
Merge pull request #6509 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoRemove CorUnix::InternalFree.
Aditya Mandaleeka [Thu, 28 Jul 2016 01:21:16 +0000 (18:21 -0700)]
Remove CorUnix::InternalFree.

8 years agoMerge pull request #6496 from adityamandaleeka/virtual_cleanup
Aditya Mandaleeka [Fri, 29 Jul 2016 01:00:40 +0000 (18:00 -0700)]
Merge pull request #6496 from adityamandaleeka/virtual_cleanup

Add in-memory circular buffer for logging virtual memory operations.

8 years agoUpdate how we pass parameters when building CoreFx (#6511)
Mariana Rios Flores [Fri, 29 Jul 2016 00:07:22 +0000 (17:07 -0700)]
Update how we pass parameters when building CoreFx (#6511)

Change how we pass parameters when building CoreFx

8 years agoAlso clear CONTEXT_XSTATE if fpregs aren't available.
Aditya Mandaleeka [Thu, 28 Jul 2016 23:19:06 +0000 (16:19 -0700)]
Also clear CONTEXT_XSTATE if fpregs aren't available.

8 years agoMerge pull request #6480 from davmason/master
David Mason [Thu, 28 Jul 2016 23:05:18 +0000 (16:05 -0700)]
Merge pull request #6480 from davmason/master

Merge changes with .net native.

The fix for DisposeOnShutdown is already in here, these are the changes that exist in ProjectN that are not in CoreCLR yet.

8 years agoAdd extended state to RtlRestoreContext
Aditya Mandaleeka [Thu, 28 Jul 2016 22:48:43 +0000 (15:48 -0700)]
Add extended state to RtlRestoreContext

8 years agoRemove useless contract in EventListener
Kyungwoo Lee [Thu, 28 Jul 2016 22:13:37 +0000 (15:13 -0700)]
Remove useless contract in EventListener

Fixes https://github.com/dotnet/coreclr/issues/6504

8 years agoFxing the paths that are resolved relative to a network share
Rama Krishnan Raghupathy [Thu, 28 Jul 2016 01:48:24 +0000 (18:48 -0700)]
Fxing the paths that are resolved relative to a network share

8 years agoUpdating External dependencies to beta-24328-00
dotnet-bot [Thu, 28 Jul 2016 20:36:26 +0000 (20:36 +0000)]
Updating External dependencies to beta-24328-00

8 years agoSkip dummy null argument for string constructors under CoreRT ABI (#6498)
Jan Kotas [Thu, 28 Jul 2016 19:55:26 +0000 (12:55 -0700)]
Skip dummy null argument for string constructors under CoreRT ABI (#6498)

8 years agoFix for build issue #807024, assemble debug helpers for ARM64.
Joel Hendrix [Thu, 28 Jul 2016 19:05:32 +0000 (12:05 -0700)]
Fix for build issue #807024, assemble debug helpers for ARM64.

[tfs-changeset: 1619712]

8 years agoEnable RefEmitted assemblies to have Fallback LoadContext notion
Gaurav Khanna [Tue, 26 Jul 2016 16:24:38 +0000 (09:24 -0700)]
Enable RefEmitted assemblies to have Fallback LoadContext notion

8 years agoMerge pull request #6502 from russellhadley/errnoFix
Russell C Hadley [Thu, 28 Jul 2016 13:13:31 +0000 (06:13 -0700)]
Merge pull request #6502 from russellhadley/errnoFix

Add errno.h to resolve (internal) build break

8 years agoMerge pull request #6278 from Dmitri-Botcharnikov/feature-gdbjit
noahfalk [Thu, 28 Jul 2016 07:15:54 +0000 (00:15 -0700)]
Merge pull request #6278 from Dmitri-Botcharnikov/feature-gdbjit

[Linux] GDB JIT support for source line debug information.

8 years agoFix a couple of paths related to exception codes. (#6497)
Aditya Mandaleeka [Thu, 28 Jul 2016 04:29:36 +0000 (21:29 -0700)]
Fix a couple of paths related to exception codes. (#6497)

8 years agoAdd in-memory logging for virtual memory operations.
Aditya Mandaleeka [Thu, 28 Jul 2016 00:37:45 +0000 (17:37 -0700)]
Add in-memory logging for virtual memory operations.

8 years agoAdd errno.h
rhadley [Thu, 28 Jul 2016 00:34:51 +0000 (17:34 -0700)]
Add errno.h

8 years agoMerge pull request #6490 from KrzysztofCwalina/ConvertAll
Stephen Toub [Thu, 28 Jul 2016 00:32:15 +0000 (20:32 -0400)]
Merge pull request #6490 from KrzysztofCwalina/ConvertAll

Exposed List<T>.ConvertAll

8 years agoRename PCMI->pLast and other cleanup of virtual memory code.
Aditya Mandaleeka [Thu, 28 Jul 2016 00:00:03 +0000 (17:00 -0700)]
Rename PCMI->pLast and other cleanup of virtual memory code.

8 years agoMerge pull request #6484 from CarolEidt/AssertionPropAsserts
Carol Eidt [Wed, 27 Jul 2016 22:43:43 +0000 (15:43 -0700)]
Merge pull request #6484 from CarolEidt/AssertionPropAsserts

Do not propagate bad assertions from unreachable blocks

8 years agoExposed List<T>.ConvertAll
KrzysztofCwalina [Wed, 27 Jul 2016 22:25:18 +0000 (15:25 -0700)]
Exposed List<T>.ConvertAll

8 years agoMerge pull request #6489 from JohnChen0/master
John Chen [Wed, 27 Jul 2016 21:20:10 +0000 (14:20 -0700)]
Merge pull request #6489 from JohnChen0/master

Update CrossGen doc for "Unable to load Jit" error

8 years agoGC update from CoreRT (#6487)
Jan Kotas [Wed, 27 Jul 2016 21:16:02 +0000 (14:16 -0700)]
GC update from CoreRT (#6487)

https://github.com/dotnet/corert/tree/master/src/Native/gc 35d3eefeb4d14193433a103411526fa869321a82

8 years agoporting changes from .net native to CoreCLR
David Mason [Tue, 26 Jul 2016 20:27:10 +0000 (13:27 -0700)]
porting changes from .net native to CoreCLR

8 years agoMerge pull request #6488 from stephentoub/add_objref_mscorlib
Stephen Toub [Wed, 27 Jul 2016 19:51:59 +0000 (15:51 -0400)]
Merge pull request #6488 from stephentoub/add_objref_mscorlib

Add IObjectReference to mscorlib ref assembly

8 years agoUpdate CrossGen doc for "Unable to load Jit" error
John Chen [Wed, 27 Jul 2016 19:30:58 +0000 (12:30 -0700)]
Update CrossGen doc for "Unable to load Jit" error

8 years agoDo not propagate bad assertions from unreachable blocks
Carol Eidt [Fri, 22 Jul 2016 20:56:24 +0000 (13:56 -0700)]
Do not propagate bad assertions from unreachable blocks

Also ensure only valid assertions are utilized.

8 years agoAdd IObjectReference to mscorlib ref assembly
Stephen Toub [Wed, 27 Jul 2016 18:14:36 +0000 (14:14 -0400)]
Add IObjectReference to mscorlib ref assembly

8 years ago[SOS][ARM/Linux] Enable clru SOS command (#6477)
Evgeny Pavlov [Wed, 27 Jul 2016 17:12:59 +0000 (21:12 +0400)]
[SOS][ARM/Linux] Enable clru SOS command (#6477)

* Enable clru SOS command on ARM/Linux

* Set thumb bit on ARM/Linux

8 years agoOptimize the generic string.Join for length 1 collections (#6463)
James Ko [Wed, 27 Jul 2016 17:00:18 +0000 (13:00 -0400)]
Optimize the generic string.Join for length 1 collections (#6463)

* Optimize the generic string.Join for length 1 collections
* Keep the call order consistent: MoveNext-Current-ToString
* Convert to do..while loop to reduce code duplication

8 years agoMerge pull request #6486 from stephentoub/expose_updatevalue
Stephen Toub [Wed, 27 Jul 2016 16:05:15 +0000 (12:05 -0400)]
Merge pull request #6486 from stephentoub/expose_updatevalue

Expose SerializationInfo.UpdateValue for corefx

8 years agoExpose SerializationInfo.UpdateValue for corefx
Stephen Toub [Wed, 27 Jul 2016 14:24:06 +0000 (10:24 -0400)]
Expose SerializationInfo.UpdateValue for corefx

ObjectManager in corefx needs to access to SerializationInfo.UpdateValue, which is currently internal.  We don't need to expose UpdateValue in a public contract (which would necessitate adding it to desktop), but by making it public we can give corefx the functionality it needs without needing to move a whole bunch more down from corefx into the runtime.