platform/upstream/dotnet/runtime.git
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

Commit migrated from https://github.com/dotnet/coreclr/commit/2eb7d0c11a2842243c34e2302997e739c18cf7d6

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

Add IObjectReference to mscorlib ref assembly

Commit migrated from https://github.com/dotnet/coreclr/commit/50d9704c7918ef6adbfe9b5f10619f0dddd58cc6

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

Commit migrated from https://github.com/dotnet/coreclr/commit/037cf33d62308375fb3bcfecd822cb83436b5081

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

* Enable clru SOS command on ARM/Linux

* Set thumb bit on ARM/Linux

Commit migrated from https://github.com/dotnet/coreclr/commit/a734248ee38960d861c96b734ef862d99b2bfd0e

8 years agoOptimize the generic string.Join for length 1 collections (dotnet/coreclr#6463)
James Ko [Wed, 27 Jul 2016 17:00:18 +0000 (13:00 -0400)]
Optimize the generic string.Join for length 1 collections (dotnet/coreclr#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

Commit migrated from https://github.com/dotnet/coreclr/commit/dcd9aaeef6d22ad83f26993b68dfab365934c896

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

Expose SerializationInfo.UpdateValue for corefx

Commit migrated from https://github.com/dotnet/coreclr/commit/cfa36dd440764ff9e584baf76d23d24acdccbea7

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.

Commit migrated from https://github.com/dotnet/coreclr/commit/1db5d5a1d9ed28b088f1e808096ca9b330bb2bac

8 years agoMerge pull request dotnet/coreclr#6485 from stephentoub/iobjref_model
Stephen Toub [Wed, 27 Jul 2016 13:05:17 +0000 (09:05 -0400)]
Merge pull request dotnet/coreclr#6485 from stephentoub/iobjref_model

Add IObjectReference to model.xml

Commit migrated from https://github.com/dotnet/coreclr/commit/9ae2afca90b7c7c8db7e349c031fc40ae03cf749

8 years agoAdd IObjectReference to model.xml
Stephen Toub [Wed, 27 Jul 2016 11:12:47 +0000 (07:12 -0400)]
Add IObjectReference to model.xml

And expose a couple of missing properties on SerializationInfo in the mscorlib facade.

Commit migrated from https://github.com/dotnet/coreclr/commit/d03f77f05a2fc3bf5dbcb1d2a63e1d4847306c99

8 years agoMerge pull request dotnet/coreclr#6467 from briansull/multireg-return2
Brian Sullivan [Wed, 27 Jul 2016 00:54:04 +0000 (17:54 -0700)]
Merge pull request dotnet/coreclr#6467 from briansull/multireg-return2

Enable multireg returns on Arm64

Commit migrated from https://github.com/dotnet/coreclr/commit/c1a5ed7d94dbf52775719271a22a3b88d2ce98f8

8 years agoMerge pull request dotnet/coreclr#6401 from AndyAyersMS/PropagateOptMethodFlags
Andy Ayers [Wed, 27 Jul 2016 00:42:37 +0000 (17:42 -0700)]
Merge pull request dotnet/coreclr#6401 from AndyAyersMS/PropagateOptMethodFlags

Jit: fix issues with optMethodFlags

Commit migrated from https://github.com/dotnet/coreclr/commit/e87474f996da7118fd776c358682077a643dfec0

8 years agoMerge pull request dotnet/coreclr#6418 from rahku/crossgen
Rahul Kumar [Tue, 26 Jul 2016 23:49:30 +0000 (16:49 -0700)]
Merge pull request dotnet/coreclr#6418 from rahku/crossgen

Do not insert gcstress interrupt instruction at call to JIT_RareDisab…

Commit migrated from https://github.com/dotnet/coreclr/commit/3516aaecba009c5d4da8e099a717d796912bb629

8 years agoEnable multireg returns on Arm64
Brian Sullivan [Tue, 12 Jul 2016 20:52:20 +0000 (13:52 -0700)]
Enable multireg returns on Arm64

Added method IsMultiRegPassedType and updated IsMultiRegReturnType
Switched these methods to using getArgTypeForStruct and getReturnTypeForStruct
Removed IsRegisterPassable and used IsMultiRegReturned instead.
Converted lvIsMultiregStruct to use getArgTypeForStruct
Renamed varDsc->lvIsMultiregStruct() to compiler->lvaIsMultiregStruct(varDsc)
Skip calling getPrimitiveTypeForStruct when we have a struct larger than 8 bytes
Refactored ReturnTypeDesc::InitializeReturnType
Fixed missing SPK_ByReference case in InitializeReturnType
Fixes for RyiJIt x86 TYP_LONG return types and additional ARM64 work for full multireg support
Added ARM64 guard the uses of MAX_RET_MULTIREG_BYTES with FEATURE_MULTIREG_RET
Fixes for multireg returns in Arm64 Codegen
Added dumping of lvIsMultiRegArg and lvIsMultiRegRet in the assembly output
Added check and set of compFloatingPointUsed to InitializeStructReturnType
Fixes to handle JIT helper calls that say they return a TYP_STRUCT with no class handle available
Placed all of the second GC return reg under MULTIREG_HAS_SECOND_GC_RET ifdefs
Added the Arm64 VM changes from Rahul's PR 5175
Update getArgTypeForStruct for x86/arm32 so that it returns TYP_STRUCT for all pass by value cases
Fixes for the passing of 3,5,6 or 7 byte sized structs
Fix issue on ARM64 where we would back fill into x7 after passing a 16-byte struct on the stack
Implemented register shuffling for multi reg Call returns on Arm64
Fixed regression on Arm32 for struct args that are not multi regs
Updated Tests.Lst with 23 additional passing tests

Changes from codereview feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/feb33b9085f202ac9e6331fdf4dc02751d89cf8d

8 years agoMerge pull request dotnet/coreclr#6481 from stephentoub/add_serialization_facade
Stephen Toub [Tue, 26 Jul 2016 22:58:03 +0000 (18:58 -0400)]
Merge pull request dotnet/coreclr#6481 from stephentoub/add_serialization_facade

Add serialization primitives to mscorlib facade

Commit migrated from https://github.com/dotnet/coreclr/commit/35e1d3bea2446a3ad6d5470b685a612b022052ad

8 years agoRewrite gtIsVtableAccess to avoid assert
Andy Ayers [Tue, 26 Jul 2016 21:19:20 +0000 (14:19 -0700)]
Rewrite gtIsVtableAccess to avoid assert

Calling `HasIndex` from `gtIsVtableAccess` can leads to asserts as the
underly code checks to see if the addressing sub-expressions are
contained. But earlyProp runs early enough that it is not concerned with
containment. The code just needs to verify that there is a ref type base
and no index. Rework the code to do the checks directly.

Commit migrated from https://github.com/dotnet/coreclr/commit/43e5f18ff826058a4de71491a378e5b94ecec919

8 years agoAdd serialization primitives to mscorlib facade
Stephen Toub [Tue, 26 Jul 2016 21:11:39 +0000 (17:11 -0400)]
Add serialization primitives to mscorlib facade

Commit migrated from https://github.com/dotnet/coreclr/commit/c10b4bfd6b076b70105edb32368ef2deec264b8a

8 years agoMerge pull request dotnet/coreclr#6464 from russellhadley/HardenJitStartup
Russell C Hadley [Tue, 26 Jul 2016 19:38:40 +0000 (12:38 -0700)]
Merge pull request dotnet/coreclr#6464 from russellhadley/HardenJitStartup

Harden stdout at startup

Commit migrated from https://github.com/dotnet/coreclr/commit/f09a1f3a0d6e2654f546acd9cedfb9baa2267819

8 years agoHarden stdout at startup
rhadley [Mon, 25 Jul 2016 17:40:27 +0000 (10:40 -0700)]
Harden stdout at startup

Check the results of the dup call to ensure that we're working with
a valid file handle.  In the case where we aren't we leave the jitstdout
set to nullptr.

Commit migrated from https://github.com/dotnet/coreclr/commit/7f106c520f7ffd353184e8c0db35e4155ac5e4ce

8 years agoMerge pull request dotnet/coreclr#6473 from dotnet-bot/from-tfs
Jan Kotas [Tue, 26 Jul 2016 13:16:04 +0000 (06:16 -0700)]
Merge pull request dotnet/coreclr#6473 from dotnet-bot/from-tfs

Merge changes from TFS

Commit migrated from https://github.com/dotnet/coreclr/commit/16988a40bb994b1f41c8735ee65bf0de81659cef

8 years agoMerge pull request dotnet/coreclr#6472 from dotnet-bot/UpdateDependencies20160726051912
Gaurav Khanna [Tue, 26 Jul 2016 13:08:58 +0000 (06:08 -0700)]
Merge pull request dotnet/coreclr#6472 from dotnet-bot/UpdateDependencies20160726051912

Updating External dependencies to beta-24326-00

Commit migrated from https://github.com/dotnet/coreclr/commit/9d085341704951a841456233c4965bc1c2e8a795

8 years agoAddressing arm64 build break due to old compiler
Rama Krishnan Raghupathy [Tue, 26 Jul 2016 06:30:07 +0000 (23:30 -0700)]
Addressing arm64 build break due to old compiler

[tfs-changeset: 1619335]

Commit migrated from https://github.com/dotnet/coreclr/commit/faa87f0aaa1013de01631eb98edf928cf1900b2a

8 years agoUpdating External dependencies to beta-24326-00
dotnet-bot [Tue, 26 Jul 2016 05:19:12 +0000 (05:19 +0000)]
Updating External dependencies to beta-24326-00

Commit migrated from https://github.com/dotnet/coreclr/commit/da00a4174efb91f39120f8750f835cca5a33cd48

8 years agoFix copy check condition for native interop test library. (dotnet/coreclr#6468)
Sung-Jae Lee [Tue, 26 Jul 2016 04:09:36 +0000 (13:09 +0900)]
Fix copy check condition for native interop test library. (dotnet/coreclr#6468)

Commit migrated from https://github.com/dotnet/coreclr/commit/f1b3fc7b704662903c753dc20681693a69266931

8 years agoLinux/ARM: Fix +3000 bus errors of unit-test in case of O2/O3 levels (dotnet/coreclr...
Geunsik Lim [Tue, 26 Jul 2016 03:59:47 +0000 (12:59 +0900)]
Linux/ARM: Fix +3000 bus errors of unit-test in case of O2/O3 levels (dotnet/coreclr#6379)

**PROBLEM**
This patch is to resolve +3000 bus errors that are generated whenever we use
the aggressive optimization levels of clang (issue dotnet/coreclr#5844 ).

When we enable the -O3 optimization level of the clang version(from clang 3.5
to clang 3.9(snapshot)), we have always got the lots of bus errors from the
coreCLR's unit tests. Actually, we can easily monitor SIGBUS signals (e.g.,
"misaligned memory access") with /proc/cpu/alignment facility in kernel space.
Using "echo 2 > /proc/cpu/alignment" makes Linux kernel fixes the problems
but the performance of the application will be degraded.
.source: http://lxr.free-electrons.com/source/Documentation/arm/mem_alignment

**VERSION 4**
. Use 'GET_UNALIGNED_VALXXX' macros in the CoreClr infra-structure without
  any need for ifdefs.

**VERSION 3**
.Apply this PR on only Linux/ARM for different system environment (Windows).

Here is .NET CI Report on Windows: Compile Error
error C2146: syntax error: missing ';' before identifier '__unaligned_int32'
(compiling source file D:\j\workspace\checked_windo---f6dc6fe4\src\jit\alloc.cpp)
[D:\j\workspace\checked_windo---f6dc6fe4\bin\obj\Windows_NT.x64.Checked\src\jit\
crossgen\clrjit_crossgen.vcxproj] Indication 1

**VERSION 2**
.Add UNALIGNED_ARM macro for handling ARM core specific optimization levels.
.Add RISC-based ARM core handling into the existing infra-structure of the
platform adaptation layer (PAL) for aggressive optimization cases on Linux/ARM.

**VERSION 1**
Basically, RISC-based ARM architecture requires aligned access with 4byte reads.
In order to support aggressive optimization levels such as O2/O3, let's use
attribute keyword of aligned(1) instead of using memcpy(2) in into
a properly aligned buffer or the packing attribute.

**BACKGROUND**
According to ARM information center(infocenter.arm.com), By default,
the ARM compiler expects normal C and C++ pointers to point
to an aligned word in memory. A type qualifier __packed is provided to
enable unaligned pointer access. If you want to define a pointer to a word
that can be at any address (that is, that can be at a non-natural alignment),
you must specify this using the __packed qualifier when defining the pointer:
__packed int *pi; // pointer to unaligned int

However, clang/llvm does not support the __packed qualifier such as
__attribute__((packed)) or __attribute__((packed, aligned(4)))

In -O0 (debug build) the innermost block is emitted as the following assembly,
which works properly:
 ldr r1, [r0, dotnet/coreclr#24]
 ldr r2, [r0, dotnet/coreclr#20]

In -O3 (release build) however the compiler realizes these fields are adjacent
and generates this assembly:
 ldrdeq  r2, r3, [r0, dotnet/coreclr#20]
Unfortunately, vldr/ldrdb instructions always generate an alignment fault
(in practice). It seems that clang uses ldrb instruction although GCC uses
ldr instruction because armv7 supports unaligned ldr instruction.

Note: If some arm architectures (e.g., Linux/ARM Emulator) does not support
unaligned ldr, this issue is not generated with aggressive optimization
levels (e.g., -O2 and -O3).

* Case study: How does the ARM Compiler support unaligned accesses?
  http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html

* Case study: Indicating unaligned access to Clang for ARM compatibility
  http://stackoverflow.com/questions/9185811/indicating-unaligned-access-to-clang-for-arm-compatibility

* Case study: Chromium source for UnalignedLoad32() on ARM
  https://github.com/nwjs/chromium.src/blob/nw15/third_party/cld/base/basictypes.h#L302

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/561b64d2c210b4d999de7f1ac55756704eaba784

8 years agoMerge pull request dotnet/coreclr#6328 from ramarag/arm64debugger
Rama krishnan Raghupathy [Tue, 26 Jul 2016 03:36:53 +0000 (20:36 -0700)]
Merge pull request dotnet/coreclr#6328 from ramarag/arm64debugger

Implementing Arm64 Debugger Requirements

Commit migrated from https://github.com/dotnet/coreclr/commit/6e3c1a63e683b9c825c218efc6d75bf5e430f474

8 years agoDo not insert gcstress interrupt instruction at call to JIT_RareDisableHelper
Rahul Kumar [Fri, 22 Jul 2016 19:48:55 +0000 (12:48 -0700)]
Do not insert gcstress interrupt instruction at call to JIT_RareDisableHelper

Commit migrated from https://github.com/dotnet/coreclr/commit/b881558578b9922b5dd22be34aac1793c170b778

8 years agoArm64: Debugger
Rama Krishnan Raghupathy [Tue, 19 Jul 2016 02:40:05 +0000 (19:40 -0700)]
Arm64: Debugger

    Instruction emulation for Break Points
    Debugger::FuncEvalSetup
    NativeWalker
    ExceptionHijack
    Exception intercept
    Managed Return Value

Commit migrated from https://github.com/dotnet/coreclr/commit/00e3695c1b51248f58f6b7e1f24f83a791a3b79e

8 years agoMerge pull request dotnet/coreclr#6156 from justinvp/activitytracker_tostring
Vance Morrison [Mon, 25 Jul 2016 22:06:45 +0000 (15:06 -0700)]
Merge pull request dotnet/coreclr#6156 from justinvp/activitytracker_tostring

Avoid string concat array allocation in ActivityTracker

Commit migrated from https://github.com/dotnet/coreclr/commit/c358f77a1ddcf31475450c40af64ad115259e622

8 years agoMerge pull request dotnet/coreclr#6158 from justinvp/tracing_stringcomparison
Vance Morrison [Mon, 25 Jul 2016 22:00:29 +0000 (15:00 -0700)]
Merge pull request dotnet/coreclr#6158 from justinvp/tracing_stringcomparison

Specify StringComparison.Ordinal in System.Diagnostics.Tracing

Commit migrated from https://github.com/dotnet/coreclr/commit/2a0bdd52dbe627486c586ad3f1d2ddb0e3ea7bc7

8 years agoMerge pull request dotnet/coreclr#6461 from stephentoub/update_buildtools
Stephen Toub [Mon, 25 Jul 2016 19:49:17 +0000 (15:49 -0400)]
Merge pull request dotnet/coreclr#6461 from stephentoub/update_buildtools

Update BuildTools to 1.0.26-prerelease-00625-01

Commit migrated from https://github.com/dotnet/coreclr/commit/43a8caf9ce4b8a7c3516122eebfd0dcc2cb9ca2f

8 years agoUpdate BuildTools to 1.0.26-prerelease-00625-01
Stephen Toub [Mon, 25 Jul 2016 16:16:01 +0000 (12:16 -0400)]
Update BuildTools to 1.0.26-prerelease-00625-01

Commit migrated from https://github.com/dotnet/coreclr/commit/a5772785e2afade5fd9840dddb6d539ff7994902

8 years agoMerge pull request dotnet/coreclr#6456 from dotnet-bot/UpdateDependencies20160725083514
Gaurav Khanna [Mon, 25 Jul 2016 13:23:59 +0000 (06:23 -0700)]
Merge pull request dotnet/coreclr#6456 from dotnet-bot/UpdateDependencies20160725083514

Updating CoreClr dependencies to beta-24325-02

Commit migrated from https://github.com/dotnet/coreclr/commit/6fd8cd393aabce43eefa20e6e965f0c10d65e7de

8 years agoMerge pull request dotnet/coreclr#6453 from dotnet-bot/UpdateDependencies20160725061810
Gaurav Khanna [Mon, 25 Jul 2016 13:23:29 +0000 (06:23 -0700)]
Merge pull request dotnet/coreclr#6453 from dotnet-bot/UpdateDependencies20160725061810

Updating External dependencies to beta-24325-00

Commit migrated from https://github.com/dotnet/coreclr/commit/bf609c3344c2d78ad23aa35b3072af5f69d9b16e

8 years ago[Documentation] Projects Use licences (dotnet/coreclr#6442)
Shahid Khan [Mon, 25 Jul 2016 13:07:15 +0000 (18:07 +0500)]
[Documentation] Projects Use licences (dotnet/coreclr#6442)

address feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/ab744a4d2fe958935f0cba35709c3463bd93e4d3

8 years agoUpdating CoreClr dependencies to beta-24325-02
dotnet-bot [Mon, 25 Jul 2016 08:35:13 +0000 (08:35 +0000)]
Updating CoreClr dependencies to beta-24325-02

Commit migrated from https://github.com/dotnet/coreclr/commit/12d6d3ac8dc7f850f413bf3d91831adc62664682

8 years agoUpdating External dependencies to beta-24325-00
dotnet-bot [Mon, 25 Jul 2016 06:18:10 +0000 (06:18 +0000)]
Updating External dependencies to beta-24325-00

Commit migrated from https://github.com/dotnet/coreclr/commit/77e6a204003a440a5bd22d59e06fecf91bd42187

8 years agoMerge pull request dotnet/coreclr#6449 from dotnet-bot/UpdateDependencies20160725123214
Gaurav Khanna [Mon, 25 Jul 2016 04:19:33 +0000 (21:19 -0700)]
Merge pull request dotnet/coreclr#6449 from dotnet-bot/UpdateDependencies20160725123214

Updating CoreClr dependencies to beta-24325-01

Commit migrated from https://github.com/dotnet/coreclr/commit/70503892983b710f266122dd255d2b4e177eb79c

8 years agoMerge pull request dotnet/coreclr#6342 from BruceForstall/tailcall
Bruce Forstall [Mon, 25 Jul 2016 04:13:19 +0000 (21:13 -0700)]
Merge pull request dotnet/coreclr#6342 from BruceForstall/tailcall

RyuJIT/x86: implement tailcall via helper

Commit migrated from https://github.com/dotnet/coreclr/commit/8604efafe86be6720e95cef71ad58d127130aab5

8 years agoUpdating CoreClr dependencies to beta-24325-01
dotnet-bot [Mon, 25 Jul 2016 00:32:14 +0000 (00:32 +0000)]
Updating CoreClr dependencies to beta-24325-01

Commit migrated from https://github.com/dotnet/coreclr/commit/463f10f0b3903251ce5590742003c98e2295ebb9

8 years agoMerge pull request dotnet/coreclr#6445 from dotnet-bot/UpdateDependencies20160724042519
Gaurav Khanna [Sun, 24 Jul 2016 21:39:06 +0000 (14:39 -0700)]
Merge pull request dotnet/coreclr#6445 from dotnet-bot/UpdateDependencies20160724042519

Updating CoreClr dependencies to beta-24324-03

Commit migrated from https://github.com/dotnet/coreclr/commit/1bb9e2df37f888ca9963dbecd0c44188a7a4a355

8 years agoUpdating CoreClr dependencies to beta-24324-03
dotnet-bot [Sun, 24 Jul 2016 16:25:19 +0000 (16:25 +0000)]
Updating CoreClr dependencies to beta-24324-03

Commit migrated from https://github.com/dotnet/coreclr/commit/0f5d1f8191948fd89b68310045850852bf89b6e7

8 years agoMerge pull request dotnet/coreclr#6443 from dotnet-bot/UpdateDependencies20160724082829
Gaurav Khanna [Sun, 24 Jul 2016 13:49:17 +0000 (06:49 -0700)]
Merge pull request dotnet/coreclr#6443 from dotnet-bot/UpdateDependencies20160724082829

Updating CoreClr dependencies to beta-24324-02

Commit migrated from https://github.com/dotnet/coreclr/commit/e2a877e8ac91a605464525ac13777bebdddb321c

8 years agoFix up for grabs issues link in contributing workflow doc (dotnet/coreclr#6437)
Oleg Demchenko [Sun, 24 Jul 2016 12:08:51 +0000 (09:08 -0300)]
Fix up for grabs issues link in contributing workflow doc (dotnet/coreclr#6437)

Current link to up for grabs issues for CoreCLR repository leads
to the empty list because there's not such label as "up for grabs"
(existing label name is "up-for-grabs"). Ideally both CoreCLR
and CoreFX repos should use exactly the same label for public
issues to avoid possible mistakes.

Commit migrated from https://github.com/dotnet/coreclr/commit/cf9d60eab4a51d2d0862df406f46afc4878b8512

8 years agoUpdating CoreClr dependencies to beta-24324-02
dotnet-bot [Sun, 24 Jul 2016 08:28:29 +0000 (08:28 +0000)]
Updating CoreClr dependencies to beta-24324-02

Commit migrated from https://github.com/dotnet/coreclr/commit/60efc635e01709a759dc14676eb94f0181675732

8 years agoRyuJIT/x86: implement tailcall via helper
Bruce Forstall [Thu, 14 Jul 2016 15:06:25 +0000 (08:06 -0700)]
RyuJIT/x86: implement tailcall via helper

Fixes dotnet/coreclr#4185

Also: (1) added a class to simplify non-standard arg handling in fgMorphArgs(),
(2) fixed minor tree output alignment bug.

Commit migrated from https://github.com/dotnet/coreclr/commit/fe4ac43dfd4a22141abde24503929f1fa5f8f4d6

8 years agoMerge pull request dotnet/coreclr#6425 from weshaggard/UpdateMscorlibFacadeToUseRewri...
Stephen Toub [Sat, 23 Jul 2016 20:49:42 +0000 (13:49 -0700)]
Merge pull request dotnet/coreclr#6425 from weshaggard/UpdateMscorlibFacadeToUseRewrittenCoreLib

Update mscorlib facade to use the rewritten S.P.CoreLib

Commit migrated from https://github.com/dotnet/coreclr/commit/c88953305ac38d82f36358a58caa6f2652a42669

8 years agoFix dotnet/coreclr#6125 (dotnet/coreclr#6432)
Martin Woodward [Sat, 23 Jul 2016 16:39:34 +0000 (09:39 -0700)]
Fix dotnet/coreclr#6125 (dotnet/coreclr#6432)

Add reference for Bit Twiddling Hacks

Commit migrated from https://github.com/dotnet/coreclr/commit/59f169e508fe9520ede1a89da5e3a81ecc0e440a

8 years agoGC update from CoreRT (dotnet/coreclr#6429)
Jan Kotas [Sat, 23 Jul 2016 14:23:21 +0000 (07:23 -0700)]
GC update from CoreRT (dotnet/coreclr#6429)

https://github.com/dotnet/corert/tree/master/src/Native/gc dotnet/coreclr@91d7a9c8e2b393314422b6106adedec683c0ae51

Commit migrated from https://github.com/dotnet/coreclr/commit/087e750df2a13801d0f144cdcfa6c1c3e16067c2

8 years agoAdd link to https://graphics.stanford.edu/~seander/bithacks.html#ZeroInWord (dotnet...
Jan Kotas [Sat, 23 Jul 2016 14:13:22 +0000 (07:13 -0700)]
Add link to https://graphics.stanford.edu/~seander/bithacks.html#ZeroInWord (dotnet/coreclr#6430)

Commit migrated from https://github.com/dotnet/coreclr/commit/ac01e272bbbf6ce03f69843326d7fdfc74df245a

8 years agoMerge pull request dotnet/coreclr#6428 from dotnet-bot/UpdateDependencies20160723082720
Gaurav Khanna [Sat, 23 Jul 2016 13:17:11 +0000 (06:17 -0700)]
Merge pull request dotnet/coreclr#6428 from dotnet-bot/UpdateDependencies20160723082720

Updating CoreClr dependencies to beta-24323-02

Commit migrated from https://github.com/dotnet/coreclr/commit/ff899f8cb3a32b33d14d7527d7f972b9458eaed4

8 years agoThe call to printf expects a string argument, but the actual argument was of class...
vinnyrom [Sat, 23 Jul 2016 11:46:50 +0000 (04:46 -0700)]
The call to printf expects a string argument, but the actual argument was of class type 'PathString'. (dotnet/coreclr#6422)

Commit migrated from https://github.com/dotnet/coreclr/commit/6d74076128f25499d132732075d53c02994a5406

8 years agoUpdating CoreClr dependencies to beta-24323-02
dotnet-bot [Sat, 23 Jul 2016 08:27:20 +0000 (08:27 +0000)]
Updating CoreClr dependencies to beta-24323-02

Commit migrated from https://github.com/dotnet/coreclr/commit/21270389079ae0288c26ed4d8090973c4a71565e

8 years agoUpdate mscorlib facade to use the rewritten S.P.CoreLib
Wes Haggard [Sat, 23 Jul 2016 05:38:43 +0000 (22:38 -0700)]
Update mscorlib facade to use the rewritten S.P.CoreLib

Indirectly we were building the mscorlib facade against the
pre-rewritten S.P.CoreLib which had more types in it that weren't
present after we rewrote the assembly. This change forces the
TargetPath to be the final output for S.P.CoreLib so the ProjectReference
pulls in the correct assembly and will give errors if there are
missing types when generating the facade.

ICloneable and and ResolveEventHandler were missing so including
those in the model.xml file.

Commit migrated from https://github.com/dotnet/coreclr/commit/f6494de96ed4683fbe0fd5aa146c3bb8fdd69a97

8 years agoMerge pull request dotnet/coreclr#6415 from joperezr/ExposeISerializableDatetime
Stephen Toub [Sat, 23 Jul 2016 02:20:07 +0000 (19:20 -0700)]
Merge pull request dotnet/coreclr#6415 from joperezr/ExposeISerializableDatetime

Exposing ISerializable implementation in System.DateTime

Commit migrated from https://github.com/dotnet/coreclr/commit/61cb42ceb8f6f542606c7863c7e26edea7b9653c

8 years agoMerge pull request dotnet/coreclr#6414 from dotnet-bot/UpdateDependencies20160722044814
Gaurav Khanna [Sat, 23 Jul 2016 01:23:34 +0000 (18:23 -0700)]
Merge pull request dotnet/coreclr#6414 from dotnet-bot/UpdateDependencies20160722044814

Updating CoreClr dependencies to beta-24322-04

Commit migrated from https://github.com/dotnet/coreclr/commit/064a9b9f411b54eec2ca6de32a356d7188d839e1

8 years agoMerge pull request dotnet/coreclr#6417 from swaroop-sridhar/contract
Swaroop Sridhar [Fri, 22 Jul 2016 23:09:56 +0000 (16:09 -0700)]
Merge pull request dotnet/coreclr#6417 from swaroop-sridhar/contract

GetGcInfo(): Add a missing contract declaration

Commit migrated from https://github.com/dotnet/coreclr/commit/252776751c689cd254ea354060852412f4f3c431

8 years agoGetGcInfo(): Add a missing contract declaration
Swaroop Sridhar [Fri, 22 Jul 2016 20:34:08 +0000 (13:34 -0700)]
GetGcInfo(): Add a missing contract declaration

Commit migrated from https://github.com/dotnet/coreclr/commit/7b47c7711b4ab3a1bc78aeec5362c6885293f5fc

8 years agoUpdating CoreClr dependencies to beta-24322-04
dotnet-bot [Fri, 22 Jul 2016 16:48:14 +0000 (16:48 +0000)]
Updating CoreClr dependencies to beta-24322-04

Commit migrated from https://github.com/dotnet/coreclr/commit/dccaa1382d5772ca837de28488ff703d95a9c982

8 years agoExposing ISerializable implementation in System.DateTime
Jose Perez Rodriguez [Fri, 22 Jul 2016 16:48:10 +0000 (09:48 -0700)]
Exposing ISerializable implementation in System.DateTime

Commit migrated from https://github.com/dotnet/coreclr/commit/999353cab70d14719800326866dd812c89a96b83

8 years agoARM-CI : Check a device is already mounted while mounting a device. (dotnet/coreclr...
Sujin Kim [Fri, 22 Jul 2016 10:04:55 +0000 (19:04 +0900)]
ARM-CI : Check a device is already mounted while mounting a device. (dotnet/coreclr#6377)

Now ARM-CI makes building failure frequently with below messages.(dotnet/coreclr#6329)

http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/arm_emulator_cross_debug_ubuntu_prtest/559/console
00:01:27.252 + sudo umount /opt/linux-arm-emulator-root/dev
00:01:27.260 umount: /opt/linux-arm-emulator-root/dev: device is busy.
00:01:27.260 (In some cases useful info about processes that use
00:01:27.260 the device is found by lsof(8) or fuser(1))
00:01:27.265 Build step 'Execute shell' marked build as failure

I think ARM CI jobs have tried to unmount the same rootfs by an 'arm32_ci_script.sh' at the same time. (At this time, other jobs still are on running...)
So I suggest though the script is exited by any cases, the script would not run un-mounting.
But whenever CI is running and mounting a device, It will check the device is already mounted.

Commit migrated from https://github.com/dotnet/coreclr/commit/d3f5a70b404386c538053cb0fe1746338ac4d342

8 years agoMerge pull request dotnet/coreclr#6399 from stephentoub/fix_typos
Stephen Toub [Fri, 22 Jul 2016 00:46:36 +0000 (17:46 -0700)]
Merge pull request dotnet/coreclr#6399 from stephentoub/fix_typos

Fix build break when FEATURE_SERIALIZATION defined

Commit migrated from https://github.com/dotnet/coreclr/commit/9f74aff5752c03aab5f03c1b529f6faf6648cb90

8 years agoFix build break when FEATURE_SERIALIZATION defined
Stephen Toub [Fri, 22 Jul 2016 00:25:08 +0000 (17:25 -0700)]
Fix build break when FEATURE_SERIALIZATION defined

Commit migrated from https://github.com/dotnet/coreclr/commit/6ffcfee178dfef1cf60c66a98cdc8fec208cbdc2

8 years agoMerge pull request dotnet/coreclr#6367 from echesakov/StackAllocation
Egor Chesakov [Thu, 21 Jul 2016 23:51:50 +0000 (16:51 -0700)]
Merge pull request dotnet/coreclr#6367 from echesakov/StackAllocation

Fix bug: inlinee did not copy inlinee bbFlags to caller bbFlags.

Commit migrated from https://github.com/dotnet/coreclr/commit/fe3aaa3cc2d300858ae308d4a8ed95ae4b855b72

8 years agoJit: fix issues with optMethodFlags
Andy Ayers [Thu, 21 Jul 2016 07:34:25 +0000 (00:34 -0700)]
Jit: fix issues with optMethodFlags

Closes dotnet/coreclr#6368.

optMethodFlags is a member field of the Compiler object. It is used
during importation to flag IR that might benefit from earlyProp, and
used in earlyProp to skip execution if nothing is flagged. However,
there were a number of issues with the implementation.

First, the value was never initialized. So in CHK/DBG builds, it would
get set to 0xFFFFFFFF by the default allocator fill. In RELEASE builds
the value would be randomly set. This randomness could easily lead to
nondeterministic codegen in RELEASE. More on this subsequently.

Second, the value was not propagated during inlining. So if interesting
constructs only entered the root method via inlines, they potentially
might not trigger earlyProp.

Third, not all interesting constructs were flagged.

The JIT ORs flag values into optMethodFlags as it imports constructs
that should trigger earlyProp. It also re-uses the same compiler instance
in most cases. So, relatively quickly, even in release, all the relevant
flags end up set and earlyProp will always be run. Hence the window
for observing the nondeterministic is was limited to the first few
methods jitted by each compiler instance.

So to sum up: in DBG/CHK, early prop always runs, regardless of need.
In RELEASE, it runs unpredictably for the first few methods, then always
runs, regardless of need.

To see the nondeterminism in RELEASE, early methods would have to be free
of interesting constructs but pull them in via inlining (or contain
interesting constructs not currently flagged as such during importation).
This set of circumstances is evidently rare enough that the nondeterminism
has not been noted. Also, it is quite unlikely to lead to bad codegen,
just missed opportunities.

We might have caught this if we had reliable RELEASE/CHK diffing ready;
see for instance dotnet/coreclr#5063.

The fix is to initialize optMethodFlags to zero in compInit, and merge in
the inlinee's copy during fgInsertInlineeBlocks. Logging tracks when the
inlinee's copy causes a flag update.

This was tricky to test for diffs because in CHK all that should happen is
that we run earlyProp less often. So any diff in CHK is a missed case of
flagging during importation. I found once such case via SPMI where the array
index is a constant, and added constant indices to the flagging set.

Because I also set the block flag, this both caused earlyProp to run
and also look at that block; the latter has triggered a fair number of
diffs, almost all of them beneficial (0.42% improvement in SPMI), winners
outnumber losers by about 50:1.

A typical example of a diff is that the null check below is removed.

```asm
       mov      rcx, qword ptr [(reloc)]
       mov      edx, 4
       call     CORINFO_HELP_NEWARR_1_VC
**     mov      edx, dword ptr [rax+8]
       mov      byte  ptr [rax+16], 255
       mov      byte  ptr [rax+17], 254
```

With this change in place, earlyProp how runs selectively based on need in
all configurations. We're still running earlyProp in all the cases where it
can make a difference, and finding more improvements when it does run, but
we're not running it in cases where it can't.

Commit migrated from https://github.com/dotnet/coreclr/commit/f1b03b6a6f993331acc1da40b0e630348a3abaea

8 years agoMerge pull request dotnet/coreclr#6395 from adityamandaleeka/fix_shell_scripts
Aditya Mandaleeka [Thu, 21 Jul 2016 23:24:32 +0000 (16:24 -0700)]
Merge pull request dotnet/coreclr#6395 from adityamandaleeka/fix_shell_scripts

Fix lexicographical compares of numeric values in a couple of scripts.

Commit migrated from https://github.com/dotnet/coreclr/commit/7f4d4f2e8a1eaf5ec570604871cc910264203852

8 years agoMerge pull request dotnet/coreclr#6300 from sejongoh/decompose_gt_ind
Sejong Oh [Thu, 21 Jul 2016 22:22:06 +0000 (15:22 -0700)]
Merge pull request dotnet/coreclr#6300 from sejongoh/decompose_gt_ind

Decompose GT_IND for x86

Commit migrated from https://github.com/dotnet/coreclr/commit/b6f387b180f0dea552911197dcb07962e9775d26

8 years agoMerge pull request dotnet/coreclr#6396 from adityamandaleeka/runtest_help_fix
Aditya Mandaleeka [Thu, 21 Jul 2016 21:12:14 +0000 (14:12 -0700)]
Merge pull request dotnet/coreclr#6396 from adityamandaleeka/runtest_help_fix

Fix minor error in runtest help

Commit migrated from https://github.com/dotnet/coreclr/commit/de1a689ad75076bbd63df8530f844822c04ae72c

8 years agoFix minor error in runtest help.
Aditya Mandaleeka [Thu, 21 Jul 2016 21:04:31 +0000 (14:04 -0700)]
Fix minor error in runtest help.

Commit migrated from https://github.com/dotnet/coreclr/commit/f7409310e31cb76da8e12f7b1a475655e4239a29

8 years agoFix lexicographical compares of numeric values.
Aditya Mandaleeka [Thu, 21 Jul 2016 20:55:29 +0000 (13:55 -0700)]
Fix lexicographical compares of numeric values.

Commit migrated from https://github.com/dotnet/coreclr/commit/63dd009d459054acd972acdc70c1e3bfbe5c9a0f

8 years agoChange verbatim ELF.h and Dwarf.h LLVM headers to be able to build in CoreCLR +...
Evgeny Pavlov [Thu, 21 Jul 2016 18:18:46 +0000 (22:18 +0400)]
Change verbatim  ELF.h and Dwarf.h LLVM headers to be able to build in CoreCLR + add license header (dotnet/coreclr#6389)

Commit migrated from https://github.com/dotnet/coreclr/commit/ece6cb3aba99ce30cbadb1fe4092959371401f29

8 years agoMerge pull request dotnet/coreclr#6277 from kyulee1/frageh
Kyungwoo Lee [Thu, 21 Jul 2016 17:17:18 +0000 (10:17 -0700)]
Merge pull request dotnet/coreclr#6277 from kyulee1/frageh

ARM64: Enable Function Fragment

Commit migrated from https://github.com/dotnet/coreclr/commit/0d2a0d298a1f771c34a97201db763e86fbcacd59

8 years agoMerge pull request dotnet/coreclr#6375 from stephentoub/serialization_modelxml
Stephen Toub [Thu, 21 Jul 2016 17:02:40 +0000 (10:02 -0700)]
Merge pull request dotnet/coreclr#6375 from stephentoub/serialization_modelxml

Expose serialization primitives from System.Private.Corelib

Commit migrated from https://github.com/dotnet/coreclr/commit/2a1fd93039cf1b7281412f5b901c5e8528c53fb1

8 years ago[SOS][Linux] Fix incorrect processing 'setclrpath' command with portable PDB reader...
Evgeny Pavlov [Thu, 21 Jul 2016 16:52:10 +0000 (20:52 +0400)]
[SOS][Linux] Fix incorrect processing 'setclrpath' command with portable PDB reader (dotnet/coreclr#6358)

* Fix incorrect processing 'setclrpath' command in lldb libsosplugin.so with portable PDB reader

* Replace 'fprintf' and 'perror' to 'ExtErr'

Commit migrated from https://github.com/dotnet/coreclr/commit/da5b94ed35602c43c505381bfe62b894895a9736

8 years agoRefactor GC background thread creation (dotnet/coreclr#6384)
Jan Vorlicek [Thu, 21 Jul 2016 16:42:40 +0000 (18:42 +0200)]
Refactor GC background thread creation (dotnet/coreclr#6384)

This change modifies the GCToEEInterface::CreateBackgroundThread so that it returns
a fully initialized and running thread.

Commit migrated from https://github.com/dotnet/coreclr/commit/3b5550f9892bce0e17cc50f26e655f2215ce3c9e

8 years agoAdd ELF.h and Dwarf.h from LLVM for gdbjit feature implementation. (dotnet/coreclr...
Evgeny Pavlov [Thu, 21 Jul 2016 16:41:54 +0000 (20:41 +0400)]
Add ELF.h and Dwarf.h from LLVM for gdbjit feature implementation. (dotnet/coreclr#6383)

Files were copied from http://llvm.org/git/llvm.git repo, commit: dotnet/coreclr@8b47c17a53d683f313eaaa93c4a53de26d8fcba5

Commit migrated from https://github.com/dotnet/coreclr/commit/bfe11c1f9326134daf9dd6f471b1d0b947437cf0

8 years agoifdef out CodeAccessPermission demand used in SerializationInfo on CoreCLR
Stephen Toub [Thu, 21 Jul 2016 15:29:59 +0000 (08:29 -0700)]
ifdef out CodeAccessPermission demand used in SerializationInfo on CoreCLR

It brings in an FCall not available on coreclr.

Commit migrated from https://github.com/dotnet/coreclr/commit/e95a6e82f410a74c702c8a338b99aeac3542dbdf

8 years agoMerge pull request dotnet/coreclr#6385 from kyulee1/reemail
Kyungwoo Lee [Thu, 21 Jul 2016 15:06:17 +0000 (08:06 -0700)]
Merge pull request dotnet/coreclr#6385 from kyulee1/reemail

ARM64: Reenable email notification

Commit migrated from https://github.com/dotnet/coreclr/commit/952151c221980e7722c6fcdc3d1ba1efafc63ceb

8 years agoARM64: Reenable email notification
Kyungwoo Lee [Thu, 21 Jul 2016 15:05:28 +0000 (08:05 -0700)]
ARM64: Reenable email notification

Commit migrated from https://github.com/dotnet/coreclr/commit/ecb2d02aaefec3e126981faa28e52c4f02b5f057

8 years agoExpose serialization primitives from System.Private.Corelib
Stephen Toub [Thu, 21 Jul 2016 04:46:55 +0000 (21:46 -0700)]
Expose serialization primitives from System.Private.Corelib

- Update the model.xml file to expose the serialization primitives from the runtime, e.g. [Serializable], [NonSerialized], ISerializable, etc.
- Tweak how FEATURE_SERIALIZATION is used on some types.  ISerializable and IDeserializationCallback are not ifdef'd based on FEATURE_SERIALIZATION, but their members are, which means there are some types which are implementing the interface but have the implementation of the interface's method ifdef'd.  This commit removes the ifdef'ing of the methods on the interface, and then ifdef's the implementation of the interface on the offending types.

Commit migrated from https://github.com/dotnet/coreclr/commit/292d4eaeb0656119acfe5bc654176792b35b5190

8 years agoMerge pull request dotnet/coreclr#6219 from adiaaida/compareLongs
Michelle McDaniel [Thu, 21 Jul 2016 13:41:33 +0000 (06:41 -0700)]
Merge pull request dotnet/coreclr#6219 from adiaaida/compareLongs

Fix silent bad codegen in signed comparison

Commit migrated from https://github.com/dotnet/coreclr/commit/92eeb0ef418b5c2aa08350a73b813c515c993ff6

8 years agoRemove DBG GcInfo encoder/decoder (dotnet/coreclr#6374)
Swaroop Sridhar [Thu, 21 Jul 2016 11:10:02 +0000 (04:10 -0700)]
Remove DBG GcInfo encoder/decoder (dotnet/coreclr#6374)

This change removes the redundant set of GcInfo encoder/decoder
in the CoreCLR tree called Debug encoder/decoders.

These components are expected to be are well-tested versions
for verification, but are not actively used.
They cause additional overhead wrt maintaining two versions of
GcInfo encoder/decoder as GcInfo format changes.

Commit migrated from https://github.com/dotnet/coreclr/commit/d1697c6f8b6e6d1f06b4d734fabd3b328e1dc724

8 years agoDocumentation: Add additional terminologies in the glossary.md (dotnet/coreclr#6372)
Geunsik Lim [Thu, 21 Jul 2016 10:23:30 +0000 (19:23 +0900)]
Documentation: Add additional terminologies in the glossary.md (dotnet/coreclr#6372)

It is a trivial patch. However, it will be helpful to developers that
learn the internals of CoreCLR via the source code and documents.

Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/4ba6e7418e6a34ffa7b8ba91cb10e004d30d803f

8 years agoMerge pull request dotnet/coreclr#6365 from jashook/arm32_umount
Jarret Shook [Thu, 21 Jul 2016 06:24:48 +0000 (23:24 -0700)]
Merge pull request dotnet/coreclr#6365 from jashook/arm32_umount

More verbose logging for arm32 umount

Commit migrated from https://github.com/dotnet/coreclr/commit/d12b41027de7db2ff3f690778f13ad0b12dc6ed8

8 years agoMore verbose logging for arm32 umount
jashook [Wed, 20 Jul 2016 22:04:38 +0000 (15:04 -0700)]
More verbose logging for arm32 umount

Umount fails occasionaly in the arm32 ci script. Add some logging
information using lsof before calling umount to diagnose which files are
open.

Commit migrated from https://github.com/dotnet/coreclr/commit/7c218f9557487eb4575638a3f10e368215e1d1f4

8 years agoMerge pull request dotnet/coreclr#6297 from CarolEidt/MorphGenTreeRefactors
Carol Eidt [Thu, 21 Jul 2016 04:19:14 +0000 (21:19 -0700)]
Merge pull request dotnet/coreclr#6297 from CarolEidt/MorphGenTreeRefactors

More Struct-related Refactorings

Commit migrated from https://github.com/dotnet/coreclr/commit/481c1818829b652b71fff4be9dad2d094965adeb

8 years agoMerge pull request dotnet/coreclr#6325 from swaroop-sridhar/R2Rver
Swaroop Sridhar [Thu, 21 Jul 2016 04:11:30 +0000 (21:11 -0700)]
Merge pull request dotnet/coreclr#6325 from swaroop-sridhar/R2Rver

GCInfo: Support versioning.

Commit migrated from https://github.com/dotnet/coreclr/commit/0d5eac078847baebb32653655373086d6729f923

8 years agoGCInfo: Support versioning.
Swaroop Sridhar [Fri, 15 Jul 2016 07:41:30 +0000 (00:41 -0700)]
GCInfo: Support versioning.

This change enables the VM to support multiple versions GCInfo concurrently.
This is necessary in light of upcoming work to add ReturnType and other
modifications to the GCInfo format -- so that existing ReadyToRun images
will continue to run correctly.

The version# is not stored in the GcInfo structure -- because it is
wasteful to store the version once for every method. Instead, it is
tracked per range-section of generated/loaded methods.

The GCInfo version is computed as:
1) The current GCINFO_VERSION for JITted and Ngened images
2) A function of the Ready-to-run major version stored in READYTORUN_HEADER
   for ready-to-run images. ReadyToRunJitManager::JitTokenToGCInfoVersion()
   provides the GcInfo version for any Method. Currently, there's only one
   version of GCInfo.

An abstraction GCInfoToken is added to the GcInfo interface, which tracks the
{GcInfo, Version} pair in-memory. Several GcInfo APIs are
modified to use GCInfoToken in place of GcInfo pointers.

Notes:
1) SOS GcDump: The GCDump API has separate dump routines for Header and the
pointer-liveness information (DumpGCTable and DumpGCHeader) each of which
advance a pointer to the GCInfo block. These APIs are not changed to
recieve a GCInfoToken in place of the GcInfo block pointer. Instead, they
recieve the GcInfo version at the time of construction.
2) Some routines that are specific to x86 gcInfo (ex: crackMethodInfoHdr)
are not yet updated to use versioning, since the development plan is to
update the Non-x86 GcInfo structure first.
3) The x86 specific structs defining GcInfo headers are moved to GcInfoTypes.h,
along with the non-x86 GcInfo type definitions.

Commit migrated from https://github.com/dotnet/coreclr/commit/f915aebaf5db0b829f062dc9940e23bb5c38d575

8 years agoRemove include of <utility> from seh.cpp (dotnet/coreclr#6359)
Jan Vorlicek [Thu, 21 Jul 2016 00:37:26 +0000 (02:37 +0200)]
Remove include of <utility> from seh.cpp (dotnet/coreclr#6359)

In my previous change that made exceptions smaller, I had `#include <utility>`
and I haven't realized that it pulls in some stl headers. That breaks build
on ARM.
The fix is to replace that include by defining just the std::move that's
all that was needed from the header.

Commit migrated from https://github.com/dotnet/coreclr/commit/32a020e47a0797bba4167e85efc38a34397f633e

8 years agoFix is_blittable partial specializations (dotnet/coreclr#6357)
joemmett [Wed, 20 Jul 2016 23:31:04 +0000 (16:31 -0700)]
Fix is_blittable partial specializations (dotnet/coreclr#6357)

The is_blittable partial specializations were defined using "class", privately
inheriting from std::true_type. This means the ::value member variable will
be inaccessible to most users of these types. Thus the type
``std::enable_if<is_blittable<T>::value>::type'' will always result in a
substitution failure with a compiler that respects accessibility in SFINAE.

This commit changes "class" to "struct" for these partial specializations
so they inherit publicly from std::true_type.

Commit migrated from https://github.com/dotnet/coreclr/commit/8cdcdf1e8e2ed789c8a689553a384bb6fd1d7bcd

8 years agoFix bug: inlinee did not copy inlinee bbFlags to caller bbFlags.
Egor Chesakov [Tue, 19 Jul 2016 18:33:19 +0000 (11:33 -0700)]
Fix bug: inlinee did not copy inlinee bbFlags to caller bbFlags.

Commit migrated from https://github.com/dotnet/coreclr/commit/45cff6169b2ec915f1aae567a9581f0e3265de39

8 years agoMore Struct-related Refactorings
Carol Eidt [Fri, 15 Jul 2016 19:29:29 +0000 (12:29 -0700)]
More Struct-related Refactorings

- Make GT_OBJ and GT_NULLCHECK derive from GenTreeIndir, as they are also indirections.
- Extract the ordering-related methods from gentree and optcse, as they will need to be used slightly differently for struct assignments.
- Make fgMorphImplicitByRefArgs take a pointer to the tree, as it may need to replace the tree with one that a simple CopyFrom() will not work for.
- In gtSetEvalOrder(), in the addressing mode code, replace "adr" with "base" and "op1" with "addr", as the existing names are quite confusing.
- Other minor refactorings to reduce future diffs.

Commit migrated from https://github.com/dotnet/coreclr/commit/c4ac0d992c883342dd6dff3b1da2565bc0f7b0a1

8 years agoMerge pull request dotnet/coreclr#6326 from sivarv/phase2
Sivarv [Wed, 20 Jul 2016 22:14:58 +0000 (15:14 -0700)]
Merge pull request dotnet/coreclr#6326 from sivarv/phase2

Support for reg optional tree temps.

Commit migrated from https://github.com/dotnet/coreclr/commit/34e1626bc3a49b50900ca192bed1f97524d81e6a

8 years agoMerge pull request dotnet/coreclr#6242 from Maoni0/race
Maoni Stephens [Wed, 20 Jul 2016 21:55:48 +0000 (14:55 -0700)]
Merge pull request dotnet/coreclr#6242 from Maoni0/race

Fixed race condition in setting dd_new_allocation

Commit migrated from https://github.com/dotnet/coreclr/commit/4529b0a0d9fd09b89843d5ba894151d7202e3c23

8 years agoMerge pull request dotnet/coreclr#6348 from hseok-oh/softfp_rootfs
Aditya Mandaleeka [Wed, 20 Jul 2016 21:24:02 +0000 (14:24 -0700)]
Merge pull request dotnet/coreclr#6348 from hseok-oh/softfp_rootfs

Fix to ignore codename for arm-softfp

Commit migrated from https://github.com/dotnet/coreclr/commit/e157ba344f73e937dbac8dceb425e7dda7061101

8 years agoSupport for reg optional tree temps.
sivarv [Mon, 18 Jul 2016 23:56:59 +0000 (16:56 -0700)]
Support for reg optional tree temps.

Commit migrated from https://github.com/dotnet/coreclr/commit/0a817e0195e76a94e88ccd6a8779ed6451e8640a

8 years agoMerge pull request dotnet/coreclr#6323 from wtgodbe/updatePackages
William Godbe [Wed, 20 Jul 2016 19:01:10 +0000 (12:01 -0700)]
Merge pull request dotnet/coreclr#6323 from wtgodbe/updatePackages

Enable automatic updating of package versions in test project.json files

Commit migrated from https://github.com/dotnet/coreclr/commit/cfb651c8e3feca5bf18de4d67dbd84fdb2085407

8 years agoEnable automatic updating of package versions in test project.json files
wtgodbe [Mon, 18 Jul 2016 22:25:04 +0000 (15:25 -0700)]
Enable automatic updating of package versions in test project.json files

Commit migrated from https://github.com/dotnet/coreclr/commit/f6116a5263f1d23c4b4501524ec82176e96740b1

8 years agoMerge pull request dotnet/coreclr#6360 from mmitche/fix-regex
Matt Mitchell [Wed, 20 Jul 2016 18:43:52 +0000 (11:43 -0700)]
Merge pull request dotnet/coreclr#6360 from mmitche/fix-regex

Incorrect quoting around regex string

Commit migrated from https://github.com/dotnet/coreclr/commit/ad7d6463426b5b515b98223659494674af8a5102

8 years agoIncorrect quoting around regex string
Matt Mitchell [Wed, 20 Jul 2016 18:43:07 +0000 (11:43 -0700)]
Incorrect quoting around regex string
Strings requiring inline replacement need double quotes

Commit migrated from https://github.com/dotnet/coreclr/commit/c110738b7d3dc9cffc46883234450cf0d97587f1

8 years agoFix silent bad codegen in signed comparison
Michelle McDaniel [Mon, 11 Jul 2016 16:32:56 +0000 (09:32 -0700)]
Fix silent bad codegen in signed comparison

While working on dotnet/coreclr#5956, I uncovered a silent bad codegen bug in signed
comparison. The way the code was written, we'd do an unsigned set after a
signed compare/jump from the high comparison. However, in this case, we
need to make sure that we are honoring the sign of the comparison done on
the high part of the operation, and the lo comparison would still want to
be an unsigned compare followed by an unsigned set. This change splits
comparisons into two cases: 1) A signed comparison where we have two jumps
for the high part (GT_GT, GT_LT, GT_GE, and GT_LE), which require a signed
set if the high comparisons are true, and an unsigned set if not, and 2)
An unsigned comparison, or a comparison where the sign does not matter for
the compare (GT_NE, GT_EQ), which just require an unsigned set for both
the high and lo operations (the code we already had in genCompareLong).

When we compare longs, we don't need to have both a jg/ja and a jne
instruction for the hi compare for the case where we enregister the result
of the compare, since the set will do the right thing. We only need to
check the lo halves if the hi halves were equal.

For long compares where the result isn't stored in a register, we need to use
signed jumps for the high comparison, and unsigned jumps for the low compare.
Currently, we generate a signed jump in the code for GT_JTRUE that is used by
both compares. This change modifies the logic for these compares/JTRUEs.
We separate the logic into genJTrueLong. In genJTrueLong, we use similar
logic as the legacy backend for the jumps, using a signed jump after the
high compare when we have signed operands, and unsigned jump when we have
a unsigned operands, and an unsigned jump for the low compare.

This change also modifies genJumpKindsForTreeLongHi, since it is now only
used for the uncontained case, where we need to jump to the bbJumpDest if
the compare is true, so we need to use the actual jump type, rather than
just checking for inequality (as inequality only tells us if we need to
check the low halves, not if the condition is true or not).

This change also adds test cases for the two silent bad codegen cases this
commit fixes.

Commit migrated from https://github.com/dotnet/coreclr/commit/243e7c4f661d5ad0217c9e743c391a0df43bb6a0