Jonghyun Park [Thu, 12 Jan 2017 15:43:54 +0000 (00:43 +0900)]
[x86/Linux] Port 'ExceptionTracker::ProcessOSExceptionNotification' (dotnet/coreclr#8912)
Commit migrated from https://github.com/dotnet/coreclr/commit/
033b11d631f346a55c4d7c453bca1f49f77a44d5
Sivarv [Thu, 12 Jan 2017 07:11:05 +0000 (23:11 -0800)]
Merge pull request dotnet/coreclr#8588 from litian2025/AVX_SSE
Remove AVX/SSE transition penalties
Commit migrated from https://github.com/dotnet/coreclr/commit/
d187267134f1de239914ef684fe43330b22682e6
Li Tian [Thu, 12 Jan 2017 05:08:11 +0000 (21:08 -0800)]
fix format
Commit migrated from https://github.com/dotnet/coreclr/commit/
b6d69f5da791efceedbda0fc7d001900efe0f326
dotnet bot [Thu, 12 Jan 2017 04:55:50 +0000 (20:55 -0800)]
Update CoreClr, CoreFx to beta-24911-02, beta-24911-08, respectively (dotnet/coreclr#8855)
Commit migrated from https://github.com/dotnet/coreclr/commit/
22ddf5187597a9fe46099141591ec7ef35142cae
Li Tian [Thu, 12 Jan 2017 04:47:48 +0000 (20:47 -0800)]
Add more comments to document remove AVX/SSE transition penalty logic
Commit migrated from https://github.com/dotnet/coreclr/commit/
0981bb41916937f60b5c9b1b0c5691556f630fe1
Joseph Tremoulet [Thu, 12 Jan 2017 02:24:40 +0000 (21:24 -0500)]
Merge pull request dotnet/coreclr#8905 from JosephTremoulet/OneMoreHeapUse
Remove bogus fgCurHeapDef guard
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf2fd1ccd7e575190cc11760f0fb2e04f0c91441
Russell C Hadley [Thu, 12 Jan 2017 01:19:58 +0000 (17:19 -0800)]
Merge pull request dotnet/coreclr#8879 from russellhadley/span-intrinsics
Initial implementation of two field span.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d4fd78eb013de26639b3327f45072807858d0dde
Mike McLaughlin [Thu, 12 Jan 2017 00:40:49 +0000 (16:40 -0800)]
Fix issue dotnet/coreclr#8139 amd64 decoder bug. (dotnet/coreclr#8901)
Ignore modrm == 0 which ignores "inc dword ptr []" instructions.
Also fixed minor EEHeap formatting bug on Linux.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2b0e13c2f828b52386b86a6b64cd0187d37c8d9
Drew Scoggins [Thu, 12 Jan 2017 00:36:41 +0000 (16:36 -0800)]
Merge pull request dotnet/coreclr#8907 from DrewScoggins/PullRequestFix
Fix pull request title automation
Commit migrated from https://github.com/dotnet/coreclr/commit/
79be18f28e961ef4e5e2ec4963bdd7e2783046d6
Maarten Mensink [Thu, 12 Jan 2017 00:28:18 +0000 (01:28 +0100)]
Add clang 3.7 support and remove __FakePrologName to fix build (dotnet/coreclr#8904)
* add clang 3.7 support
* Removing
__FakePrologName="DelayLoad_Helper\suffix\()_FakeProlog"
based on https://github.com/dotnet/coreclr/issues/4332#issuecomment-
271990909
Commit migrated from https://github.com/dotnet/coreclr/commit/
7cdeedaa3b69d1dc4b0dc775ab85aa4c6d29b6ab
Drew Scoggins [Thu, 12 Jan 2017 00:24:43 +0000 (16:24 -0800)]
Fix pull request title automation
When I added the ability to give a custom name to a run that was kicked
off using the PR leg I did it by adding an additional parameter. When
using a variable name there I need to use the dollar sign syntax of
groovy and not an environment variable.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4bce446ccc86a500bc7002ce0c91bc6fd6a22557
Pat Gavlin [Wed, 11 Jan 2017 23:44:28 +0000 (15:44 -0800)]
Merge pull request dotnet/coreclr#8897 from pgavlin/GH8860.1
Fix dotnet/coreclr#8860.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4692866468c1fb5c8a167efebbe2b0365fb69b97
Pat Gavlin [Wed, 11 Jan 2017 23:15:31 +0000 (15:15 -0800)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d7f28722caa2f6d8dc5c5ed74ec3f622dc13a57b
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
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
Li Tian [Wed, 11 Jan 2017 22:48:20 +0000 (14:48 -0800)]
use assert insteaf of if statement
Commit migrated from https://github.com/dotnet/coreclr/commit/
3d5e08f057970ee07327a86fea34ecce95574f97
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
Jan Kotas [Wed, 7 Dec 2016 05:30:54 +0000 (21:30 -0800)]
Initial implementation of two field span.
Implements two field span struct which is comprised of a byref field
that may be an interior pointer to a managed object, or a native
pointer indicating the start of the span, and a length field which
describes the span of access.
Since there is no MSIL operation which assign a byref field, the jit
gets involved and treats the constructor and getter of a special struct
called ByReference that contains an declared IntPtr. This special
struct is then used as a field in the span implementation and recognized
by the runtime as a field that may contain a GC pointer. In
implementation, the ctor of ByReference is converted into an assignment
value is returned by a reverse assignment.
Since there are some dependencies on CoreFX for the span implementation
local testing of the implementation has been done using the
BasicSpanTest.cs in the CoreCLR tests. Once this is checked in and is
propagated to CoreFX the apporopate code in the packages will be enabled
and then may be referenced in CoreCLR tests. At that time more span
tests will be added.
Additional comments and fixes based on code review added.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0bedde3a63f22b65155d5f369e75c448c6afb786
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
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
Joseph Tremoulet [Wed, 11 Jan 2017 20:59:29 +0000 (15:59 -0500)]
Remove bogus fgCurHeapDef guard
We should set fgCurHeapUse when visiting a heap use regardless of whether
fgCurHeapDef is set, because we haven't proven that the def writes all
memory that the use might read. This should have been included in dotnet/coreclr#8757
but somehow slipped through.
Commit migrated from https://github.com/dotnet/coreclr/commit/
334cf4e004367b8c0c717fe3974ae008ecec0f62
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
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
Pat Gavlin [Wed, 11 Jan 2017 19:42:30 +0000 (11:42 -0800)]
Fix dotnet/coreclr#8860.
These failure was an assertion under GC stress due to registers that
were reported as live while containing an invalid GC reference. The root
cause of this assertion was the use of SIMD instructions that did not
kill any GC ref contained in their destination register. This change fixes
the bug by properly killing any GC ref in the destination register for
such an instruction, which required two changes:
- Instructions with the format `IF_RRW_RRW_CNS` were never killing the
destination register. The code that handles this format has been
updated to do so when necessary.
- `pextrw` and `pmovmskb` were not handled correctly in
`emitInsCanOnlyWriteSSE2OrAVXReg`. These instructions may write to
GPRs, so that function must return false when they are passed as
input.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fd967163ddb0844f4ebe4356ad9d67b681156737
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
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
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
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
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
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
Li Tian [Wed, 11 Jan 2017 07:32:57 +0000 (23:32 -0800)]
fix format error
Commit migrated from https://github.com/dotnet/coreclr/commit/
eecbbbf769a1f2f35f4994da4b72f2f57703a510
Li Tian [Wed, 11 Jan 2017 06:09:47 +0000 (22:09 -0800)]
fix comments, assertion failure in crossgen mscorlib
Commit migrated from https://github.com/dotnet/coreclr/commit/
ec2f1deecb4f567de2c0028b40e4988b4e6ddf3a
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
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
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
Li Tian [Wed, 11 Jan 2017 00:52:34 +0000 (16:52 -0800)]
rename, use getSIMDInstructionSet()
Commit migrated from https://github.com/dotnet/coreclr/commit/
c0627f858f2dd28f89374bfc079034fc3d15d954
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
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
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
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
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
Li Tian [Tue, 10 Jan 2017 22:07:52 +0000 (14:07 -0800)]
fix format error
Commit migrated from https://github.com/dotnet/coreclr/commit/
3fdc10a616d6e80024531a66597c27181916e58d
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
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
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
Li Tian [Tue, 10 Jan 2017 21:42:22 +0000 (13:42 -0800)]
remove unnecessary check in CalleeSavedFltRegs
Commit migrated from https://github.com/dotnet/coreclr/commit/
933257ec88bae2722618c39c0a55ffd2e50c0c48
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Li Tian [Mon, 12 Dec 2016 03:13:28 +0000 (19:13 -0800)]
Remove AVX/SSE transition penalties
There are two two kinds of transition penalties:
1.Transition from 256-bit AVX code to 128-bit legacy SSE code.
2.Transition from 128-bit legacy SSE code to either 128 or
256-bit AVX code. This only happens if there was a preceding
AVX256->legacy SSE transition penalty.
The primary goal is to remove the dotnet/coreclr#1 AVX to SSE transition penalty.
Added two emitter flags: contains256bitAVXInstruction indicates that
if the JIT method contains 256-bit AVX code, containsAVXInstruction
indicates that if the method contains 128-bit or 256-bit AVX code.
Issue VZEROUPPER in prolog if the method contains 128-bit or 256-bit
AVX code, to avoid legacy SSE to AVX transition penalty, this could
happen for reverse pinvoke situation. Issue VZEROUPPER in epilog
if the method contains 256-bit AVX code, to avoid AVX to legacy
SSE transition penalty.
To limite code size increase impact, we only issue VZEROUPPER before
PInvoke call on user defined function if the JIT method contains
256-bit AVX code, assuming user defined function contains legacy
SSE code. No need to issue VZEROUPPER after PInvoke call because dotnet/coreclr#2
SSE to AVX transition penalty won't happen since dotnet/coreclr#1 AVX to SSE
transition has been taken care of before the PInvoke call.
We measured ~3% to 1% performance gain on TechEmPower plaintext and
verified those VTune AVX/SSE events: OTHER_ASSISTS.AVX_TO_SSE and
OTHER_ASSISTS.SSE_TO_AVE have been reduced to 0.
Fix dotnet/coreclr#7240
move setContainsAVX flags to lower, refactor to a smaller method
refactor, fix typo in comments
fix format error
Commit migrated from https://github.com/dotnet/coreclr/commit/
cc169eac6736693c4bdbd9f61ae821146252e4cb
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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