Pat Gavlin [Tue, 8 Nov 2016 23:33:11 +0000 (15:33 -0800)]
Merge pull request dotnet/coreclr#8023 from pgavlin/MoveAltJitCrossgen
Use the alt JIT for S.P.CoreLib if altjitcrossgen is specified and change crossgen to always pass USE_SSE2 to the JIT.
Commit migrated from https://github.com/dotnet/coreclr/commit/
39273bf1814bd8d5da932b134ac1164f53416e08
Bruce Forstall [Tue, 8 Nov 2016 22:13:14 +0000 (14:13 -0800)]
Merge pull request dotnet/coreclr#8035 from hseok-oh/fix_7871
SuperPMI: Support GetHFAType for ARM32 hardFP
Commit migrated from https://github.com/dotnet/coreclr/commit/
b1a18e4f2d56bcabd18bef0928c050b8556570ad
Faizur Rahman [Tue, 8 Nov 2016 20:50:52 +0000 (12:50 -0800)]
Merge pull request dotnet/coreclr#8004 from shrah/master
Expose Marshal.CleanupUnusedObjectsInCurrentContext
Commit migrated from https://github.com/dotnet/coreclr/commit/
0114ed69ca7580e1cfc17d4757cfc0d8ff5dc282
Michal Strehovský [Tue, 8 Nov 2016 19:16:41 +0000 (11:16 -0800)]
Report CORINFO_FLG_CONTAINS_GC_PTR for TypedReference (dotnet/coreclr#8014)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6b85aa2a14feb666b9005a53c41148de511df74
Faizur Rahman [Fri, 4 Nov 2016 21:50:02 +0000 (14:50 -0700)]
Expose Marshal.CleanupUnusedObjectsInCurrentContext
This change exposes Marshal.CleanupUnusedObjectsInCurrentContext. Also it a GetHINSTANCE implementation for non-windows platform by throwing
ArgumentNullException as per https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.gethinstance(v=vs.110).aspx.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a619b88d713a8e4fcd59c0d11ccc3f55155bab0
Igor Kulaychuk [Tue, 8 Nov 2016 16:24:08 +0000 (19:24 +0300)]
[Linux][GDB-JIT] Fix lldb stepping issues (dotnet/coreclr#7777)
* Pass more info about source to native line mapping from SymbolReader
Pass mapping info for zero and HiddenLine line numbers.
Also supply ICorDebugInfo::SourceTypes info for each line.
Lines are reorganized to have ascending native addresses.
* Fix DWARF line info generation for negative line change
* Add prologue_end and epilogue_begin to DWARF line info
* Generate DWARF method description for each code range with PROLOG and EPILOG
* Map each called __thunk symbol as a separate section
Special .thunk sections from different methods may overlap which
prevent the debugger from correctly resolving symbols (__thunk_*)
from those sections.
Mapping each called __thunk symbol as a separate section (.thunk_#)
allows the debugger to resolve __thunk* symbols correctly.
The code for searching first valid line number of a method
now checks only line numbers. There is no need for additional
check of non-empty filename.
If no valid line number was found then do not generate debug info at all.
* Fix buffer overrun when generating ELF symbol name
* Fix memory leak when generating ELF symbol name
* Fix memory leak when NotifyGdb::MethodCompiled fails
Manage array of FunctionMember pointers with NewArrayHolder.
* Refactor counting number of ELF sections in GDBJIT
* Refactor building ELF section names and headers
* Refactor hardcoded ELF section indeces
* Refactor memory allocation for ELF section names
When currently allocated memory is not enough for next
section name, the memory is reallocated with some
extra amount which grows twice on each reallocation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a136b2e5c26c46882eb70ed59b424673965b58ce
Hyeongseok Oh [Tue, 8 Nov 2016 04:37:08 +0000 (13:37 +0900)]
fix typo
Commit migrated from https://github.com/dotnet/coreclr/commit/
558aa86e337110a069112f02c3cd893074d6c4c4
Hyeongseok Oh [Tue, 8 Nov 2016 02:31:29 +0000 (11:31 +0900)]
Support GetHFAType in SuperPMI for ARM32 hardFP
Commit migrated from https://github.com/dotnet/coreclr/commit/
6311469038e83a3f24e70c9f99f92a5745a94970
Rama krishnan Raghupathy [Tue, 8 Nov 2016 00:42:06 +0000 (16:42 -0800)]
Merge pull request dotnet/coreclr#7988 from ramarag/lockjson
Removing the copy of project.lock.json to bin folder
Commit migrated from https://github.com/dotnet/coreclr/commit/
e3a9a38aae7146060d0c8c06758b20c81d6d6c22
Jarret Shook [Mon, 7 Nov 2016 23:24:58 +0000 (15:24 -0800)]
Merge pull request dotnet/coreclr#8026 from jashook/arm64_g_flag_multiregstructarg
Arm64 add missing G flag and possibly X flags
Commit migrated from https://github.com/dotnet/coreclr/commit/
2d63e4017dc50b16bd7d9acca93092b3d859e4e4
Carol Eidt [Mon, 7 Nov 2016 21:47:52 +0000 (13:47 -0800)]
Update testing-with-corefx.md
Clarify the way the `BUILDTOOLS_OVERRIDE_RUNTIME` option is passed.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fd402e530b504933cbcef08408bf76a666a54a2f
jashook [Mon, 7 Nov 2016 21:06:20 +0000 (13:06 -0800)]
Arm64 add missing G flag and possibly X flags
For indirections created by morphing obj(16) make sure the G and
X flag are set.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba6a037fd0cd3cdf9b871d16f3564e3b2e3bd3d9
Pat Gavlin [Mon, 7 Nov 2016 20:08:00 +0000 (12:08 -0800)]
Change crossgen to always pass USE_SSE2 to the JIT.
.NET Core and the RyuJIT x86/x64 backends require SSE2. Always pass this
flag to the JIT.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c77bad138743faa096aa55d364b6bbed6b6c6709
Sivarv [Mon, 7 Nov 2016 19:17:41 +0000 (11:17 -0800)]
Merge pull request dotnet/coreclr#8011 from sivarv/lsraFix
While unassigning a phyReg, establish association with a previous interval only if it is different from the one it is being unassigned
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c653c193336fd8d1c3e88eabb64614612838f77
Pat Gavlin [Mon, 7 Nov 2016 19:01:53 +0000 (11:01 -0800)]
Use the alt JIT for S.P.CoreLib if altjitcrossgen is specified.
The check for altjitcrossgen was previously located s.t. only mscorlib
was being crossgen'd using the alt JIT (which is not very insteresting,
as mscorlib is just a facade these days). This change moves the check
back s.t. the alt JIT is also used for System.Private.CoreLib.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b17e2d01bfe1c714de86b3455c80bfb6b9598e13
Pat Gavlin [Mon, 7 Nov 2016 18:55:24 +0000 (10:55 -0800)]
Merge pull request dotnet/coreclr#8006 from pgavlin/VSO278369
Fix VN propagation for binops.
Commit migrated from https://github.com/dotnet/coreclr/commit/
205addaaec5049bf537cc62e18ff480eff95bf79
Jonghyun Park [Mon, 7 Nov 2016 18:04:39 +0000 (03:04 +0900)]
Enforces aligned access for Single/Double values (dotnet/coreclr#7993)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6192cdffa10b0fd195a71c31bf0f72e525d645a8
Pat Gavlin [Mon, 7 Nov 2016 17:15:34 +0000 (09:15 -0800)]
Merge pull request dotnet/coreclr#8007 from pgavlin/VSO284785
Add a regression test for VSO 284785.
Commit migrated from https://github.com/dotnet/coreclr/commit/
44597321141a1364cbebb6c610db26a718e3d209
Russ Keldorph [Mon, 7 Nov 2016 16:51:58 +0000 (08:51 -0800)]
Merge pull request dotnet/coreclr#7949 from hqueue/arm/sizeof
Exclude six sizeof related tests from ARM
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4e1bb32220547541a681bfdb7a6cc450b7354b6
varocarbas [Sun, 6 Nov 2016 14:41:33 +0000 (15:41 +0100)]
Removal of the ansicurrSymbol variable. (dotnet/coreclr#7999)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8351597b3af6bf188eb328fe5e2b3b8eb979c831
Stephen Toub [Sat, 5 Nov 2016 18:36:00 +0000 (14:36 -0400)]
Change default file permissions on Unix to 666 (dotnet/coreclr#7995)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b7d4404c2f770bc6fca97c6f4f6bc53178a4bad2
Alex Ghiondea [Sat, 5 Nov 2016 06:10:15 +0000 (23:10 -0700)]
Merge pull request dotnet/coreclr#7985 from AlexGhiondea/ExposeMarshalAPI
Expose the Marshal APIs that use SecureString
Commit migrated from https://github.com/dotnet/coreclr/commit/
266c272a724d2632b3606d6e63a8e0849a5b19a6
Jan Vorlicek [Sat, 5 Nov 2016 04:05:51 +0000 (21:05 -0700)]
Remove more PAL functions (dotnet/coreclr#8009)
This change removes the following PAL functions and their related PAL tests:
_i64tow
_itow
lstrcatW
lstrcpyW
wsprintfA
wsprintfW
lstrcpynW
The lstrcpynW was actually used in two functions in palrt and I have replaced it
with StringCchCopyNW.
The _i64tow and _itow were used as an implementation of the _i64tow_s and _itow_s.
Since these _s versions were also implemented in PAL for its internal purposes,
I have exposed them and got rid of the unsafe versions.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e1189d69095320cfb4b11cecde2184793c9b822d
Russ Keldorph [Sat, 5 Nov 2016 03:43:07 +0000 (20:43 -0700)]
Move remaining NETCoreApp references from 1.0 to 1.1 (dotnet/coreclr#8008)
This gets us down from "a zillion" warnings to just "a lot."
Related: dotnet/coreclr#7626
Commit migrated from https://github.com/dotnet/coreclr/commit/
313daa2004df7b93938a50c99165570e3dc29f2b
sivarv [Sat, 5 Nov 2016 00:13:57 +0000 (17:13 -0700)]
While unassigning a phyReg, establish association with a previous interval
only if it is different from the one it is unassigned.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5daa22db6821480099ed43b15488c6a91878de37
Pat Gavlin [Fri, 4 Nov 2016 22:34:24 +0000 (15:34 -0700)]
Fix VN propagation for binops.
When value numbering processes certain binary operators, it may attempt
to propagate the value number of one operand to the operator itself.
Unfortunately, this propagation was done irrespective of the type of the
operand, and therefore produced incorrect results when the type of the
operand did not match the type of the operator. This change only
performs this sort of propagation only when the types of the operator
and the operand agree.
Commit migrated from https://github.com/dotnet/coreclr/commit/
25b0fbc68c0f8c291e8a46ee6e66b7d61def0236
Pat Gavlin [Fri, 4 Nov 2016 22:39:31 +0000 (15:39 -0700)]
Add a regression test for VSO 284785.
Just what it says on the tin.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f7162812f4b53184588c7b8cb2fe4d1f6c371e7c
Alex Ghiondea [Thu, 3 Nov 2016 23:45:49 +0000 (16:45 -0700)]
Expose the Marshal APIs that use SecureString
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba53b097df52a8b7a34600cf620d88b554a96cbe
Joseph Tremoulet [Fri, 4 Nov 2016 21:54:51 +0000 (17:54 -0400)]
Merge pull request dotnet/coreclr#7996 from JosephTremoulet/OptRepeat
Add JitOptRepeat debug config flags
Commit migrated from https://github.com/dotnet/coreclr/commit/
b67ff5ed804ba161ca7c80ad29893e9e9ebbe470
Tarek Mahmoud Sayed [Fri, 4 Nov 2016 20:15:17 +0000 (13:15 -0700)]
make the returning of DTFI & NFI in CultureInfo atomic (dotnet/coreclr#7998)
we got some cases when more than one thread trying to get DTFI or NFI from the shared current culture object which can result returning different instances.
Although the returning object contents will be exactly but it'll be better to return same instance as apps may assume that. also returning the same instance will help reduce reinitializing more deeper fields when get requested.
Commit migrated from https://github.com/dotnet/coreclr/commit/
342ba49767ebd256f1adf449b9cfd51de8e1d03f
Joseph Tremoulet [Fri, 4 Nov 2016 19:11:57 +0000 (15:11 -0400)]
Merge pull request dotnet/coreclr#7911 from JosephTremoulet/CloneExprsForUnroll
Clone exprs for unroll
Commit migrated from https://github.com/dotnet/coreclr/commit/
76a1373b73ce420ba0acc6ad5ce3288d18deb84c
Joseph Tremoulet [Fri, 14 Oct 2016 17:57:38 +0000 (13:57 -0400)]
Add unroller support to CloneBlockState
This helper is used by the loop cloner to copy a block's attributes and
statements. Expand it so it can also be used by the loop unroller:
- Accept var/val parameters to pass through to `gtCloneExpr` to
perform in-place substitutions
- When presented with an expression that `gtCloneExpr` can't clone,
return false rather than dereferencing null
Commit migrated from https://github.com/dotnet/coreclr/commit/
e75ba7caecd5323b544fb3794574987e032fe01d
Joseph Tremoulet [Wed, 26 Oct 2016 21:01:57 +0000 (17:01 -0400)]
Clear *_ASG_LHS flags in ResetOptAnnotations
This works around an apparent bug in SSA construction (GitHub issue dotnet/coreclr#7846),
specifically `fgPerNodeLocalVarLiveness`, where heap uses are not
considered upwards-exposed if they follow a heap def in their block (which
is incorrect because the store and load are not necessarily must-alias).
In the non-repeat configuration, these flags are always cleared coming
into SSA construction, because `TreeRenameVariables` is the only thing
that sets them.
Commit migrated from https://github.com/dotnet/coreclr/commit/
86d4d5999267b687be6c404a3a998a9499f7a57f
Joseph Tremoulet [Fri, 30 Sep 2016 19:14:10 +0000 (15:14 -0400)]
Reset EH pred cache in ResetOptAnnotations
The cache created in the first iteration may not be correct in the second.
It seems there is a more general problem with failure to invalidate this
cache (GitHub issue dotnet/coreclr#7844), that this change is working around for the
optRepeat case.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7f6a791f35c2b03fe71853dc4c4b4633e82a8492
Joseph Tremoulet [Wed, 28 Sep 2016 16:57:01 +0000 (12:57 -0400)]
Add JitOptRepeat debug config flags
Add flag JitOptRepeat that specifies a set of methods on which to
iteratively perform global optimizations multiple times, and flag
JitOptRepeatCount to set the number of iterations (default 2) to apply
when JitOptRepeat kicks in.
These flags are debug-only; they are intended to facilitate performing
experiments investigating optimization opportunities missed due to phase
ordering issues.
Commit migrated from https://github.com/dotnet/coreclr/commit/
de040276a0425849e14fbc95f184bbd0e3e09ba5
Joseph Tremoulet [Thu, 3 Nov 2016 15:50:05 +0000 (11:50 -0400)]
Clear defnums and post-order nums in fgResetForSsa
SSA construction will overwrite these annotations, but only for reachable
code. Clear the annotations in all code in `fgResetForSsa` so that
downstream analysis won't stumble over stale/invalid SSA annotations
in unreachable code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
50e78c7e10d317d6042964f008f0f8078099588e
Joseph Tremoulet [Fri, 30 Sep 2016 19:18:55 +0000 (15:18 -0400)]
Clear heap PerSsaData, heapSsaMap in fgResetForSsa
These need to be cleared for the same reasons as the locals' PerSsaData;
their omission seems to be a simple oversight.
Commit migrated from https://github.com/dotnet/coreclr/commit/
eed63a7901ac0fe886f5a85cafbf0db62991ec91
Pat Gavlin [Fri, 4 Nov 2016 18:20:55 +0000 (11:20 -0700)]
Merge pull request dotnet/coreclr#7983 from pgavlin/VSO284785
Fix int->long cast folding for 32-bit platforms.
Commit migrated from https://github.com/dotnet/coreclr/commit/
97e63e114d80f41da6fd0d902bbdacd2f9d6025d
Joseph Tremoulet [Wed, 19 Oct 2016 22:14:24 +0000 (18:14 -0400)]
Avoid clobbering FldSeq annotations in cloneExpr
The overload of cloneExpr that takes a variable number and value to
perform replacements is intended to be used by the loop unroller, which
runs between Morph (where FldSeq annotations are generated) and value
numbering (where FldSeq annotations are consumed). Update that codepath
to call `LabelIndex` when replacing a `GTF_VAR_ARR_INDEX` node, and to
avoid calling `gtFoldExpr` (which does not preserve these annotations).
Downstream constant folding should be capable of doing that optimization.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4748bb354f00b6d48aae4a85ac3b1c955e6fe0ca
Joseph Tremoulet [Fri, 14 Oct 2016 17:34:45 +0000 (13:34 -0400)]
Do not replace assign LHS in gtCloneExpr
Split the var/val parameters into two sets -- one for the current level of
recursion, the other for deeper levels. Use this to suppress one level of
replacement when recursing to the LHS of an assign. This both avoids
creating nonsensical assign-to-immediate trees and allows replacing uses
of the given var while leaving defs in the code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
85559d607577c88d17d45d53f270f78e09b39f7d
Andy Ayers [Fri, 4 Nov 2016 04:28:16 +0000 (21:28 -0700)]
Jit: fix regression in non-AVX SIMD codegen (dotnet/coreclr#7989)
Vector codegen for dot product was inadvertenly altered in non-DEBUG
builds.
Closes dotnet/coreclr#7977.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bef31b0d0ffe49f98640d445d0a9f3bf2c015aa7
Alex Ghiondea [Fri, 4 Nov 2016 04:28:01 +0000 (21:28 -0700)]
Add the serialization ctor for CryptographicException to model.xml (dotnet/coreclr#7974)
Commit migrated from https://github.com/dotnet/coreclr/commit/
65bf62ccd489f10b7e8f13a91623f770097e9a74
Joseph Tremoulet [Wed, 2 Nov 2016 15:46:06 +0000 (11:46 -0400)]
Fix check for float args under windows x64 remorph
When re-morphing, `argx` will not have the argument's type if the argument
has been moved to the late args list, so check the arg table entry
instead. The unix x64 codepath already had the correct code, so just
remove the ifdef.
Commit migrated from https://github.com/dotnet/coreclr/commit/
786dd6365c5e4d7bedf06890b36331937f88d6c3
Joseph Tremoulet [Thu, 3 Nov 2016 18:51:17 +0000 (14:51 -0400)]
Clear GTF_VAR_USEDEF when folding <op>= forms
The `GTF_VAR_USEDEF` flag is applied to the def of an expression like "x =
x + y". The `GTF_VAR_USEASG` flag is applied to the op1 of an expression
like "x += y". Update the code to clear the `GTF_VAR_USEDEF` flag (in
addition to setting the `GTF_VAR_USEASG` flag) when folding the former to
the latter.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e76652d88929205893620fbfe71bb43c937cbf7d
Jan Kotas [Fri, 4 Nov 2016 03:35:50 +0000 (20:35 -0700)]
Merge pull request dotnet/coreclr#7991 from dotnet/revert-7946-armci_crashed
Revert "ARM-CI : Use archived root-fs and run tests with --sequential option"
Commit migrated from https://github.com/dotnet/coreclr/commit/
9dad2be0ca7db53b566ef458b810bff0e80a0b04
Jan Kotas [Fri, 4 Nov 2016 03:35:35 +0000 (20:35 -0700)]
Revert "ARM-CI : Use archived root-fs and run tests with --sequential option"
Commit migrated from https://github.com/dotnet/coreclr/commit/
31c988c1a217048f706df702793ebd2100c169a2
Jonghyun Park [Fri, 4 Nov 2016 02:43:24 +0000 (11:43 +0900)]
Do not use FP registers when soft-fp ABI is used (dotnet/coreclr#7869)
Soft FP ABI enforces a return value to be passed via integer registers
even though it is of float/double type (which means that 'r0 ~ r4' should
be preseved even for functions that return a float/double value).
The current implementation of 'ArgIteratorTemplate<ARGITERATOR_BASE>::ComputeReturnFlags()' does
not consider this ABI difference, which makes 'CallDescrWorkerInternal'
function to preserve FP registers instead of 'r0 ~ r4' (and spoils
'r0/r1' during preservation), which leads to dotnet/coreclr#7868.
This commit revises this function in order to fix dotnet/coreclr#7868.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4822563366cec72e3e269e56a14a15bb238ba8b2
Sujin Kim [Fri, 4 Nov 2016 02:31:30 +0000 (11:31 +0900)]
ARM-CI : Use archived root-fs and run tests with --sequential option (dotnet/coreclr#7946)
* ARM-CI : Use archived root-fs and run tests with --sequential option
To make sure the reason of test failure ramdomly( dotnet/coreclr#6298 ),
We checked segmentation faults occurred from mounted rootfs and the multi thread processing.
So I changed root-fs to archived root-fs and run tests with --sequential option.
* change to original clang version
Commit migrated from https://github.com/dotnet/coreclr/commit/
cd33bb684837bf351875d64af27cc270675eae98
Bruce Forstall [Fri, 4 Nov 2016 00:58:29 +0000 (17:58 -0700)]
Fix JIT build host/target confusion (dotnet/coreclr#7979)
Also, add RyuJIT to Windows ARM32 cross components build (as protojit.dll).
Commit migrated from https://github.com/dotnet/coreclr/commit/
3e5eab8392893798ab3a8f3d412829519494f709
Jan Kotas [Fri, 4 Nov 2016 00:57:48 +0000 (17:57 -0700)]
Merge pull request dotnet/coreclr#7978 from AlexGhiondea/RemoveSecureStringMarshal
The SecureStringMarshal type was an artifact of the layering we had i…
Commit migrated from https://github.com/dotnet/coreclr/commit/
44fa5027af908c1867379f65f7fae81bf5b91c66
Jan Kotas [Fri, 4 Nov 2016 00:12:04 +0000 (17:12 -0700)]
Merge pull request dotnet/coreclr#7982 from dotnet/revert-7677-StructOpts
Revert "Enable optimization of structs"
Commit migrated from https://github.com/dotnet/coreclr/commit/
2f39cc2257473fa6fa5a31fd2c2e10eef02dc063
Rama Krishnan Raghupathy [Thu, 3 Nov 2016 23:58:09 +0000 (16:58 -0700)]
Removing the copy of project.lock.json to bin folder
Commit migrated from https://github.com/dotnet/coreclr/commit/
edb716d3b6f2887cef166b8ea1cb3c0e5de548d5
Michelle McDaniel [Thu, 3 Nov 2016 23:38:26 +0000 (16:38 -0700)]
Merge pull request dotnet/coreclr#7972 from adiaaida/storeShiftRotate32
Force store of lcl var for shift/rotate by 32
Commit migrated from https://github.com/dotnet/coreclr/commit/
14ba7652432c466f8657be4fef81bb72538bb2cd
Rama krishnan Raghupathy [Thu, 3 Nov 2016 23:02:20 +0000 (16:02 -0700)]
Merge pull request dotnet/coreclr#7965 from ramarag/GetType
Enabling Type.Getype with overloads for assembly and type resolvers
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4b5e41206e2e1e577c68f09209bc670a3d38749
Rama krishnan Raghupathy [Thu, 3 Nov 2016 23:02:03 +0000 (16:02 -0700)]
Merge pull request dotnet/coreclr#7945 from ramarag/MemoryFailPoint
Disabling checks in MemoryFailPoint for Xplat
Commit migrated from https://github.com/dotnet/coreclr/commit/
c9c4aeca7632f987e14354d7a190f350b573cb04
Jan Kotas [Thu, 3 Nov 2016 22:33:08 +0000 (15:33 -0700)]
Revert "Enable optimization of structs"
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa06cedfc1351c03e86ef95cdd8b9020c814a4c8
Pat Gavlin [Thu, 3 Nov 2016 22:00:16 +0000 (15:00 -0700)]
Fix int->long cast folding for 32-bit platforms.
The RyuJIT frontend does not allow for the folding of an int->long cast
that is known to overflow into a throw outside of global morph. The
folding, however, was unconditionally changing the operand to the cast
from an integer constant to a long constant, which can change the
behavior of the cast. This rewrite is not necessary, so this change
simply removes it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6ca81b2fa7a4f51e1385d218a45fa17df2f71d9
Rama Krishnan Raghupathy [Thu, 3 Nov 2016 19:05:56 +0000 (12:05 -0700)]
Enabling Type.GetType with overloads for assembly and type resolvers
Commit migrated from https://github.com/dotnet/coreclr/commit/
17f862393c2e0bfd1e29a6273a4f4d0c4910f1fd
Alex Ghiondea [Thu, 3 Nov 2016 21:09:32 +0000 (14:09 -0700)]
The SecureStringMarshal type was an artifact of the layering we had in CoreFx.
This type should not have been added to CoreCLR as part of the SecureString move.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b5f067bdf7d523eba69f2ced81a3ba97fb1fe22f
Michelle McDaniel [Thu, 3 Nov 2016 16:13:06 +0000 (09:13 -0700)]
Force store of lcl var for shift/rotate by 32
In the shift/rotate by 32 case, we move the lo op into the high op. In the
shift case, we set the lo op to 0, in the rotate case, we are swapping lo
and hi, so we also move hi into lo. In the instance that we are reusing
the same lclvars, we need to explicitly store the ops that we are moving
so that we don't overwrite the vars before using them. This change
explicitly replaces the uses of the ops with lclvars so we don't overwrite
vars before finishing the swap.
Commit migrated from https://github.com/dotnet/coreclr/commit/
cc2c55b93d464fa84e3122a15dbb73994ad7bcdd
sandreenko [Thu, 3 Nov 2016 20:58:25 +0000 (13:58 -0700)]
Merge pull request dotnet/coreclr#7908 from sandreenko/fix_tail_call_in_R2R
Correct pattern check for tail calls
Commit migrated from https://github.com/dotnet/coreclr/commit/
552dae981e06efa059ac6e5d3bb326b54fc7eabe
Vance Morrison [Thu, 3 Nov 2016 20:37:53 +0000 (13:37 -0700)]
Fix a issue where ETW was losing RCW and CCW in heap dumps. (dotnet/coreclr#7971)
Basically our builk events for RCWs and CCWs were too big, causing ETW to reject them, and thus losing information.
However you have to have at least several hundred befor you have enough to force the problem.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9b6991acf0cf6fd721d3ba8d8867dcb5c454918
Pat Gavlin [Thu, 3 Nov 2016 19:09:50 +0000 (12:09 -0700)]
Merge pull request dotnet/coreclr#7958 from pgavlin/VSO280123
Make a few VN methods tolerant of NoVN.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9d295d676dbd2f5c72e3fc1f5fb12d293a3da37d
John Chen [Thu, 3 Nov 2016 18:59:40 +0000 (11:59 -0700)]
Make CrossGen documentation up to date (dotnet/coreclr#7973)
Commit migrated from https://github.com/dotnet/coreclr/commit/
40b25c8955a00e47d2b061f2f795ffc917ccca1a
Sergey Andreenko [Mon, 31 Oct 2016 19:31:10 +0000 (12:31 -0700)]
Correct pattern check
sequense
localVariable = cast.int(call.small_type());
return localVaribale
is correct tail call pattern.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fb33095254c63e8bcb89dd4e15269de309c6ed5c
Pat Gavlin [Thu, 3 Nov 2016 17:35:28 +0000 (10:35 -0700)]
Merge pull request dotnet/coreclr#7956 from pgavlin/VSO280110
Properly update block flags during branch opt.
Commit migrated from https://github.com/dotnet/coreclr/commit/
81a1b87909cd27a7313a124f29c503595f2af117
Pat Gavlin [Thu, 3 Nov 2016 17:35:05 +0000 (10:35 -0700)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3b69d5b7b497c9ce0151d506fdfad81b06ba1d42
Pat Gavlin [Thu, 3 Nov 2016 17:29:57 +0000 (10:29 -0700)]
Merge pull request dotnet/coreclr#7959 from pgavlin/VSO280116
Fix an assert condition in lowering.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a307cae611968ff1ce1fdd7c6a084ee6364586fe
Pat Gavlin [Thu, 3 Nov 2016 17:29:32 +0000 (10:29 -0700)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fe7e31a7ea56ca626916b546211ff3d728f70cf9
Andy Ayers [Thu, 3 Nov 2016 17:11:25 +0000 (10:11 -0700)]
Merge pull request dotnet/coreclr#7968 from AndyAyersMS/CaptureNewObservations
Inliner: capture new observations
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1a53c29d3c84ced1dc3bcb98e5cee8333a147d4
Stephen Toub [Thu, 3 Nov 2016 10:06:36 +0000 (06:06 -0400)]
Mark NonRandomizedStringEqualityComparer as serializable (dotnet/coreclr#7966)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d4681d2773378e9d32d3720dea615732e7086bd4
Andy Ayers [Tue, 1 Nov 2016 23:22:10 +0000 (16:22 -0700)]
Inliner: capture new observations
Rebase the DiscretionaryPolicy on the EnhancedLegacyPolicy, and
capture and report some of the new observations that have been added
recently.
This change adds a new HAS_GC_STRUCT observation in addition to the
more specific RARE_GC_STRUCT, so that the DiscretionaryPolicy can
be notified of GC struct locals and temps for all candidates, not
just ones invoked from rare call sites.
No changes in codegen.
Commit migrated from https://github.com/dotnet/coreclr/commit/
af4464a5b0c9a117d53fea16badeb7ca32f92d75
Jonghyun Park [Thu, 3 Nov 2016 02:46:19 +0000 (11:46 +0900)]
Revises 'JitTimer::PrintCsvHeader' to use 'append' mode (dotnet/coreclr#7073)
* Revises 'JitTimer::PrintCsvHeader' to use 'append' mode
The current implementation of 'JitTimer::PrintCsvHeader' opens a CSV
file with 'read' mode and re-opens it with 'write' mode if it is absent.
The current implementation has two problems:
First, "read" file pointer will be closed even if it is null,
which is reported in dotnet/coreclr#7072.
Second, "write" file pointer will be leaked as there is no corresponding
fclose.
This commit rewrites 'JitTimer::PrintCsvHeader' to fix dotnet/coreclr#7072.
Commit migrated from https://github.com/dotnet/coreclr/commit/
67495d8667b2ec07c876ab4f7fd4a39f6a826158
varocarbas [Thu, 3 Nov 2016 02:33:46 +0000 (03:33 +0100)]
ParseNumber & related more efficient (dotnet/coreclr#3163)
Commit migrated from https://github.com/dotnet/coreclr/commit/
bdf13b2665480285c2b35dd265f0d9c5127937e0
David Mason [Thu, 3 Nov 2016 02:23:18 +0000 (19:23 -0700)]
Merge pull request dotnet/coreclr#7936 from vancem/EventSourceDisposeRace.11-01-16
Fix Deadlock associated with ETW commands happening during dispose.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac50227cf77fc1147b1db40be37fd83250cdb79d
Dmitry-Me [Thu, 3 Nov 2016 01:38:49 +0000 (04:38 +0300)]
Fix race condition (dotnet/coreclr#7928)
Commit migrated from https://github.com/dotnet/coreclr/commit/
578ea10d73f82f156f9fea76ddf915b7943d7bd8
chunseoklee [Wed, 2 Nov 2016 22:18:53 +0000 (07:18 +0900)]
Suppress SOS.NETCore.dll error msg in release mode (dotnet/coreclr#6975)
Suppress error msg when running coreclr without
SOS.NETCore.dll in release mode
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a05dcd07441b8779ec5b9eff9bdcb90f24fcb8e
Pat Gavlin [Wed, 2 Nov 2016 21:52:58 +0000 (14:52 -0700)]
Fix an assert condition in lowering.
Tail calls via the tail call helper must live in GC-safe blocks. A block
is GC-safe if either it or all of its dominators are also GC-safe. If we
are not optimizing, we will not compute dominators, and will therfore
not mark blocks whose dominators are all GC-safe. When deciding whether
or not we need to make a block GC-safe during tail call morphing,
however, we allow a tail call in an unmarked block iff the entry block
is GC-safe, as the entry block trivially dominates every reachable
block. This change fixes an assert that was not allowing for a tail call
in a block that is not marked GC-safe where the entry block is marked
GC-safe.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c777aec201d57ef1f896bd5a3089fb322cd53707
Jonghyun Park [Wed, 2 Nov 2016 21:44:24 +0000 (06:44 +0900)]
Set pRetVal as NULL on error inside 'VIRTUALCommitMemory' (dotnet/coreclr#7920)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b4a5de28efa0fdde7c74287cda31b658e11f7ebc
Pat Gavlin [Wed, 2 Nov 2016 21:23:09 +0000 (14:23 -0700)]
Merge pull request dotnet/coreclr#7917 from pgavlin/VSO280120
Fix VSO280120.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5adc178013c069cb9b50456740dcb79ef61e14f8
Pat Gavlin [Wed, 2 Nov 2016 21:08:41 +0000 (14:08 -0700)]
Make a few VN methods tolerant of NoVN.
There were a few methods on the VN store that were not resilient to
being provided with the "no value number" sentinel value. This lack of
resilience caused assertion failures during assertion propagation when
generating assertions for trees marked with "no value number".
Commit migrated from https://github.com/dotnet/coreclr/commit/
90a7e86fb9f83691ee11e7205c3fcef06c60e26f
Pat Gavlin [Wed, 2 Nov 2016 19:39:40 +0000 (12:39 -0700)]
Properly update block flags during branch opt.
`fgOptimizeBranch` was updating the flags for the predecessor block
using the flags from the wrong destination block. This was causing an
assert in `AllocateObjects` when verifying that all blocks that contain
`allocObj` nodes are properly marked with `BBF_HAS_NEWOBJ`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b0e3c23069a73943f52014b3cba52c56a6839439
Pat Gavlin [Mon, 31 Oct 2016 22:32:29 +0000 (15:32 -0700)]
Fix VSO280120.
st.lclFld decomposition was splitting a st.lclFld into two of the same
without bumping the destination var's ref count.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7266fa1aaa5678962de142868438ba6e6716c102
Dmitry-Me [Wed, 2 Nov 2016 17:42:41 +0000 (20:42 +0300)]
Check pointer before dereferencing it (dotnet/coreclr#7930)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e568823f22ec1dccc4ea785630c837e776d4ee09
Jan Kotas [Wed, 2 Nov 2016 16:54:14 +0000 (09:54 -0700)]
Merge pull request dotnet/coreclr#7953 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
140b2bdeefc49455d087358dfd40ff1cc2303dc8
Sivarv [Wed, 2 Nov 2016 15:01:42 +0000 (08:01 -0700)]
Merge pull request dotnet/coreclr#7943 from sivarv/rotateFix
Exclude GT_ROL/ROR from ==/!= 0 compare peep optimization
Commit migrated from https://github.com/dotnet/coreclr/commit/
a4e26c85b3de677df72c1beb94844e0e52243170
Davis Goodin [Wed, 2 Nov 2016 14:37:33 +0000 (09:37 -0500)]
Specify .NETCoreApp,Version=v1.1 for test projects (dotnet/coreclr#7937)
Commit migrated from https://github.com/dotnet/coreclr/commit/
eb36c1bae2560f728768fba8a9044acccef520ca
Jan Kotas [Wed, 2 Nov 2016 14:35:30 +0000 (07:35 -0700)]
Fix build break
[tfs-changeset: 1636334]
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf3279c0f3dbc65b495bbe335d71132dbdb125fb
Jan Kotas [Wed, 2 Nov 2016 14:08:50 +0000 (07:08 -0700)]
Merge pull request dotnet/coreclr#7951 from jkotas/revert-correct-parameter-names
Revert "Correct parameter names."
Commit migrated from https://github.com/dotnet/coreclr/commit/
26fa7fac1cffa75ee8f572bf725b5ad2efcecb17
Jan Kotas [Wed, 2 Nov 2016 14:06:30 +0000 (07:06 -0700)]
Revert "Correct parameter names."
This reverts commit dotnet/coreclr@
0cae769f3c60bf2a696d02a88527a46d5b211cd5.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a655471b021c18c969c79a49a693e39c7aec51b3
Jan Kotas [Wed, 2 Nov 2016 13:55:43 +0000 (06:55 -0700)]
Merge pull request dotnet/coreclr#7950 from jkotas/revert-parameter-name-changes
Revert "Correct parameter names."
Commit migrated from https://github.com/dotnet/coreclr/commit/
23b5645f7f90cb5842130394b4edab0f1bfa6bbd
Jan Kotas [Wed, 2 Nov 2016 13:53:53 +0000 (06:53 -0700)]
Revert "Correct parameter names."
This reverts commit dotnet/coreclr@
a212082aa4cea8529b4c78844e2a7408ff6f7969.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf2d7261d5be3c2cec6937da56c2c5ed2f0901a7
Hanjoung Lee [Wed, 2 Nov 2016 13:23:57 +0000 (22:23 +0900)]
[ARM] Implement BitPosition with arm intrinsics (dotnet/coreclr#7819)
Commit migrated from https://github.com/dotnet/coreclr/commit/
478591ee6c7b09c0c7165d1c85a05463fd070db4
Hyung-Kyu Choi [Wed, 2 Nov 2016 11:31:29 +0000 (20:31 +0900)]
Exclude six sizeof related tests from ARM
We decided to exclude following six tests
after discussion in issue dotnet/coreclr#6680.
JIT/Methodical/xxobj/sizeof/_il_dbgsizeof/_il_dbgsizeof.sh
JIT/Methodical/xxobj/sizeof/_il_dbgsizeof32/_il_dbgsizeof32.sh
JIT/Methodical/xxobj/sizeof/_il_dbgsizeof64/_il_dbgsizeof64.sh
JIT/Methodical/xxobj/sizeof/_il_relsizeof/_il_relsizeof.sh
JIT/Methodical/xxobj/sizeof/_il_relsizeof32/_il_relsizeof32.sh
JIT/Methodical/xxobj/sizeof/_il_relsizeof64/_il_relsizeof64.sh
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
bcd4c37d4dd4dd7ff81a68bdaed66afc6f340642
Faizur Rahman [Wed, 2 Nov 2016 06:53:04 +0000 (23:53 -0700)]
Merge pull request dotnet/coreclr#7904 from shrah/master
Update S.R.InteropServices to ns2.0
Commit migrated from https://github.com/dotnet/coreclr/commit/
91f1b9d1519a40a1b3153d7b6dbb716a5bd704bd
John Chen [Wed, 2 Nov 2016 05:50:56 +0000 (22:50 -0700)]
Fix build break 814276: FEATURE_SPAN_OF_T disabled in runtime but enabled in DAC
[tfs-changeset: 1636322]
Commit migrated from https://github.com/dotnet/coreclr/commit/
19e352fdd52eec39fe7e04798fa3bbadf2f6aa88
Jan Kotas [Wed, 2 Nov 2016 01:59:16 +0000 (18:59 -0700)]
Merge pull request dotnet/coreclr#7944 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
45ab32327d565a36fe0ed03bc85ffdd5220a3cf2
Ian Hays [Wed, 2 Nov 2016 01:58:47 +0000 (18:58 -0700)]
Expose missing API in models.xml (dotnet/coreclr#7940)
progress towards https://github.com/dotnet/corefx/issues/12812 and https://github.com/dotnet/corefx/issues/12398
Commit migrated from https://github.com/dotnet/coreclr/commit/
0aba9c62db8b8c998466175d4951a01212cf57fb
Jan Kotas [Wed, 2 Nov 2016 01:57:36 +0000 (18:57 -0700)]
Update GCInfoDecoder with CoreRT changes (dotnet/coreclr#7938)
Porting most of the changes from https://github.com/dotnet/corert/pull/2116 to make GCInfoDecoder compile in CoreRT to keep the different copies in sync.
Commit migrated from https://github.com/dotnet/coreclr/commit/
efbd7a0ffb8ea6bb8e9fc3b273482cfd7bd7d5cd
DDCloud [Wed, 2 Nov 2016 00:48:23 +0000 (17:48 -0700)]
Disabling checks in MemoryFailPoint for Xplat till primitives like VirtualQuery
are implmemented properly
Commit migrated from https://github.com/dotnet/coreclr/commit/
953361eb2d4092feaf509dfc5b23edcc0146efda