platform/upstream/coreclr.git
7 years agoMerge pull request #7392 from kouvel/TestFix
Koundinya Veluri [Wed, 28 Sep 2016 19:19:08 +0000 (12:19 -0700)]
Merge pull request #7392 from kouvel/TestFix

Work around issue in #7365 by referencing System.Reflection.Extension…

7 years agoFix System.Diagnostics.StackTrace version in stack trace helper code (#7395)
Mike McLaughlin [Wed, 28 Sep 2016 18:35:28 +0000 (11:35 -0700)]
Fix System.Diagnostics.StackTrace version in stack trace helper code (#7395)

Issue #7381

7 years agoMerge pull request #7306 from hseok-oh/fix_6667_2
Russ Keldorph [Wed, 28 Sep 2016 18:03:37 +0000 (11:03 -0700)]
Merge pull request #7306 from hseok-oh/fix_6667_2

Fix 6667: Constant folding for unsigned long divide operation

7 years agoWork around issue in #7365 by referencing System.Reflection.Extensions directly in...
Koundinya Veluri [Wed, 28 Sep 2016 05:52:01 +0000 (22:52 -0700)]
Work around issue in #7365 by referencing System.Reflection.Extensions directly in some test projects

7 years agoMerge pull request #7379 from gkhanna79/SimplePkgVer
Gaurav Khanna [Wed, 28 Sep 2016 04:29:34 +0000 (21:29 -0700)]
Merge pull request #7379 from gkhanna79/SimplePkgVer

Centralize versioning and stabilization of nuget packages.

7 years agoInvoke 'copy_test_native_bin_to_test_root' inside 'create_core_overlay' (#5676)
Jonghyun Park [Wed, 28 Sep 2016 03:46:16 +0000 (12:46 +0900)]
Invoke 'copy_test_native_bin_to_test_root' inside 'create_core_overlay' (#5676)

This commit tries to fix #5675.

7 years agoSpecialize IndexOf, LastIndexOf for the enum equality comparers (#5804)
James Ko [Wed, 28 Sep 2016 03:45:33 +0000 (23:45 -0400)]
Specialize IndexOf, LastIndexOf for the enum equality comparers (#5804)

7 years agoMerge pull request #7367 from sivarv/simdeq
Sivarv [Tue, 27 Sep 2016 21:05:33 +0000 (14:05 -0700)]
Merge pull request #7367 from sivarv/simdeq

Optimize SIMD codegen for (in)equality check against zero that produces bool result.

7 years agoCentralize APISet and WinArm32 package versions as well.
Gaurav Khanna [Tue, 27 Sep 2016 20:29:35 +0000 (13:29 -0700)]
Centralize APISet and WinArm32 package versions as well.

7 years agoCentralize versioning and stabilization of nuget packages.
Gaurav Khanna [Tue, 27 Sep 2016 18:32:36 +0000 (11:32 -0700)]
Centralize versioning and stabilization of nuget packages.

7 years agoMove dlstack test exclusion to all configurations instead of (#7364)
Sean Gillespie [Tue, 27 Sep 2016 18:07:13 +0000 (11:07 -0700)]
Move dlstack test exclusion to all configurations instead of (#7364)

just ryujit/x86, since it fails in other configurations as well.

7 years agoOptimize SIMD codegen for (in)equality check against zero that produces bool result.
sivarv [Tue, 27 Sep 2016 00:38:12 +0000 (17:38 -0700)]
Optimize SIMD codegen for (in)equality check against zero that produces bool result.

7 years agoremove comments
Hyeongseok Oh [Tue, 27 Sep 2016 00:48:48 +0000 (09:48 +0900)]
remove comments

7 years agoFix arm64 build issue #7355. (#7362)
Mike McLaughlin [Mon, 26 Sep 2016 22:58:32 +0000 (15:58 -0700)]
Fix arm64 build issue #7355. (#7362)

7 years agoIntroduce "IGCToCLR" and use it within the GC to interface with the EE (#7295)
Sean Gillespie [Mon, 26 Sep 2016 21:23:52 +0000 (14:23 -0700)]
Introduce "IGCToCLR" and use it within the GC to interface with the EE (#7295)

* Introduce a feature define FEATURE_STANDALONE_GC that allows
the GC to communicate with the EE through a virtual interface.

* Split GCToEEInterface definition out of gc.h into its own header

* Address code review feedback

* Address code review feedback

7 years agoCheck PAL first, and then Windows Phone (#7354)
Jonghyun Park [Mon, 26 Sep 2016 10:58:35 +0000 (19:58 +0900)]
Check PAL first, and then Windows Phone (#7354)

7 years agoAdd missing System.Security ns types. (#7352)
Dan Moseley [Mon, 26 Sep 2016 03:32:11 +0000 (20:32 -0700)]
Add missing System.Security ns types. (#7352)

7 years agoAdd the IsSecurityXX properties omitted from Type base class (#7349)
Dan Moseley [Sun, 25 Sep 2016 14:04:40 +0000 (07:04 -0700)]
Add the IsSecurityXX properties omitted from Type base class (#7349)

7 years agoAdd Math.Clamp methods (#7242)
Hugh Bellamy [Sun, 25 Sep 2016 14:03:40 +0000 (15:03 +0100)]
Add Math.Clamp methods (#7242)

7 years agoMicro-optimization for IList.Contains array implementation (#7347)
James Ko [Sun, 25 Sep 2016 03:11:10 +0000 (23:11 -0400)]
Micro-optimization for IList.Contains array implementation (#7347)

7 years agoMerge pull request #7328 from ramarag/removemarkers
Rama krishnan Raghupathy [Sat, 24 Sep 2016 00:51:45 +0000 (17:51 -0700)]
Merge pull request #7328 from ramarag/removemarkers

Adding MemoryFailPoint and  Removing some markers

7 years agoMerge pull request #7337 from tarekgh/FixCollationNames
Tarek Mahmoud Sayed [Sat, 24 Sep 2016 00:48:50 +0000 (17:48 -0700)]
Merge pull request #7337 from tarekgh/FixCollationNames

Fix the Collation name returned from CompareInfo.Name and TextInfo.Name

7 years agoRemove CoreCLR's dependency on the diasymreader.dll installed as part of the full...
Mike McLaughlin [Sat, 24 Sep 2016 00:39:43 +0000 (17:39 -0700)]
Remove CoreCLR's dependency on the diasymreader.dll installed as part of the full .NET Framework on Desktop (#7336)

* Remove CoreCLR's dependency on the diasymreader.dll installed as part of the full .NET Framework on Desktop

Issue #5922

* Code review feedback.

7 years agoMerge pull request #7332 from JosephTremoulet/InlineVolatile
Joseph Tremoulet [Fri, 23 Sep 2016 23:55:48 +0000 (19:55 -0400)]
Merge pull request #7332 from JosephTremoulet/InlineVolatile

Allow inlining with volatile actual argument exprs

7 years agoFix the Collation name returned from CompareInfo.Name and TextInfo.Name
Tarekm Mahmoud Sayed [Fri, 23 Sep 2016 22:05:27 +0000 (15:05 -0700)]
Fix the Collation name returned from CompareInfo.Name and TextInfo.Name

this was a regression #7004 and caused the issue #1139

7 years agoAdding MemoryFailPoint Removing some markers
Rama Krishnan Raghupathy [Thu, 22 Sep 2016 21:50:03 +0000 (14:50 -0700)]
Adding MemoryFailPoint Removing some markers

7 years agoupdate JIT_MemSet/MemCpy, Buffer::BlockCopy and Buffer::InternalBlock… (#7198)
Xiangyang (Mark) Guo [Fri, 23 Sep 2016 19:33:36 +0000 (12:33 -0700)]
update JIT_MemSet/MemCpy, Buffer::BlockCopy and Buffer::InternalBlock… (#7198)

* update JIT_MemSet/MemCpy, Buffer::BlockCopy and Buffer::InternalBlockCopy

* add header comments

7 years agoMerge pull request #7327 from JeremyKuhne/fixshortpath
Jeremy Kuhne [Fri, 23 Sep 2016 19:10:57 +0000 (12:10 -0700)]
Merge pull request #7327 from JeremyKuhne/fixshortpath

Fix 8.3 UNC expansion

7 years agoMerge pull request #7329 from sivarv/SimdGetItemFix
Sivarv [Fri, 23 Sep 2016 19:07:48 +0000 (12:07 -0700)]
Merge pull request #7329 from sivarv/SimdGetItemFix

Optimize codegen for SIMDIntrinsicGetItem when SIMD vector is a memory-op.

7 years agoOptimize codegen for SIMDIntrinsicGetItem when SIMD vector is a memory-op.
sivarv [Thu, 22 Sep 2016 23:19:08 +0000 (16:19 -0700)]
Optimize codegen for SIMDIntrinsicGetItem when SIMD vector is a memory-op.

7 years agoRemove vestigial assertions
Joseph Tremoulet [Thu, 15 Sep 2016 17:59:09 +0000 (13:59 -0400)]
Remove vestigial assertions

The inliner used to have its own import path, which required calling
special inline versions of the spill helpers; these asserts were intended
to ensure that these regular spill helpers are not invoked during inlining,
which they do by asserting against `fgGlobalMorph`, since that flag was set
during inlining in the old code.  The inliner has since been updated to
re-use the main import code, and also to run when `fgGlobalMorph` is not
set anyway.  So these helpers currently run successfully during inlining,
despite the stale comment; remove the bogus assertions.

7 years agoAllow inlining with volatile actual argument exprs
Joseph Tremoulet [Thu, 15 Sep 2016 17:55:29 +0000 (13:55 -0400)]
Allow inlining with volatile actual argument exprs

When presented with an argument marked `GFT_ORDER_SIDEEFF`, mark the
argument `argHasSideEff` and allow inlining.  Remove the vestigial code to
disallow inlining in these cases; it corresponded to a prior inliner
implementation with a different import path that has since been removed;
the inliner now re-uses the main import path, which can handle the
necessary stack spilling in the presence of `GTF_ORDER_SIDEEFF`.

Fixes #7054.

7 years agoRemove the dependency of using config.json in cwd (#7330)
Jarret Shook [Fri, 23 Sep 2016 14:16:09 +0000 (07:16 -0700)]
Remove the dependency of using config.json in cwd (#7330)

Currently the config.json file is looked for in the current working
directory. This change forces run.exe to use the relative path of
the file relative to the build script.

7 years agoExpose some types/members (#7320)
Koundinya Veluri [Fri, 23 Sep 2016 02:10:23 +0000 (19:10 -0700)]
Expose some types/members (#7320)

* Expose some types/members

Expose some types/members needed for dotnet/corefx#11631, dotnet/corefx#11729, and dotnet/corefx#11231

7 years agoSplit MORPH into multiple phases. (#7314)
Peter Kukol [Fri, 23 Sep 2016 00:26:08 +0000 (17:26 -0700)]
Split MORPH into multiple phases. (#7314)

* Split MORPH into multiple phases.

7 years agoMerge pull request #7325 from tarekgh/AddStringInfoMethods
Tarek Mahmoud Sayed [Fri, 23 Sep 2016 00:09:14 +0000 (17:09 -0700)]
Merge pull request #7325 from tarekgh/AddStringInfoMethods

Add the needed StringInfo methods to Linux implementation

7 years agoFix 8.3 UNC expansion
Jeremy Kuhne [Thu, 22 Sep 2016 23:08:34 +0000 (16:08 -0700)]
Fix 8.3 UNC expansion

This ports the fix from
https://github.com/dotnet/corefx/pull/11984

7 years agoAdd the needed StringInfo methods to Linux implementation
Tarekm Mahmoud Sayed [Thu, 22 Sep 2016 21:06:44 +0000 (14:06 -0700)]
Add the needed StringInfo methods to Linux implementation

7 years agoMerge pull request #7303 from CarolEidt/Fix7195
Carol Eidt [Thu, 22 Sep 2016 20:58:55 +0000 (13:58 -0700)]
Merge pull request #7303 from CarolEidt/Fix7195

DynBlk assert fixes for Arm64

7 years agoAdd System.Reflection.Pointer deserialization ctor to model.xml (#7322)
Stephen Toub [Thu, 22 Sep 2016 20:56:41 +0000 (13:56 -0700)]
Add System.Reflection.Pointer deserialization ctor to model.xml (#7322)

7 years agoMerge pull request #7318 from dotnet-bot/from-tfs
Jan Kotas [Thu, 22 Sep 2016 20:56:16 +0000 (13:56 -0700)]
Merge pull request #7318 from dotnet-bot/from-tfs

Merge changes from TFS

7 years agoFix Unable to step through Visual Studio remote debugger with coreclr executables...
Mike McLaughlin [Thu, 22 Sep 2016 20:51:13 +0000 (13:51 -0700)]
Fix Unable to step through Visual Studio remote debugger with coreclr executables on Nano Server (#7317)

Needed to add back a dummy version of ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly interface so
VS doesn't get the QI failure and stop working by not calling the "Continue" method.

Issue #7316

7 years agoMerge pull request #7319 from pgavlin/GTLongFieldList
Pat Gavlin [Thu, 22 Sep 2016 20:10:32 +0000 (13:10 -0700)]
Merge pull request #7319 from pgavlin/GTLongFieldList

Decompose GT_FIELD_LIST nodes that use a GT_LONG.

7 years agoMerge pull request #7315 from tarekgh/DigitsValueUnicodecategory
Tarek Mahmoud Sayed [Thu, 22 Sep 2016 19:46:40 +0000 (12:46 -0700)]
Merge pull request #7315 from tarekgh/DigitsValueUnicodecategory

Support Digit and Decimal values in CharUnicodeInfo

7 years agoFix formatting issues.
Pat Gavlin [Thu, 22 Sep 2016 17:33:01 +0000 (10:33 -0700)]
Fix formatting issues.

7 years agoMerge pull request #7309 from CarolEidt/x86MkRefAny
Carol Eidt [Thu, 22 Sep 2016 17:31:46 +0000 (10:31 -0700)]
Merge pull request #7309 from CarolEidt/x86MkRefAny

Support mkrefany for x86

7 years agoSupport Digit and Decimal values in CharUnicodeInfo
Tarekm Mahmoud Sayed [Thu, 22 Sep 2016 16:50:32 +0000 (09:50 -0700)]
Support Digit and Decimal values in CharUnicodeInfo

This change adding the needed data for the digit and decimal values and the needed code to use the data and return the required values

7 years agoMerge pull request #7294 from pgavlin/longLclFld
Pat Gavlin [Thu, 22 Sep 2016 17:17:15 +0000 (10:17 -0700)]
Merge pull request #7294 from pgavlin/longLclFld

Implement `st.lclFld` decomposition and fix #6778.

7 years agoAddress PR feedback.
Pat Gavlin [Thu, 22 Sep 2016 17:16:27 +0000 (10:16 -0700)]
Address PR feedback.

7 years ago[GDB/JIT] Add support for lldb step-over command on managed code (#7273)
Dmitri-Botcharnikov [Thu, 22 Sep 2016 17:13:52 +0000 (21:13 +0400)]
[GDB/JIT] Add support for lldb step-over command on managed code (#7273)

7 years agoDecompose GT_FIELD_LIST nodes that use a GT_LONG.
Pat Gavlin [Thu, 22 Sep 2016 17:12:59 +0000 (10:12 -0700)]
Decompose GT_FIELD_LIST nodes that use a GT_LONG.

These nodes are decomposed by splitting the appropriate field list
element into two elements: one each for the low and high halves of
the GT_LONG.

7 years agoGcInfo V2 for Jit32 Desktop
dotnet-bot [Thu, 22 Sep 2016 16:58:40 +0000 (09:58 -0700)]
GcInfo V2 for Jit32 Desktop

This change switches Jit32 on Desktop CLR to use GcInfo V2 encodings.
The updates to the encoder are in this change, and the necessary changes
to the decoder in the VM are already in place.

Testing:
Standard DDR testing
X86 GCStress testing

[tfs-changeset: 1628772]

7 years agoMerge pull request #7312 from adiaaida/improveFormattingVerbosity
Michelle McDaniel [Thu, 22 Sep 2016 16:41:29 +0000 (09:41 -0700)]
Merge pull request #7312 from adiaaida/improveFormattingVerbosity

Improve formatting job output

7 years agoImprove formatting job output
Michelle McDaniel [Thu, 22 Sep 2016 15:58:47 +0000 (08:58 -0700)]
Improve formatting job output

To make it more clear where there are formatting errors, have format.py
print what commands the user needs to run to fix the formatting errors in
their PR.

7 years agoMerge pull request #7311 from adiaaida/fixutilsformatting
Michelle McDaniel [Thu, 22 Sep 2016 15:24:57 +0000 (08:24 -0700)]
Merge pull request #7311 from adiaaida/fixutilsformatting

Fix formatting in utils.cpp

7 years agoFix formatting in utils.cpp
Michelle McDaniel [Thu, 22 Sep 2016 15:23:35 +0000 (08:23 -0700)]
Fix formatting in utils.cpp

7 years agoSupport mkrefany for x86
Carol Eidt [Thu, 22 Sep 2016 05:49:59 +0000 (22:49 -0700)]
Support mkrefany for x86

Use a GT_FIELD_LIST to pass the RefAny struct.

Fix #4183

7 years agoSupports cross build configuration override (#7307)
Jonghyun Park [Thu, 22 Sep 2016 13:53:18 +0000 (22:53 +0900)]
Supports cross build configuration override (#7307)

7 years agoMerge pull request #7304 from dotnet-bot/from-tfs
Jan Kotas [Thu, 22 Sep 2016 13:47:29 +0000 (06:47 -0700)]
Merge pull request #7304 from dotnet-bot/from-tfs

Merge changes from TFS

7 years agoGenerate CrossGen Pdbs as part of bulid (#7298)
Vance Morrison [Thu, 22 Sep 2016 13:46:49 +0000 (06:46 -0700)]
Generate CrossGen Pdbs as part of bulid (#7298)

This change has two parts.  The first part changes build.cmd and the pkgproj
so that as part of generating a .NET Core package we also generate the PDBS
for the Native System.Private.Corelib.ni.dll.

The second part changes crossgen so that it marks the Native Images as having
a list of 0 exports.   This is important because we want the generated PDBs
to be naturally published on the symbol server, and currently the symbol server
skips DLLs what are 'resource only' (no imports or exports).   Because native
images don't use 'normal' PE imports and exports, they get optimized away
by the symbol server.  Making a empy list of exports fixes this.

7 years agoDisplay histogram of total memory per method when MEASURE_MEM_ALLOC is on. (#7286)
Peter Kukol [Thu, 22 Sep 2016 05:39:06 +0000 (22:39 -0700)]
Display histogram of total memory per method when MEASURE_MEM_ALLOC is on. (#7286)

* Display histogram of total memory per method when MEASURE_MEM_ALLOC is on.

7 years agoFix 6667: Constant folding for unslgined long divide operation
Hyeongseok Oh [Thu, 22 Sep 2016 03:03:53 +0000 (12:03 +0900)]
Fix 6667: Constant folding for unslgined long divide operation

7 years agoMerge pull request #7285 from sivarv/internalReg
Sivarv [Thu, 22 Sep 2016 01:28:49 +0000 (18:28 -0700)]
Merge pull request #7285 from sivarv/internalReg

 Support Lower to reserve internal register(s) different from targetReg.

7 years agoImplement `st.lclFld` decomposition and fix #6778.
Pat Gavlin [Tue, 20 Sep 2016 23:44:53 +0000 (16:44 -0700)]
Implement `st.lclFld` decomposition and fix #6778.

The problem that was blocking both of these issues was an issue in
liveness when analyzing `st.lclFld` nodes that store to an unpromoted
long-typed local variable or any long-typed field. The latter case--a
`st.lclFld` node that targets a long-typed field--is easy to handle.
Such stores are decomposed from:

```
         /--*  t0 int
         +--*  t1 int
    t2 = *  gt_long long

         /--*  t2
         *  st.lclFld long V00
```

To:

```
         /--* t0
         *  st.lclFld int V00 [+0]

         /--* t1
         *  st.lclFld int V00 [+4]
```

The two `st.lclFld` nodes that this transformation generates are marked
with `GTF_VAR_USEASG` to indicate that they are partial (rather than
complete) defs. This is necessary in order to correctly calculate
liveness.

Before this change, stores to unpromoted long-typed local variables
were also decomposed in the above fashion. These local vars can arise in
a number of situations:
- vars that are used to store multi-reg args or return values
- vars that represent long-typed fields of promoted struct-typed vars
- long-typed vars that are marked as unenregisterable before decomp

Unfortunately, the decomposition given above differs in its liveness
semantics when compared to the original IR: in the original IR, the
`st.lclVar` is considered a plain def of its destination, while in
the decomposed IR, each `st.lclFld` is considered both a partial def
and a use of its destination. This difference--namely, that in the
first case the destination is not used at the def and in the second
case it is--causes problems for any analysis that needs to take into
account whether or not a variable is used at a def (e.g. dead store
removal, live-in sets, etc.). In order to retain the original
semantics without complicating the IR, stores to unpromoted, long-typed
local variables are not decomposed. These stores are instead handled
during code generation.

7 years agoAdd missing contracts on GCHeapUtilities
dotnet-bot [Thu, 22 Sep 2016 01:05:43 +0000 (18:05 -0700)]
Add missing contracts on GCHeapUtilities

[tfs-changeset: 1628632]

7 years agoDynBlk assert fixes for Arm64
Carol Eidt [Thu, 22 Sep 2016 00:47:00 +0000 (17:47 -0700)]
DynBlk assert fixes for Arm64

In the case where the block size is not a constant, there were some incorrect asserts. The size register is on the size node itself, the node is a store, and the check for whether the size is a handle used to be guarded by a check that it is GT_CNS_INT, but since it was really intended to assert that there are no gc pointers, according to the comment on the old code, it doesn't really seem to be a useful assert (we could never get a size node in that case, in the new IR form).

7 years agoMerge pull request #7302 from adiaaida/moreFormatting
Michelle McDaniel [Thu, 22 Sep 2016 00:27:26 +0000 (17:27 -0700)]
Merge pull request #7302 from adiaaida/moreFormatting

Fix formatting in ssabuilder

7 years agoSupport Lower to reserve internal register(s) different from targetReg.
sivarv [Wed, 21 Sep 2016 22:17:04 +0000 (15:17 -0700)]
Support Lower to reserve internal register(s) different from targetReg.

7 years agoMerge pull request #7299 from tarekgh/MarkCultureInfoMethodsAsPublic
Tarek Mahmoud Sayed [Wed, 21 Sep 2016 23:01:59 +0000 (16:01 -0700)]
Merge pull request #7299 from tarekgh/MarkCultureInfoMethodsAsPublic

Mark some CultureInfo methods as public

7 years agoFix formatting in ssabuilder
Michelle McDaniel [Wed, 21 Sep 2016 22:10:31 +0000 (15:10 -0700)]
Fix formatting in ssabuilder

The formatting changes missed the new changes to ssabuilder. Format that
file.

7 years agoMerge pull request #7291 from adiaaida/format
Michelle McDaniel [Wed, 21 Sep 2016 21:57:18 +0000 (14:57 -0700)]
Merge pull request #7291 from adiaaida/format

Reformat jit source base and turn on formatting jobs for PR

7 years agoMerge pull request #7284 from gkhanna79/Ver120
Gaurav Khanna [Wed, 21 Sep 2016 21:56:33 +0000 (14:56 -0700)]
Merge pull request #7284 from gkhanna79/Ver120

Update Nuget package versions to 1.2.0

7 years agoMark some CultureInfo methods as public
Tarek Mahmoud Sayed [Wed, 21 Sep 2016 21:10:44 +0000 (14:10 -0700)]
Mark some CultureInfo methods as public

We are exposing such APIs now so we need them to be public

7 years agoFix formatting job for Ubuntu
Michelle McDaniel [Wed, 21 Sep 2016 18:18:21 +0000 (11:18 -0700)]
Fix formatting job for Ubuntu

The change to move to the newer version of the CLI for coreclr causes
something to look for a config.json file in the current directory (rather
than the directory where the build.sh script resides), forcing build.sh to
be run from the base coreclr dir (you can't run it from any other
location), so changing directories to the jitutils bin directory would
cause the build to fail, failing the jit-format run. This change fixes the
format.py script to build the full path to the jit-format executable and
then run it from the coreclr directory, rather than changing to the utils
bin dir and running jit-format from there.

7 years agoMake formatting jobs required for PR
Michelle McDaniel [Wed, 21 Sep 2016 16:56:46 +0000 (09:56 -0700)]
Make formatting jobs required for PR

7 years agoFix conflicts between nix and Windows formatting
Michelle McDaniel [Wed, 21 Sep 2016 17:30:30 +0000 (10:30 -0700)]
Fix conflicts between nix and Windows formatting

7 years agoReformat jit code on OSX
Michelle McDaniel [Wed, 21 Sep 2016 16:39:53 +0000 (09:39 -0700)]
Reformat jit code on OSX

7 years agoReformat jit code for Windows x64
Michelle McDaniel [Wed, 21 Sep 2016 16:25:28 +0000 (09:25 -0700)]
Reformat jit code for Windows x64

7 years agoMerge pull request #7191 from erozenfeld/SSAStackOverflow
Eugene Rozenfeld [Wed, 21 Sep 2016 20:41:18 +0000 (13:41 -0700)]
Merge pull request #7191 from erozenfeld/SSAStackOverflow

Fix for StackOverflow in SsaBuilder::TopologicalSort.

7 years agoFix OS X build break with AppleClang 8.0.0 (#7292)
John Chen [Wed, 21 Sep 2016 20:29:21 +0000 (13:29 -0700)]
Fix OS X build break with AppleClang 8.0.0 (#7292)

Fixes issue #7275

7 years agoMerge pull request #7293 from CarolEidt/FixArmObj
Carol Eidt [Wed, 21 Sep 2016 19:54:19 +0000 (12:54 -0700)]
Merge pull request #7293 from CarolEidt/FixArmObj

Fix Arm64 codegen to use GT_FIELD_LIST

7 years agoMerge pull request #7289 from CarolEidt/Fix7196
Carol Eidt [Wed, 21 Sep 2016 18:52:45 +0000 (11:52 -0700)]
Merge pull request #7289 from CarolEidt/Fix7196

Fix Issue 7196: No extra internal regs for block nodes

7 years agoFix Arm64 codegen to use GT_FIELD_LIST
Carol Eidt [Wed, 21 Sep 2016 18:12:45 +0000 (11:12 -0700)]
Fix Arm64 codegen to use GT_FIELD_LIST

In #7252 changing GT_LIST to GT_FIELD_LIST when passing struct fields,
I omitted some required changes to codegenarm64.cpp. This caused the
crossgen of System.Private.CoreLib.dll to fail.

7 years agoFix for StackOverflow in SsaBuilder::TopologicalSort.
Eugene Rozenfeld [Wed, 14 Sep 2016 19:41:47 +0000 (12:41 -0700)]
Fix for StackOverflow in SsaBuilder::TopologicalSort.

SsaBuilder::TopologicalSort allocated an array of bools on the stack.
In one of internal cases the array had 126,758 elements, which caused a
StackOverflow. This change switches SsaBuilder::TopologicalSort from
stack-allocated array of bools to BitVec.

TopologicalSortHelper used to be recursive. It was changed to use an iterative
algorithm in a previous change. I'm inlining TopologicalSortHelper into
TopologicalSort now.

I verified no measurable negative throughput impact from this change
and no asm diffs in SuperPMI.

7 years agoFix Issue 7196: No extra internal regs for block nodes
Carol Eidt [Wed, 21 Sep 2016 16:13:20 +0000 (09:13 -0700)]
Fix Issue 7196: No extra internal regs for block nodes

There is some possibly obsolete code that copies the internal registers
for a GT_IND onto the address node as well. With the struct IR changes,
the block nodes (e.g. GT_STORE_BLK) also return true for OperIsIndir(),
so they were getting the internal registers copied over from their address
node. This led to an assert on Arm64.

Fix #7196

7 years agoFix CrossGen error reporting when input is missing (#7287)
John Chen [Wed, 21 Sep 2016 13:50:03 +0000 (06:50 -0700)]
Fix CrossGen error reporting when input is missing (#7287)

Currently, running "crossgen foo.dll" when foo.dll does not exist produces
a misleading error message "The image being compiled is not a .NET assembly".
The reason is CrossGen ignores the actual error code reported during
initial asssembly load and verification, and always reports the error as
NGEN_E_FILE_NOT_ASSEMBLY. This change removes that logic, since the original
error code is much more likely to be useful.

7 years agoIf out some dead code in System.Array for FEATURE_CORECLR (#7288)
Hugh Bellamy [Wed, 21 Sep 2016 13:48:08 +0000 (14:48 +0100)]
If out some dead code in System.Array for FEATURE_CORECLR (#7288)

7 years agoClean up GenTree node size dumping code. (#7278)
Peter Kukol [Wed, 21 Sep 2016 01:59:34 +0000 (18:59 -0700)]
Clean up GenTree node size dumping code. (#7278)

Clean up GenTreeXxxx struct size dump; fix 32-bit build when MEASURE_NODE_SIZE is enabled.

7 years agoMerge pull request #7280 from JosephTremoulet/BoundsCheckDisable
Joseph Tremoulet [Wed, 21 Sep 2016 00:49:23 +0000 (20:49 -0400)]
Merge pull request #7280 from JosephTremoulet/BoundsCheckDisable

Respect JitNoRangeChks flag in RyuJit

7 years agoUpdate Nuget package versions to 1.2.0
Gaurav Khanna [Wed, 21 Sep 2016 00:44:03 +0000 (17:44 -0700)]
Update Nuget package versions to 1.2.0

7 years agoMerge pull request #7252 from CarolEidt/x86GtObj
Carol Eidt [Tue, 20 Sep 2016 23:41:35 +0000 (16:41 -0700)]
Merge pull request #7252 from CarolEidt/x86GtObj

Support GT_OBJ for x86

7 years agoFix launch timing issue in dbgshim found in VS. (#7279)
Mike McLaughlin [Tue, 20 Sep 2016 22:22:33 +0000 (15:22 -0700)]
Fix launch timing issue in dbgshim found in VS. (#7279)

Issue #7274.

7 years agoRespect JitNoRangeChks flag in RyuJit
Joseph Tremoulet [Tue, 20 Sep 2016 20:09:32 +0000 (16:09 -0400)]
Respect JitNoRangeChks flag in RyuJit

Honor this config flag by having assertion prop treat all bounds check
nodes as redundant when it is set.

Also change the flag's lookup options to `REGUTIL_default` to match the
rest of the jit-focused flags.

Note that support for this flag is conditional on having the preprocessor
flag `FEATURE_ENABLE_NO_RANGE_CHECKS` defined, which requires a custom
build with line 199 of inc/switches.h un-commented (or with compile flags
altered to include `-DFEATURE_ENABLE_NO_RANGE_CHECKS`) -- the purpose of
the flag is to facilitate experiments to estimate the cumulative cost of
bounds checking in various workloads.

7 years agoSupport GT_OBJ for x86
Carol Eidt [Sat, 10 Sep 2016 15:24:51 +0000 (08:24 -0700)]
Support GT_OBJ for x86

Add support for GT_OBJ for x86, and allow them to be transformed into a list
of fields (in morph) if it is a promoted struct. Add a new list type for
this (GT_FIELD_LIST) with the type and offset, and use it for the multireg
arg passing as well for consistency.
Also refactor fgMorphArgs so that there is a positive check for reMorphing,
rather than relying on gtCallLateArgs, which can be null if there are no
register args.
In codegenxarch, modify the struct passing (genPutStructArgStk) to work for
both the x64/ux and x86 case, including the option of pushing fields onto
the stack.
Eliminate the redundant INS_movs_ptr, and replace with the pre-existing
INS_movsp.

7 years agoUpgrade CLI, buildtools for RTM shared framework. (#7045)
Davis Goodin [Tue, 20 Sep 2016 18:03:36 +0000 (13:03 -0500)]
Upgrade CLI, buildtools for RTM shared framework. (#7045)

7 years agomute EH failures exposed by LTO (#7267)
kchoi [Tue, 20 Sep 2016 15:23:11 +0000 (08:23 -0700)]
mute EH failures exposed by LTO (#7267)

It does this by using a no-inline, no-opt function that takes in
the volatile pointer and performing operation that generates h/w
exception. The function has a runtime check on the volatile pointer to
pretend to throw (but never does), which fools the C++ runtime into
handling the h/w exception.

7 years agoMerge pull request #7268 from vancem/master
Vance Morrison [Tue, 20 Sep 2016 15:10:56 +0000 (08:10 -0700)]
Merge pull request #7268 from vancem/master

Fix Bad NGEN Pdbs for ReadyToRun images

7 years agoMerge pull request #7181 from ramarag/CompilerServices
Rama krishnan Raghupathy [Tue, 20 Sep 2016 05:35:49 +0000 (22:35 -0700)]
Merge pull request #7181 from ramarag/CompilerServices

Adding Compiler services APIs

7 years agoCreate long-named DAC and SOS DLLs for Windows. (#7265)
Mike McLaughlin [Tue, 20 Sep 2016 01:47:25 +0000 (18:47 -0700)]
Create long-named DAC and SOS DLLs for Windows. (#7265)

Issue #5869

7 years agoFix GC Stress testing on non windows platforms
Rama Krishnan Raghupathy [Thu, 15 Sep 2016 20:45:04 +0000 (13:45 -0700)]
Fix GC Stress testing on non windows platforms