platform/upstream/dotnet/runtime.git
7 years agoMerge pull request dotnet/coreclr#8899 from pgavlin/FixTotalMemoryTest
Pat Gavlin [Wed, 11 Jan 2017 23:07:44 +0000 (15:07 -0800)]
Merge pull request dotnet/coreclr#8899 from pgavlin/FixTotalMemoryTest

Fix the GC total memory test.

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

7 years agoMerge pull request dotnet/coreclr#8900 from adiaaida/fix8550
Michelle McDaniel [Wed, 11 Jan 2017 23:06:30 +0000 (15:06 -0800)]
Merge pull request dotnet/coreclr#8900 from adiaaida/fix8550

Copy lvExactSize to shadowVar

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

7 years agoRewrite CalleeSavedRegisters for x86 (dotnet/coreclr#8871)
Jonghyun Park [Wed, 11 Jan 2017 22:22:00 +0000 (07:22 +0900)]
Rewrite CalleeSavedRegisters for x86 (dotnet/coreclr#8871)

This commit revises CalleeSavedRegisters for x86 using
ENUM_CALLEE_SAVED_REGISTERS as in x64.

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

7 years agoMerge pull request dotnet/coreclr#8570 from sbomer/dasm_automation
Sven Boemer [Wed, 11 Jan 2017 21:32:56 +0000 (13:32 -0800)]
Merge pull request dotnet/coreclr#8570 from sbomer/dasm_automation

Fix some problems with the ubuntu dasm output

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

7 years agoMerge pull request dotnet/coreclr#8551 from AndyAyersMS/FinallyCloning
Andy Ayers [Wed, 11 Jan 2017 21:20:57 +0000 (13:20 -0800)]
Merge pull request dotnet/coreclr#8551 from AndyAyersMS/FinallyCloning

Finally cloning

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

7 years agoCopy lvExactSize to shadowVar
Michelle McDaniel [Wed, 11 Jan 2017 20:48:55 +0000 (12:48 -0800)]
Copy lvExactSize to shadowVar

For TYP_SIMD12 vars, we need to copy the lvExactSize to the shadowVar
so that we have the right size in lower.

Fixes dotnet/coreclr#8550.

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

7 years agoFix the GC total memory test.
Pat Gavlin [Wed, 11 Jan 2017 20:34:21 +0000 (12:34 -0800)]
Fix the GC total memory test.

This test was relying upon the result of GC.GetTotalMemory() returning a
greater number after allocating a large array. However, the array was
not kept live past the call to GC.GetTotalMemory, which resulted in this
test failing under GCStress=0xC (in which a GC is performed after each
instruction). This change adds the requisite call to GC.KeepAlive to
keep the allocated array live enough to be observed by
GC.GetTotalMemory.

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

7 years agoMerge pull request dotnet/coreclr#8880 from JosephTremoulet/SimplifyHeapPhiArg
Joseph Tremoulet [Wed, 11 Jan 2017 19:47:11 +0000 (14:47 -0500)]
Merge pull request dotnet/coreclr#8880 from JosephTremoulet/SimplifyHeapPhiArg

Simplify HeapPhiArg

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

7 years agoAdd parameterless overloads of TrimStart/TrimEnd (dotnet/coreclr#8834)
Thiago Camargos Lopes [Wed, 11 Jan 2017 19:12:22 +0000 (17:12 -0200)]
Add parameterless overloads of TrimStart/TrimEnd (dotnet/coreclr#8834)

Add parameterless overloads of TrimStart/TrimEnd

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

7 years agoMerge pull request dotnet/coreclr#8892 from stephentoub/enumeq_ser
Stephen Toub [Wed, 11 Jan 2017 17:35:06 +0000 (12:35 -0500)]
Merge pull request dotnet/coreclr#8892 from stephentoub/enumeq_ser

Fix deserialization of EnumEqualityComparer

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

7 years ago[ARM32/Linux] Fix cross-architecture build error: T_CONTEXT (dotnet/coreclr#8888)
Hyeongseok Oh [Wed, 11 Jan 2017 14:37:21 +0000 (23:37 +0900)]
[ARM32/Linux] Fix cross-architecture build error: T_CONTEXT (dotnet/coreclr#8888)

confusion of T_CONTEXT and CONTEXT in projects
- cee_dac
- gc_wks

related issue: dotnet/coreclr#8885

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

7 years agoFix deserialization of EnumEqualityComparer
Stephen Toub [Wed, 11 Jan 2017 13:58:53 +0000 (08:58 -0500)]
Fix deserialization of EnumEqualityComparer

Its deserialization ctor is getting removed by the rewriter, causing deserialization of its instances to fail.

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

7 years agoMerge pull request dotnet/coreclr#8868 from stephentoub/linkedcts_array
Stephen Toub [Wed, 11 Jan 2017 13:52:58 +0000 (08:52 -0500)]
Merge pull request dotnet/coreclr#8868 from stephentoub/linkedcts_array

Remove array allocation from CTS.CreateLinkedTokenSource

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

7 years agoJIT: Finally Optimizations
Andy Ayers [Thu, 1 Dec 2016 02:16:17 +0000 (18:16 -0800)]
JIT: Finally Optimizations

Adds two optimization for try-finallys: empty finally removal and
finally cloning.

Empty finally removal identifies trivially empty finally clauses and
removes the entire try-finally EH region. COde in the try is "promoted"
to be in the parent EH region (or method region). Empty finallys often
appear after inlining empty Dispose methods. Removing a try-finally with
an empty finally both reduces code size and improves code speed.

Finally cloning duplicates the code for the finally and 'inlines' it
along one of the normal exit paths from the try. This improves code
speed in the typical case where there is no exception raised while
the try is active. It generally increases code size slightly. However,
finallys are rare enough that the overall code size increase across
all methods is quite small. The jit will clone most finallys, provided
they are not too large, and are not contained in or contain other EH
constructs. If a try contains multiple exit paths only the final "fall
through" path will be optimized.

These optimizations are enabled for all target architectures. Finally
cloning is currently disabled for desktop CLR because more work is needed
to support thread abort.

More details on both optimizations can be found in the design document
added as part of this commit.

In debug builds, finally cloning can be selectively disabled or enabled
by setting COMPlus_JitEnableFinallyCloning to 0 or 1 respectively. This
config setting can thus be used override the default behavior (cloning
enabled for CoreCLR, disabled otherwise) for diagnostic or testing purposes.

Closes dotnet/coreclr#1505. Closes dotnet/coreclr#8065.

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

7 years agoMerge pull request dotnet/coreclr#8862 from sandreenko/ReversePInvoke-encoding-in-gc
sandreenko [Wed, 11 Jan 2017 01:12:52 +0000 (17:12 -0800)]
Merge pull request dotnet/coreclr#8862 from sandreenko/ReversePInvoke-encoding-in-gc

SetReversePInvokeFrameSlot into gcInfo for reversePInvoke

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

7 years agoAdd Microsoft.NETCore.Native package (2nd attempt) (dotnet/coreclr#8882)
Sedar Gokbulut [Wed, 11 Jan 2017 00:54:16 +0000 (16:54 -0800)]
Add Microsoft.NETCore.Native package (2nd attempt) (dotnet/coreclr#8882)

* Adding Microsoft.NETCore.Native package (dotnet/coreclr#8791)

* "Adding Microsoft.NETCore.Native package"

* Adding generic linux configuration to Microsoft.NETCore.Native package

* Fixing the OSX pkgproj of Microsoft.NETCore.Native to include S.Globalization.Native.dylib and not .so

* Fixing the osx release build.

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

7 years ago[x86/Linux] Fix WIN64EXCEPTIONS build error (dotnet/coreclr#8629)
Jonghyun Park [Wed, 11 Jan 2017 00:48:43 +0000 (09:48 +0900)]
[x86/Linux] Fix WIN64EXCEPTIONS build error (dotnet/coreclr#8629)

* Move GetUnwindInfo and GetNumberOfUnwindInfos into the real code header

This commit fixes dotnet/coreclr#8342.

* Use WIN64EXCEPTIONS instead of _TARGET_X86_

* Revise FaultingExceptionFrame

This commit revises FaultingExceptionFrame to support WIN64EXCEPTIONS in
x86/Linux port.

* Add RUNTIME_FUNCTION__EndAddress as NYI

* Revise regdisp.h

* Revise eetwain.h

* Comment out exinfo.cpp if WIN64EXCEPTIONS is defined

* Revises excep.cpp

* Fix mistmatch in ThrowControlForThread defintion

* Revises cgenx86.cpp

* Disable SEH-based exception handlers when WIN64EXCEPTIONS is defined

* Revise stackwalk.cpp

* Revise jitinterface.cpp

* Revise readytorun.h

* Revise dbgipcevents.h

* Revise zapcode.cpp

* Revise clrnt.h

* Fix Windows build error

* Mark FaultingExceptionFrame::UpdateRegDisplay as NYI

* Revise per feedback

* Revert #if defined(..) as #ifdef

* Fix style changes

* Fix style changes

* Remove #undef _TARGET_X86_

* 2nd attempt to fix Windows build error

* Revise per feedback

* Revert the chagnes in clrdefinitions.cmake and add BIT32 in CMakeLists.txt

* Use !BIT64 instead of BIT32

* Include exceptionhandling.cpp and gcinfodecoder.cpp in build

This commit includes exceptionhandling.cpp and gcinfodecoder.cpp in
build, and fixes related compile errors.

* Fix COMPlus_EndCatch undefined reference

* Fix build error

* Fix GcInfoDecoder-related undefined references

* Fix AdjustContextForVirtualStub undefined reference

* Fix GetCallerSP undefined reference

* Fix ResetThreadAbortState undefined reference

* Attempt to fix Windows build error

* Fix CLRNoCatchHandler undefined reference

* Another attemp to fix Windows build error

* Fix GetXXXFromRedirectedStubStackFrame undefined references

* Fix Windows Build Error

* Add RtlpGetFunctionEndAddress and RtlVirtualUnwind as NYI

* Fix undefined references on JIT helpers

* Enable Dummy Application Run with WIN64EXCEPTIONS

* Revert "Move GetUnwindInfo and GetNumberOfUnwindInfos into the real code header"

This reverts commit dotnet/coreclr@c2bad85ac1136be3c6fb6ad7eedc5b3814b2ab29.

* Use indirect code header when WIN64EXCEPTIONS is enabled

* Port 'SyncRegDisplayToCurrentContext' and 'FillRegDisplay'

* Revise style 'RUNTIME_FUNCTION__SetUnwindInfoAddress'

* Extract out HandlerData from #ifdef region

* Add UNIXTODO

* Add UNIXTODO

* Port 'GetRegdisplayReturnValue'

* Fix incorrect comment

* Remove messages that mentions WIN32EXCEPTIONS

* Revise AdjustContextForWriteBarrier

* Port 'FaultingExceptionFrame::UpdateRegDisplay'

* Extract out 'AdjustContextForVirtualStub' and 'CLRNoCatchHandler' from #ifdef region

* Merge two #ifdef regions

* Set WIN64EXCEPTIONS as a default for x86/Linux

* Remove unnecessary #ifdef from ThrowControlForThread

* Remove unnecessary stubs

* Add Dependency Check between Compile Flags

* Revise per feedback

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

7 years agoMerge pull request dotnet/coreclr#8881 from CarolEidt/FixPutArgStk
Carol Eidt [Wed, 11 Jan 2017 00:20:41 +0000 (16:20 -0800)]
Merge pull request dotnet/coreclr#8881 from CarolEidt/FixPutArgStk

Fix handling of PutArgStk

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

7 years ago[x86/Linux] Fix generic context(hidden arg) position (dotnet/coreclr#8848)
SaeHie Park [Tue, 10 Jan 2017 23:43:23 +0000 (08:43 +0900)]
[x86/Linux] Fix generic context(hidden arg) position (dotnet/coreclr#8848)

This fixes how to handle generic context position in x86 by num of arguments

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

7 years ago[x86/Linux] Introduce UNIX_X86_ABI definition (dotnet/coreclr#8863)
SaeHie Park [Tue, 10 Jan 2017 23:42:12 +0000 (08:42 +0900)]
[x86/Linux] Introduce UNIX_X86_ABI definition (dotnet/coreclr#8863)

Add UNIX_X86_ABI definition for Unix/Linux specific ABI parts
First will be for 16 byte stack alignment codes

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

7 years agoUpdates based on PR review.
Carol Eidt [Tue, 10 Jan 2017 22:19:46 +0000 (14:19 -0800)]
Updates based on PR review.

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

7 years agoMerge pull request dotnet/coreclr#8876 from pgavlin/LVAThroughput
Pat Gavlin [Tue, 10 Jan 2017 22:04:12 +0000 (14:04 -0800)]
Merge pull request dotnet/coreclr#8876 from pgavlin/LVAThroughput

Do not rerun LVA if only live-out has changed.

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

7 years agoFix handling of PutArgStk
Carol Eidt [Tue, 10 Jan 2017 21:55:47 +0000 (13:55 -0800)]
Fix handling of PutArgStk

GT_PUTARG_STK doesn't produce a value, so it should have the GTK_NOVALUE flag set.
Although the dstCount was being set to zero by the parent call, localDefUse was also being set, causing a register to be allocated. Fixing this produces a number of improvements due to reuse of constant registers that were otherwise unnecessarily "overwritten" by the localDefUse.
Also on x86, GT_LONG shouldn't be used to pass a long, since GT_LONG should always be a value-producing node. Instead, use the existing GT_FIELD_LIST approach.

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

7 years agoMerge pull request dotnet/coreclr#8867 from AndyAyersMS/BinaryTreesVariant
Andy Ayers [Tue, 10 Jan 2017 21:42:32 +0000 (13:42 -0800)]
Merge pull request dotnet/coreclr#8867 from AndyAyersMS/BinaryTreesVariant

JIT: Add BinaryTrees benchmark variant

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

7 years agoSimplify HeapPhiArg
Joseph Tremoulet [Fri, 30 Dec 2016 16:43:32 +0000 (08:43 -0800)]
Simplify HeapPhiArg

There's no need to have two "modes" of heap phi args; we can simply always
store the SSA number, which has always already been computed and stored in
the bbHeapSsaNumOut field of the pred already when the HeapPhiArg is
created.  We weren't using the block for anything other than to fetch the
pred's ssa-out number.

The code to add a try-begin block's predecessors' live-out heap defs to
the try's handlers' phis used to assert that the phi args being added
correspond to different blocks.  While they do correspond to different
blocks, it turns out that sometimes those different blocks have the same
live-out heap def.  This redundancy hasn't been hurting anything, and
de-duplication could be fairly expensive, so in this change I've simply
removed the assertion and left the redundancy as-is.

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

7 years agodon't copy LclVarDsc
Sergey Andreenko [Tue, 10 Jan 2017 19:34:40 +0000 (11:34 -0800)]
don't copy LclVarDsc

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

7 years agoFormat code.
Pat Gavlin [Tue, 10 Jan 2017 19:12:22 +0000 (11:12 -0800)]
Format code.

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

7 years agoSetReversePInvokeFrameSlot into gcInfo for reversePInvoke
Sergey Andreenko [Mon, 9 Jan 2017 23:29:05 +0000 (15:29 -0800)]
SetReversePInvokeFrameSlot into gcInfo for reversePInvoke

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

7 years agoMerge pull request dotnet/coreclr#8874 from adiaaida/addx86ReleasePRTrigger
Michelle McDaniel [Tue, 10 Jan 2017 18:52:11 +0000 (10:52 -0800)]
Merge pull request dotnet/coreclr#8874 from adiaaida/addx86ReleasePRTrigger

Add x86 Release PR Trigger

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

7 years agoMatch CoreFX update of arm-softfp -> armel (dotnet/coreclr#8875)
Andy Ayers [Tue, 10 Jan 2017 18:35:59 +0000 (10:35 -0800)]
Match CoreFX update of arm-softfp -> armel (dotnet/coreclr#8875)

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

7 years agoDo not rerun LVA if only live-out has changed.
Pat Gavlin [Mon, 9 Jan 2017 20:12:14 +0000 (12:12 -0800)]
Do not rerun LVA if only live-out has changed.

If only the live-out set for a block changes during live variable
analysis, the LVA algorithm does not need to be re-run. As per the
dataflow equations for LVA:

    liveOut(block) = union(liveIn(s) for all s in successors(block))

Thus, unless a change to the live-out set for a block propagates through
to a change to the live-in set for that block, it will not affect the
live-in/out sets of any of its predecessors and liveness need not be
re-run.

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

7 years agoAdd x86 Release PR Trigger
Michelle McDaniel [Tue, 10 Jan 2017 17:48:49 +0000 (09:48 -0800)]
Add x86 Release PR Trigger

Currently, only checked runs can be triggered for x86. This adds a trigger
for release runs as well.

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

7 years agoMerge pull request dotnet/coreclr#8861 from adiaaida/updateSeekUnroll
Michelle McDaniel [Tue, 10 Jan 2017 17:38:30 +0000 (09:38 -0800)]
Merge pull request dotnet/coreclr#8861 from adiaaida/updateSeekUnroll

Reduce SeekUnroll iter count

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

7 years agoReduce SeekUnroll iter count
Michelle McDaniel [Mon, 9 Jan 2017 21:07:35 +0000 (13:07 -0800)]
Reduce SeekUnroll iter count

On non-hardware accelerated platforms, reduce the inner iteration count in
SeekUnroll. This test was timing out in x86 release builds because the
iteration count was too high.

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

7 years agoMerge pull request dotnet/coreclr#8859 from JohnChen0/pinvoke
John Chen [Tue, 10 Jan 2017 06:15:50 +0000 (22:15 -0800)]
Merge pull request dotnet/coreclr#8859 from JohnChen0/pinvoke

Enable PInvoke analyzer for S.P.CoreLib.dll

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

7 years agoDefault gcAllowVeryLargeObjects to true (dotnet/coreclr#8853)
mikedn [Tue, 10 Jan 2017 05:00:39 +0000 (07:00 +0200)]
Default gcAllowVeryLargeObjects to true (dotnet/coreclr#8853)

* Default gcAllowVeryLargeObjects to true

* Update tests for gcAllowVeryLargeObjects

These 2 tests appear to rely on gcAllowVeryLargeObjects being false in that they expect an exception to be thrown when allocating a very large array.

Increase the number of array elements so that an OutOfMemoryException is always thown no matter what value gcAllowVeryLargeObjects has. 81*98*58*36*74*4 is 4906065024 which is larger than 2^32, the theoretical array length limit.

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

7 years agoRemove array allocation from CTS.CreateLinkedTokenSource
Stephen Toub [Tue, 10 Jan 2017 03:01:28 +0000 (22:01 -0500)]
Remove array allocation from CTS.CreateLinkedTokenSource

The most common uses of CreateLinkedTokenSource involve passing in one or two tokens, but even for these cases we end up allocating an array of registrations.  This commit fixes that.

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

7 years agoJIT: Add BinaryTrees benchmark variant
Andy Ayers [Tue, 10 Jan 2017 00:17:27 +0000 (16:17 -0800)]
JIT: Add BinaryTrees benchmark variant

Add a variant that uses a class and out parameter instead of returning
a struct by value. This variant is similar to version 3 from the benchmarks
games site, but with validation added and parallelism removed.

See related analysis in dotnet/coreclr#8837. According to xunit-perf runs, this version's
performance is improved (~10%) by enabling the model inlining policy. When
the model policy is enabled the inliner will inline the two outermost calls
to `ChildTreeNodes` in the innermlost loop.

Also, make sure the new and the original version to build the same way in
release and debug.

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

7 years agoMerge pull request dotnet/coreclr#8858 from sandreenko/CoreRT-PInvoke
sandreenko [Mon, 9 Jan 2017 23:27:48 +0000 (15:27 -0800)]
Merge pull request dotnet/coreclr#8858 from sandreenko/CoreRT-PInvoke

Update PInvoke inlining restrictions for CoreRT

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

7 years agoMerge pull request dotnet/coreclr#8856 from pgavlin/LVAThroughput
Pat Gavlin [Mon, 9 Jan 2017 21:34:14 +0000 (13:34 -0800)]
Merge pull request dotnet/coreclr#8856 from pgavlin/LVAThroughput

Encapsulate live var analysis in its own class.

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

7 years agoEnable PInvoke analyzer for S.P.CoreLib.dll
John Chen (CLR) [Mon, 9 Jan 2017 20:19:14 +0000 (12:19 -0800)]
Enable PInvoke analyzer for S.P.CoreLib.dll

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

7 years agoMerge pull request dotnet/coreclr#8854 from JohnChen0/heva
John Chen [Mon, 9 Jan 2017 20:11:39 +0000 (12:11 -0800)]
Merge pull request dotnet/coreclr#8854 from JohnChen0/heva

Enable HighEntropyVA in mscorlib.dll

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

7 years agoFormat code and improve a function name.
Pat Gavlin [Mon, 9 Jan 2017 19:36:28 +0000 (11:36 -0800)]
Format code and improve a function name.

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

7 years agoFix some comments.
Pat Gavlin [Mon, 9 Jan 2017 19:20:23 +0000 (11:20 -0800)]
Fix some comments.

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

7 years agoEncapsulate live var analysis in its own class.
Pat Gavlin [Mon, 9 Jan 2017 18:41:16 +0000 (10:41 -0800)]
Encapsulate live var analysis in its own class.

This change moves the implementation of live variable analysis from a
single function into a class in which the per-block portion of the
algorithm is contained in its own function. There is no functional
change.

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

7 years agoUpdate CoreClr, CoreFx to beta-24909-02, beta-24909-02, respectively (dotnet/coreclr...
dotnet bot [Mon, 9 Jan 2017 17:18:20 +0000 (09:18 -0800)]
Update CoreClr, CoreFx to beta-24909-02, beta-24909-02, respectively (dotnet/coreclr#8836)

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

7 years agoEnable HighEntropyVA in mscorlib.dll
John Chen (CLR) [Mon, 9 Jan 2017 17:18:10 +0000 (09:18 -0800)]
Enable HighEntropyVA in mscorlib.dll

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

7 years agoFix some problems with the ubuntu dasm output
Sven Boemer [Wed, 30 Nov 2016 18:29:59 +0000 (10:29 -0800)]
Fix some problems with the ubuntu dasm output

- Re-enable the default build archiving in jitdiff scenarios so that the
  windows _bld job will publish correct build artifacts for the
  ubuntu_jitdiff_tst job to consume.
- Use relative paths in the generated scripts to avoid drive letters in
  bash scripts.
- Fix exit code reporting in bash wrapper scripts.
- Upgrade jit-dasm version to use version with improved error handling
- Upgrade jit-analyze version to use same dependencies as jit-dasm

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

7 years agoMerge pull request dotnet/coreclr#8830 from RussKeldorph/hugeexprx86
Russ Keldorph [Mon, 9 Jan 2017 16:49:35 +0000 (08:49 -0800)]
Merge pull request dotnet/coreclr#8830 from RussKeldorph/hugeexprx86

Disable hugeexpr1 test under JitStress modes

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

7 years agoAdd two missing #ifdef related with FEATURE_CORRUPTING_EXCEPTIONS (dotnet/coreclr...
Jonghyun Park [Mon, 9 Jan 2017 11:51:44 +0000 (20:51 +0900)]
Add two missing #ifdef related with FEATURE_CORRUPTING_EXCEPTIONS (dotnet/coreclr#8850)

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

7 years agoFix x86/Linux Release Build Error (dotnet/coreclr#8852)
Jonghyun Park [Mon, 9 Jan 2017 11:14:58 +0000 (20:14 +0900)]
Fix x86/Linux Release Build Error (dotnet/coreclr#8852)

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

7 years agoRemove lazy initialization of Task.CompletedTask (dotnet/coreclr#8846)
Stephen Toub [Sun, 8 Jan 2017 18:25:17 +0000 (13:25 -0500)]
Remove lazy initialization of Task.CompletedTask (dotnet/coreclr#8846)

Remove lazy initialization of Task.CompletedTask

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

7 years agoUpdate PInvoke inlining restrictions for CoreRT
Jan Kotas [Sat, 3 Dec 2016 05:42:18 +0000 (21:42 -0800)]
Update PInvoke inlining restrictions for CoreRT

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

7 years ago[Local GC] Move Software Write Watch's write barrier updates to GCToEEInterface:...
Sean Gillespie [Sat, 7 Jan 2017 00:21:11 +0000 (16:21 -0800)]
[Local GC] Move Software Write Watch's write barrier updates to GCToEEInterface::StompWriteBarrier (dotnet/coreclr#8605)

* Move Software Write Watch's write barrier updates to use the new
GCToEEInterface::StompWriteBarrier to stomp the EE's write barrier.

* Address code review feedback, move SetCardsAfterBulkCopy to EE side of the interface

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

7 years agoMerge pull request dotnet/coreclr#8835 from pgavlin/RemoveAsgdLclVar
Pat Gavlin [Sat, 7 Jan 2017 00:07:11 +0000 (16:07 -0800)]
Merge pull request dotnet/coreclr#8835 from pgavlin/RemoveAsgdLclVar

Remove the `asgdLclVar` analysis from liveness.

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

7 years agoMerge pull request dotnet/coreclr#8808 from rahku/cleanup
Rahul Kumar [Sat, 7 Jan 2017 00:04:48 +0000 (16:04 -0800)]
Merge pull request dotnet/coreclr#8808 from rahku/cleanup

Hide types implemented in corefx

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

7 years agoUpdate CLI to 1.0.0-preview2-1-003182, BuildTools to 1.0.27-prerelease-01205-03 ...
Davis Goodin [Fri, 6 Jan 2017 23:00:32 +0000 (17:00 -0600)]
Update CLI to 1.0.0-preview2-1-003182, BuildTools to 1.0.27-prerelease-01205-03 (dotnet/coreclr#8829)

* Update CLI to 1.0.0-preview2-1-003182, BuildTools to 1.0.27-prerelease-01205-03

* Add BuildVersion.targets and required properties to test directory's dir.props

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

7 years agoSimplify lclNum fetching and a few assertions.
Pat Gavlin [Fri, 6 Jan 2017 22:12:35 +0000 (14:12 -0800)]
Simplify lclNum fetching and a few assertions.

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

7 years agoHide types implemented in corefx
Rahul Kumar [Wed, 30 Nov 2016 20:08:47 +0000 (12:08 -0800)]
Hide types implemented in corefx

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

7 years agoMerge pull request dotnet/coreclr#8832 from RussKeldorph/corefxtests
Russ Keldorph [Fri, 6 Jan 2017 21:42:09 +0000 (13:42 -0800)]
Merge pull request dotnet/coreclr#8832 from RussKeldorph/corefxtests

Fix archival and test result steps for corefx tests

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

7 years agoDisable hugeexpr1 test under JitStress modes
Russ Keldorph [Fri, 6 Jan 2017 17:00:17 +0000 (09:00 -0800)]
Disable hugeexpr1 test under JitStress modes

This test runs out of memory on x86 when its huge expressions combine with
STRESS_CLONE_EXPR.  In this case, the "OptimizationSensitive" label isn't ideal,
but the meaning is what we need: don't run this under JitStress modes.
This is disabled at build time for x86, which means that if x64-built tests are
run on other architectures, e.g. ARM or ARM64, this change won't take effect.

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

7 years agoSwap wget and curl to fix init-tools capability check (dotnet/coreclr#8831)
Davis Goodin [Fri, 6 Jan 2017 20:16:18 +0000 (14:16 -0600)]
Swap wget and curl to fix init-tools capability check (dotnet/coreclr#8831)

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

7 years agoRemove the `asgdLclVar` analysis from liveness.
Pat Gavlin [Fri, 6 Jan 2017 19:11:19 +0000 (11:11 -0800)]
Remove the `asgdLclVar` analysis from liveness.

This analysis is not necessary for correctness and does not appear to
have any impact on the generated code: in particualr, internal assembly
diffs show no changes with this analysis disabled.

For example, consider the following statement:

    `(asg (lclVar V0) (add (lclVar V0) (icon 4)))`

Under the `asgdLclVar` analysis, the visit of the lclVar node that is an
operand to the add would mark the lclVar node that is the target of the
assignment with `GTF_VAR_USEDEF` and exit without adding V0 to the
current set of used lclVars. Instead, the visit of the lclVar node that
is the target of the assignment would add V0 to both the set of used
lclVar nodes and the set of defined lclVar nodes.

With this analysis disabled, the visit of the lclVar node that is an
operand to the add will add V0 to the set of used lclVar nodes and the
visit of the lclVar node that is the target of the assignment will add
V0 to the set of defined lclVar nodes. In both cases, the result is the
same.

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

7 years agoMerge pull request dotnet/coreclr#8825 from adityamandaleeka/fix_jit_dasm
Aditya Mandaleeka [Fri, 6 Jan 2017 19:26:29 +0000 (11:26 -0800)]
Merge pull request dotnet/coreclr#8825 from adityamandaleeka/fix_jit_dasm

Fix check for JIT dasm

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

7 years agoDelete unused InteropServices types (dotnet/coreclr#8765)
James Ko [Fri, 6 Jan 2017 19:21:42 +0000 (14:21 -0500)]
Delete unused InteropServices types (dotnet/coreclr#8765)

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

7 years agoFix archival and test result steps for corefx tests
Russ Keldorph [Fri, 6 Jan 2017 18:59:40 +0000 (10:59 -0800)]
Fix archival and test result steps for corefx tests

These archival and testResult groovy calls were using absolute paths, which is
apparently incorrect.  Change then to use relative paths and make things
consistent between Windodws and Ubuntu runs.

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

7 years agoUpdate CoreClr, CoreFx to beta-24906-01, beta-24906-02, respectively (dotnet/coreclr...
dotnet bot [Fri, 6 Jan 2017 18:56:32 +0000 (10:56 -0800)]
Update CoreClr, CoreFx to beta-24906-01, beta-24906-02, respectively (dotnet/coreclr#8826)

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

7 years agoUse POSIX "command" instead of non-standard "which" (dotnet/coreclr#8823)
Jürgen Hötzel [Fri, 6 Jan 2017 00:15:49 +0000 (01:15 +0100)]
Use POSIX "command" instead of non-standard "which" (dotnet/coreclr#8823)

GNU which might not be installed on a minimal GNU/Linux installation.

Refs dotnet/coreclr#6994 and dotnet/coreclr#7025.

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

7 years agoMerge pull request dotnet/coreclr#8820 from pgavlin/RemoveVarTmp
Pat Gavlin [Thu, 5 Jan 2017 23:57:58 +0000 (15:57 -0800)]
Merge pull request dotnet/coreclr#8820 from pgavlin/RemoveVarTmp

Remove `BasicBlock::bbVarTmp`.

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

7 years agoFix check for JIT dasm.
Aditya Mandaleeka [Thu, 5 Jan 2017 23:06:39 +0000 (15:06 -0800)]
Fix check for JIT dasm.

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

7 years agoMerge pull request dotnet/coreclr#8781 from hqueue/arm/rootfs/tizen
Gaurav Khanna [Thu, 5 Jan 2017 21:43:19 +0000 (13:43 -0800)]
Merge pull request dotnet/coreclr#8781 from hqueue/arm/rootfs/tizen

Add Tizen rootfs for armel

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

7 years agoMerge pull request dotnet/coreclr#8818 from SedarG/sedarg
Gaurav Khanna [Thu, 5 Jan 2017 18:59:50 +0000 (10:59 -0800)]
Merge pull request dotnet/coreclr#8818 from SedarG/sedarg

Revert "Adding Microsoft.NETCore.Native package (dotnet/coreclr#8791)"

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

7 years agoRemove `BasicBlock::bbVarTmp`.
Pat Gavlin [Thu, 5 Jan 2017 18:11:39 +0000 (10:11 -0800)]
Remove `BasicBlock::bbVarTmp`.

This field was never used.

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

7 years agoMerge pull request dotnet/coreclr#8813 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Thu, 5 Jan 2017 17:55:59 +0000 (09:55 -0800)]
Merge pull request dotnet/coreclr#8813 from dotnet-bot/master-UpdateDependencies

Update CoreClr, CoreFx to beta-24904-03, beta-24905-02, respectively (master)

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

7 years agoRevert "Adding Microsoft.NETCore.Native package (dotnet/coreclr#8791)"
Sedar Gokbulut [Thu, 5 Jan 2017 16:53:53 +0000 (08:53 -0800)]
Revert "Adding Microsoft.NETCore.Native package (dotnet/coreclr#8791)"

This reverts commit dotnet/coreclr@eea7b4691c0a489435814e48a257a9d047475006.

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

7 years agofix link
Dan Moseley [Thu, 5 Jan 2017 16:52:34 +0000 (08:52 -0800)]
fix link

Fix https://github.com/dotnet/coreclr/issues/8816

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

7 years agoUpdate CoreClr, CoreFx to beta-24904-03, beta-24905-02, respectively
dotnet-bot [Thu, 5 Jan 2017 15:45:36 +0000 (15:45 +0000)]
Update CoreClr, CoreFx to beta-24904-03, beta-24905-02, respectively

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

7 years agoUse x86 crossbuild for cross-architecture component on x64-linux (dotnet/coreclr...
Hyeongseok Oh [Thu, 5 Jan 2017 12:32:44 +0000 (21:32 +0900)]
Use x86 crossbuild for cross-architecture component on x64-linux (dotnet/coreclr#8722)

* Use x86 crossbuild for cross-architecture component on x64-linux

Fix build.sh and build system generator to use x86 cross-build system on x64-linux
- x86-host/ARM32-target cross-architecture component build on x64 linux
- use x86 root file system and cross buildtool

* Modify build.sh

- define new function: build_cross_arch_component
- fix typo

* Additional fix: build.sh

add usage description
- environment variable: CAC_ROOTFS_DIR
- argument: crosscomponent

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

7 years agoUpdate cmake file for armel
Hyung-Kyu Choi [Thu, 5 Jan 2017 06:17:18 +0000 (15:17 +0900)]
Update cmake file for armel

Enable build using Tizen rootfs

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/d593e48ea8b1dba8c6f8c81ac66eb5c5f88c1300

7 years agoAdd a script to fetch tizen packages
pius.lee [Tue, 3 Jan 2017 10:19:11 +0000 (19:19 +0900)]
Add a script to fetch tizen packages

Fetch packages for build RootFS by XML information in download.tizen.org

Signed-off-by: pius.lee <pius.lee@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/b92ae42b6664271d335057c9f8519fb091211ae1

7 years agoAdd Tizen rootfs for armel
Hyung-Kyu Choi [Thu, 5 Jan 2017 05:48:10 +0000 (14:48 +0900)]
Add Tizen rootfs for armel

- This rootfs can be used for CoreCLR, CoreFX and Core-Setup.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/55a1b2f1ad9c1389712f064bb6cf58e1df71949e

7 years agoUse armel instead of arm-softfp (dotnet/coreclr#8771)
Hyung-Kyu Choi [Thu, 5 Jan 2017 09:29:49 +0000 (18:29 +0900)]
Use armel instead of arm-softfp (dotnet/coreclr#8771)

* Use armel instead of arm-softfp for CoreCLR

- Update scripts for rootfs, build, build system generation and CI
- Update managed build project
- Rename rootfs directory
- Fix bug in rootfs script related to lldb package
  lldb package only usable lldb-3.5-dev for jessie/arm-softfp
  We cannot get lldb-3.6-dev or lldb-3.8-dev from jessie/arm-softfp repository

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Singed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
* Update ARM32 CI script

We don't need a patch anymore, because we fixed cmake file.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/165fa5cebf0b937f74855584ca5b658e7e83c41b

7 years agoFix unsigned_abs function on Unix (dotnet/coreclr#8805)
Jan Vorlicek [Thu, 5 Jan 2017 01:37:25 +0000 (02:37 +0100)]
Fix unsigned_abs function on Unix (dotnet/coreclr#8805)

The unsigned_abs function in jit.h is implemented using labs function.
However labs has 32 bit argument / result, while the unsigned_abs expects
it to be 64 bit.
The correct function to use for FEATURE_PAL is llabs. But since we now have
abs overload for __int64 in pal.h, we can just remove the #ifdef for FEATURE_PAL
and use the same implementation for both Unix and Windows.

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

7 years agoMerge pull request dotnet/coreclr#8809 from pgavlin/FixJitStressFailure
Pat Gavlin [Thu, 5 Jan 2017 00:34:55 +0000 (16:34 -0800)]
Merge pull request dotnet/coreclr#8809 from pgavlin/FixJitStressFailure

Add a missing ref count bump in DecomposeLclFld.

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

7 years agoMerge pull request dotnet/coreclr#8711 from sivarv/simdAbsOpt
Sivarv [Wed, 4 Jan 2017 23:36:58 +0000 (15:36 -0800)]
Merge pull request dotnet/coreclr#8711 from sivarv/simdAbsOpt

Accelerate Abs intrinsic even in cases where there is no direct instruction support available.

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

7 years agoFix VSO 359733. (dotnet/coreclr#8803)
Pat Gavlin [Wed, 4 Jan 2017 23:30:13 +0000 (15:30 -0800)]
Fix VSO 359733. (dotnet/coreclr#8803)

* Fix VSO 359733.

This bug was an assertion when extracting side effects that failed when
checking that the presence or absence of value numbers on the head of
the side effect list matched the presence or absence of value numbers on
the node being added to the list. This condition does not hold when
remorphing, as remorphing may create nodes without value numbers. In
this case, the new comma node will have no value numbers for
conservative correctness. The failing assertion was weakened to allow
the presence/absence of value numbers on the head of the list and the
node being added to differ during remorphing.

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

7 years agoMerge pull request dotnet/coreclr#8804 from adiaaida/devdiv_362706
Michelle McDaniel [Wed, 4 Jan 2017 22:36:45 +0000 (14:36 -0800)]
Merge pull request dotnet/coreclr#8804 from adiaaida/devdiv_362706

Fix DevDiv 362706

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

7 years agoAdd a missing ref count bump in DecomposeLclFld.
Pat Gavlin [Wed, 4 Jan 2017 22:36:17 +0000 (14:36 -0800)]
Add a missing ref count bump in DecomposeLclFld.

DecomposeLclFld transforms a single lclFld node into two lclFld nodes
that reference the same lclVar, but was missing a corresponding ref
count bump. This was causing a failure in JIT/Methodical/fp/exgen/10w5d_cs_do
under JITStress=1 and JITStress=2.

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

7 years agoFix NULL string printing in printf (dotnet/coreclr#8800)
Jan Vorlicek [Wed, 4 Jan 2017 21:05:43 +0000 (22:05 +0100)]
Fix NULL string printing in printf (dotnet/coreclr#8800)

The functions implementing various printf flavors in PAL were not handling
correctly the case when a string pointer passed to them for %S and %s formats
was NULL. Instead of printing `(null)`, they were crashing.

This change fixes the problem and also adds PAL tests to verify it is working
properly.

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

7 years agoFix DevDiv 362706
Michelle McDaniel [Wed, 4 Jan 2017 17:42:19 +0000 (09:42 -0800)]
Fix DevDiv 362706

The issue here was that when we morphed a mod into a sub mul div, we would
ultimately decrease the ref counts to the numerator of the original mod
without performing a corresponding increase. The fix is to increase the
ref count when morphing into the sub mul div.

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

7 years agoAccelerate Abs intrinsic even in cases where there is no direct instruction support...
sivarv [Thu, 22 Dec 2016 22:59:32 +0000 (14:59 -0800)]
Accelerate Abs intrinsic even in cases where there is no direct instruction support available.

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

7 years agoMerge pull request dotnet/coreclr#8802 from adiaaida/fixCorefxGroovy
Michelle McDaniel [Wed, 4 Jan 2017 19:32:11 +0000 (11:32 -0800)]
Merge pull request dotnet/coreclr#8802 from adiaaida/fixCorefxGroovy

Do not supply fx_root to run-corefx-tests

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

7 years agoDo not validate fx_root in run-corefx-tests
adiaaida [Wed, 4 Jan 2017 18:30:28 +0000 (10:30 -0800)]
Do not validate fx_root in run-corefx-tests

Users are able to supply an fx_root that does not yet exist and
run-corefx-tests.py will create that directory. However,
run-corefx-tests.py checks to confirm that fx_root already exists when
we validate. This causes the script to exit with an error when fx_root
does not yet exist. This change modifies run-corefx-tests.py so that we
do not validate the fx_root path.

This change also fixes the path to WORKSPACE for ubuntu corefx testing
in netci.groovy.

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

7 years agoAdding Microsoft.NETCore.Native package (dotnet/coreclr#8791)
Sedar Gokbulut [Wed, 4 Jan 2017 19:21:20 +0000 (11:21 -0800)]
Adding Microsoft.NETCore.Native package (dotnet/coreclr#8791)

* "Adding Microsoft.NETCore.Native package"

* Adding generic linux configuration to Microsoft.NETCore.Native package

* Fixing the OSX pkgproj of Microsoft.NETCore.Native to include S.Globalization.Native.dylib and not .so

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

7 years agoMerge pull request dotnet/coreclr#8719 from jkotas/native-buffer
Jan Kotas [Wed, 4 Jan 2017 17:18:14 +0000 (09:18 -0800)]
Merge pull request dotnet/coreclr#8719 from jkotas/native-buffer

Use ArrayPool for PathHelper

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

7 years agoMerge pull request dotnet/coreclr#8796 from dotnet-bot/master-UpdateDependencies
Stephen Toub [Wed, 4 Jan 2017 15:48:29 +0000 (10:48 -0500)]
Merge pull request dotnet/coreclr#8796 from dotnet-bot/master-UpdateDependencies

Update CoreClr, CoreFx to beta-24904-02, beta-24904-01, respectively (master)

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

7 years agoPath normalization performance improvements
Jan Kotas [Wed, 4 Jan 2017 14:31:17 +0000 (06:31 -0800)]
Path normalization performance improvements

- Use const variant of path separators in the Path implementation
- Add fast paths for common cases to hot parsing routines
- Avoid redundant caches for MaxPath on Unix

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

7 years agoDelete unused file
Jan Kotas [Mon, 26 Dec 2016 08:08:01 +0000 (00:08 -0800)]
Delete unused file

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

7 years agoUse ArrayPool for PathHelper
Jan Kotas [Wed, 21 Dec 2016 23:46:53 +0000 (15:46 -0800)]
Use ArrayPool for PathHelper

Replace special unmanaged memory pool used by PathHelper by shared ArrayPool. Custom memory pools are not good for global system performance, and the particular implementation of the unmanaged memory pool was also problematic for CoreRT port because of its dependencies.

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

7 years ago[x86/Linux] Implement ResolveWorkerChainLookupAsmStub (dotnet/coreclr#8780)
SaeHie Park [Wed, 4 Jan 2017 14:06:24 +0000 (23:06 +0900)]
[x86/Linux] Implement ResolveWorkerChainLookupAsmStub (dotnet/coreclr#8780)

Replace ResolveWorkerChainLookupAsmStub with actual implementation
- code is copied from Win32 version
- replaced some parts to compile in linux

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