platform/upstream/dotnet/runtime.git
7 years agoRemove unnecessary newline in WriteLine (dotnet/coreclr#8047)
Bruce Forstall [Thu, 10 Nov 2016 03:58:31 +0000 (19:58 -0800)]
Remove unnecessary newline in WriteLine (dotnet/coreclr#8047)

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

7 years agoAdd missing ref emit enum members for ns2.0 (dotnet/coreclr#8062)
Alex Perovich [Thu, 10 Nov 2016 03:57:13 +0000 (19:57 -0800)]
Add missing ref emit enum members for ns2.0 (dotnet/coreclr#8062)

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

7 years agoAdd IntPtr constructors to FileStream (dotnet/coreclr#8063)
Jeremy Kuhne [Thu, 10 Nov 2016 03:54:36 +0000 (19:54 -0800)]
Add IntPtr constructors to FileStream (dotnet/coreclr#8063)

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

7 years agoDon't turn off compCanUseSSE2 on x86 RyuJIT under jit stress. (dotnet/coreclr#8068)
Sivarv [Thu, 10 Nov 2016 03:53:24 +0000 (19:53 -0800)]
Don't turn off compCanUseSSE2 on x86 RyuJIT under jit stress. (dotnet/coreclr#8068)

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

7 years agoPort Marshal.GenerateProgIdForType in CoreCLR (dotnet/coreclr#8070)
Faizur Rahman [Thu, 10 Nov 2016 03:52:41 +0000 (19:52 -0800)]
Port Marshal.GenerateProgIdForType in CoreCLR (dotnet/coreclr#8070)

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

7 years agoMerge pull request dotnet/coreclr#8069 from shrah/master
Faizur Rahman [Thu, 10 Nov 2016 02:01:15 +0000 (18:01 -0800)]
Merge pull request dotnet/coreclr#8069 from shrah/master

Return Type.GUID for Marshal.GenerateGuidForType in CoreCLR

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

7 years agoFix missing exports in mscordaccore.so (dotnet/coreclr#8058)
Jan Vorlicek [Thu, 10 Nov 2016 01:28:29 +0000 (17:28 -0800)]
Fix missing exports in mscordaccore.so (dotnet/coreclr#8058)

I have recently added some exports to the mscordaccore.so and it was
found that they were not honored and libsos.so got some unresolved
symbols.
I have found that the issue is that unlike for libcoreclr.so, we
were not asking linker to include the whole PAL and so it has
eliminated those functions due to the fact they were not called
from the PAL itself.
This change fixes it.

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

7 years agoReturn Type.GUID for Marshal.GenerateGuidForType in CoreCLR
Faizur Rahman [Thu, 10 Nov 2016 01:20:37 +0000 (17:20 -0800)]
Return Type.GUID for Marshal.GenerateGuidForType in CoreCLR

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

7 years agoMemory growth algorithm improvement in coreconsole (dotnet/coreclr#7870)
Roman Shchekin [Thu, 10 Nov 2016 00:06:40 +0000 (03:06 +0300)]
Memory growth algorithm improvement in coreconsole (dotnet/coreclr#7870)

* Now Append will work properly if strLen is big (for example 3xm_capacity). And value 1.5 is better for memory growth.

* Correct way of calculating 1.5 (without floating point calculation, thanks mikedn)

* After long discussion we decided that simple and aggressive allocation is better for this case

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

7 years agoInliner: enable inlining of methods with conditional throws (dotnet/coreclr#8038)
Andy Ayers [Wed, 9 Nov 2016 23:03:23 +0000 (15:03 -0800)]
Inliner: enable inlining of methods with conditional throws (dotnet/coreclr#8038)

* Inliner: enable inlining of methods with conditional throws

Remove inlining limitation for methods that return values and have
conditional throws. This limitation was most likely a vestige of an
older inlining implementation that did not break trees at inline
call sites.

Also removed the now-unused observation and the `seenConditionalJump`
member variable. Merged ifdef blocks in `impInit`.

Ran full desktop testing, no issues.

Enables a handful of inlines in the various code size suites. For the
most part these slightly increase code size but can often shorten the
non-EH paths in the code.

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

7 years agoMerge pull request dotnet/coreclr#7981 from sandreenko/fix_vn_in_cse
sandreenko [Wed, 9 Nov 2016 22:49:51 +0000 (14:49 -0800)]
Merge pull request dotnet/coreclr#7981 from sandreenko/fix_vn_in_cse

Don't transform GT_SUB tree outside the global morph phase.

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

7 years agoMerge pull request dotnet/coreclr#8033 from RussKeldorph/nopopup
Russ Keldorph [Wed, 9 Nov 2016 21:25:23 +0000 (13:25 -0800)]
Merge pull request dotnet/coreclr#8033 from RussKeldorph/nopopup

Disable GUI dialogs for assertion failures on Windows by default

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

7 years agoMerge pull request dotnet/coreclr#8041 from ericstj/updateBuildTools
Eric StJohn [Wed, 9 Nov 2016 20:15:06 +0000 (12:15 -0800)]
Merge pull request dotnet/coreclr#8041 from ericstj/updateBuildTools

Update BuildToolsVersion to 01007-02

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

7 years agoMerge pull request dotnet/coreclr#8049 from sivarv/lsraAssertFix
Sivarv [Wed, 9 Nov 2016 18:20:47 +0000 (10:20 -0800)]
Merge pull request dotnet/coreclr#8049 from sivarv/lsraAssertFix

If the very first ref position of an interval has a register assignment of RBM_NONE indicate it could also be a regOptional

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

7 years agoDisable GUI dialogs on Windows by default
Russ Keldorph [Mon, 7 Nov 2016 22:40:14 +0000 (14:40 -0800)]
Disable GUI dialogs on Windows by default

This change disables creating pop-up dialog boxes by default on Windows
when assertions fail.  The change consists of two pieces:

1) Make COMPlus_NoGuiOnAssert effective in Release builds (currently only
Debug/Checked builds)
2) Make DebuggerAssert::ShowDefaultAssertDialog honor the
COMPlus_NoGuiOnAssert variable.
3) Make COMPlus_NoGuiOnAssert=1 by default.

Note that COMPlus_NoGuiOnAssert was already honored for assertions
originating from native code such as the JIT.  If pop-ups are desired,
one can still set COMPlus_NoGuiOnAssert=0.

Fixes dotnet/coreclr#7678

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

7 years agoMerge pull request dotnet/coreclr#8022 from mmitche/disable-email-pub
Matt Mitchell [Wed, 9 Nov 2016 17:31:19 +0000 (09:31 -0800)]
Merge pull request dotnet/coreclr#8022 from mmitche/disable-email-pub

Remove email publishing calls

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

7 years ago[Linux][GDBJIT] Fix crashes related with locals debug info generation (dotnet/corecl...
Evgeny Pavlov [Wed, 9 Nov 2016 17:08:49 +0000 (20:08 +0300)]
[Linux][GDBJIT] Fix crashes related with locals debug info generation  (dotnet/coreclr#7874)

* [GDBJIT] Fix several issues related with generation debug info for locals:
* Fix crash on generics static
* Add support of pointer type
* Fix incorrect processing of classes when we have several locals with the same class type

* Move gdbjit.cpp from VM_SOURCES_DAC_AND_WKS_COMMON to VM_SOURCES_WKS

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

7 years agoFix IntermediateOutputPath for mscorlib facade
Eric St. John [Wed, 9 Nov 2016 16:48:31 +0000 (08:48 -0800)]
Fix IntermediateOutputPath for mscorlib facade

Previously we were working around this by using double backslash but
GenFacades broke this when adding response file support and double-
unescaping.  Workaround using a forward slash instead.

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

7 years agoAvoid failures when allocate memory in native (dotnet/coreclr#8028)
Tarek Mahmoud Sayed [Wed, 9 Nov 2016 04:38:41 +0000 (20:38 -0800)]
Avoid failures when allocate memory in native (dotnet/coreclr#8028)

* Avoid failures when allocate memory in native

using new in the native side can throw and the app will shutdown. instead we detect the failure and throw a managed exception

* Use same mechanism we return the error code from GetSortHandle

* Add assert

* Dispose the safeHandle

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

7 years agoMerge pull request dotnet/coreclr#8043 from stephentoub/remove_delegate_alloc
Stephen Toub [Wed, 9 Nov 2016 03:29:51 +0000 (22:29 -0500)]
Merge pull request dotnet/coreclr#8043 from stephentoub/remove_delegate_alloc

Remove delegate allocation per ThreadPoolBoundHandleOverlapped

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

7 years agoIf the very first ref position of an interval has a register assignment of RBM_NONE...
sivarv [Wed, 9 Nov 2016 02:08:31 +0000 (18:08 -0800)]
If the very first ref position of an interval has a register assignment of RBM_NONE indicate it could also be a regOptional

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

7 years agoMerge pull request dotnet/coreclr#8040 from sandreenko/additional-commit-for-PR-8014
sandreenko [Tue, 8 Nov 2016 23:50:11 +0000 (15:50 -0800)]
Merge pull request dotnet/coreclr#8040 from sandreenko/additional-commit-for-PR-8014

additional commit to PR 8014

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

7 years agoMerge pull request dotnet/coreclr#8023 from pgavlin/MoveAltJitCrossgen
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

7 years agoMerge pull request dotnet/coreclr#8035 from hseok-oh/fix_7871
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

7 years agoRemove delegate allocation per ThreadPoolBoundHandleOverlapped
Stephen Toub [Tue, 8 Nov 2016 21:36:56 +0000 (16:36 -0500)]
Remove delegate allocation per ThreadPoolBoundHandleOverlapped

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

7 years agoUpdate BuildToolsVersion to 01007-02
Eric St. John [Tue, 8 Nov 2016 20:51:42 +0000 (12:51 -0800)]
Update BuildToolsVersion to 01007-02

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

7 years agoMerge pull request dotnet/coreclr#8004 from shrah/master
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

7 years agoRevert Michal jit changes
Sergey Andreenko [Tue, 8 Nov 2016 20:41:45 +0000 (12:41 -0800)]
Revert Michal jit changes

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

7 years agoReport CORINFO_FLG_CONTAINS_GC_PTR for TypedReference (dotnet/coreclr#8014)
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

7 years agoExpose Marshal.CleanupUnusedObjectsInCurrentContext
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

7 years ago[Linux][GDB-JIT] Fix lldb stepping issues (dotnet/coreclr#7777)
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

7 years agofix typo
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

7 years agoSupport GetHFAType in SuperPMI for ARM32 hardFP
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

7 years agoMerge pull request dotnet/coreclr#7988 from ramarag/lockjson
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

7 years agoMerge pull request dotnet/coreclr#8026 from jashook/arm64_g_flag_multiregstructarg
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

7 years agoUpdate testing-with-corefx.md
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

7 years agoArm64 add missing G flag and possibly X flags
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

7 years agoChange crossgen to always pass USE_SSE2 to the JIT.
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

7 years agoSet VN argument for changeOper during morph.
Sergey Andreenko [Thu, 3 Nov 2016 00:33:04 +0000 (17:33 -0700)]
Set VN argument for changeOper during morph.

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

7 years agoMerge pull request dotnet/coreclr#8011 from sivarv/lsraFix
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

7 years agoRemove email publishing calls
Matt Mitchell [Mon, 7 Nov 2016 19:07:49 +0000 (11:07 -0800)]
Remove email publishing calls
The new server's email plugin version has different syntax and the email publishing doesn't work currently anyway.  Will be re-enabled at a future time

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

7 years agoUse the alt JIT for S.P.CoreLib if altjitcrossgen is specified.
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

7 years agoMerge pull request dotnet/coreclr#8006 from pgavlin/VSO278369
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

7 years agoEnforces aligned access for Single/Double values (dotnet/coreclr#7993)
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

7 years agoMerge pull request dotnet/coreclr#8007 from pgavlin/VSO284785
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

7 years agoMerge pull request dotnet/coreclr#7949 from hqueue/arm/sizeof
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

7 years agoRemoval of the ansicurrSymbol variable. (dotnet/coreclr#7999)
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

7 years agoChange default file permissions on Unix to 666 (dotnet/coreclr#7995)
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

7 years agoMerge pull request dotnet/coreclr#7985 from AlexGhiondea/ExposeMarshalAPI
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

7 years agoRemove more PAL functions (dotnet/coreclr#8009)
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

7 years agoMove remaining NETCoreApp references from 1.0 to 1.1 (dotnet/coreclr#8008)
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

7 years agoWhile unassigning a phyReg, establish association with a previous interval
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

7 years agoFix VN propagation for binops.
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

7 years agoAdd a regression test for VSO 284785.
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

7 years agoExpose the Marshal APIs that use SecureString
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

7 years agoMerge pull request dotnet/coreclr#7996 from JosephTremoulet/OptRepeat
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

7 years agomake the returning of DTFI & NFI in CultureInfo atomic (dotnet/coreclr#7998)
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

7 years agoMerge pull request dotnet/coreclr#7911 from JosephTremoulet/CloneExprsForUnroll
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

7 years agoAdd unroller support to CloneBlockState
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

7 years agoClear *_ASG_LHS flags in ResetOptAnnotations
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

7 years agoReset EH pred cache in ResetOptAnnotations
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

7 years agoAdd JitOptRepeat debug config flags
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

7 years agoClear defnums and post-order nums in fgResetForSsa
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

7 years agoClear heap PerSsaData, heapSsaMap in fgResetForSsa
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

7 years agoMerge pull request dotnet/coreclr#7983 from pgavlin/VSO284785
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

7 years agoAvoid clobbering FldSeq annotations in cloneExpr
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

7 years agoDo not replace assign LHS in gtCloneExpr
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

7 years agoJit: fix regression in non-AVX SIMD codegen (dotnet/coreclr#7989)
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

7 years agoAdd the serialization ctor for CryptographicException to model.xml (dotnet/coreclr...
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

7 years agoFix check for float args under windows x64 remorph
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

7 years agoClear GTF_VAR_USEDEF when folding <op>= forms
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

7 years agoMerge pull request dotnet/coreclr#7991 from dotnet/revert-7946-armci_crashed
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

7 years agoRevert "ARM-CI : Use archived root-fs and run tests with --sequential option"
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

7 years agoDo not use FP registers when soft-fp ABI is used (dotnet/coreclr#7869)
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

7 years agoARM-CI : Use archived root-fs and run tests with --sequential option (dotnet/coreclr...
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

7 years agoFix JIT build host/target confusion (dotnet/coreclr#7979)
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

7 years agoMerge pull request dotnet/coreclr#7978 from AlexGhiondea/RemoveSecureStringMarshal
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

7 years agoMerge pull request dotnet/coreclr#7982 from dotnet/revert-7677-StructOpts
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

7 years agoRemoving the copy of project.lock.json to bin folder
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

7 years agoMerge pull request dotnet/coreclr#7972 from adiaaida/storeShiftRotate32
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

7 years agoMerge pull request dotnet/coreclr#7965 from ramarag/GetType
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

7 years agoMerge pull request dotnet/coreclr#7945 from ramarag/MemoryFailPoint
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

7 years agoRevert "Enable optimization of structs"
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

7 years agoFix int->long cast folding for 32-bit platforms.
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

7 years agoEnabling Type.GetType with overloads for assembly and type resolvers
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

7 years agoThe SecureStringMarshal type was an artifact of the layering we had in CoreFx.
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

7 years agoForce store of lcl var for shift/rotate by 32
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

7 years agoMerge pull request dotnet/coreclr#7908 from sandreenko/fix_tail_call_in_R2R
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

7 years agoFix a issue where ETW was losing RCW and CCW in heap dumps. (dotnet/coreclr#7971)
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

7 years agoMerge pull request dotnet/coreclr#7958 from pgavlin/VSO280123
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

7 years agoMake CrossGen documentation up to date (dotnet/coreclr#7973)
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

7 years agoCorrect pattern check
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

7 years agoMerge pull request dotnet/coreclr#7956 from pgavlin/VSO280110
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

7 years agoFormat code.
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

7 years agoMerge pull request dotnet/coreclr#7959 from pgavlin/VSO280116
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

7 years agoFormat code.
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

7 years agoMerge pull request dotnet/coreclr#7968 from AndyAyersMS/CaptureNewObservations
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

7 years agoMark NonRandomizedStringEqualityComparer as serializable (dotnet/coreclr#7966)
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

7 years agoInliner: capture new observations
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

7 years agoRevises 'JitTimer::PrintCsvHeader' to use 'append' mode (dotnet/coreclr#7073)
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