platform/upstream/coreclr.git
6 years ago[RyuJit/ARM] Fix lsra BuildShiftRotate (#17103)
Sergey Andreenko [Sat, 24 Mar 2018 08:44:37 +0000 (01:44 -0700)]
[RyuJit/ARM] Fix lsra BuildShiftRotate (#17103)

* add repro

* delete BuildShiftRotate for arm

* fix GT_LSH_HI and GT_RSH_LO

* return the special handling for GT_LSH_HI and GT_RSH_LO

* fix the header

6 years agoUpdate CoreFx to preview3-26323-09 (#17183)
dotnet-maestro-bot [Sat, 24 Mar 2018 05:43:56 +0000 (00:43 -0500)]
Update CoreFx to preview3-26323-09 (#17183)

6 years agoGenerate native image for System.Private.CoreLib.dll during Linux/arm build.sh (...
Egor Chesakov [Sat, 24 Mar 2018 03:17:59 +0000 (20:17 -0700)]
Generate native image for System.Private.CoreLib.dll during Linux/arm build.sh (#17157)

* Add generating native image for System.Private.CoreLib.dll during Linux/arm cross build when __CrossArch/__BuildArch is x86/arm

6 years agoMerge pull request #17155 from fiigii/removezero
Carol Eidt [Sat, 24 Mar 2018 01:26:10 +0000 (18:26 -0700)]
Merge pull request #17155 from fiigii/removezero

Remove non-deterministic AVX APIs

6 years ago [arm32] Disable JIT\jit64\opt\cse\hugeexpr1 stress testing. (#17137)
Sergey Andreenko [Sat, 24 Mar 2018 00:54:10 +0000 (17:54 -0700)]
 [arm32] Disable JIT\jit64\opt\cse\hugeexpr1 stress testing. (#17137)

It fails R2R stress testing, issue 16587

6 years agoMerge pull request #17072 from CarolEidt/Fix545505
Carol Eidt [Sat, 24 Mar 2018 00:14:46 +0000 (17:14 -0700)]
Merge pull request #17072 from CarolEidt/Fix545505

ARM: call compRsvdRegCheck later

6 years agoUpdate DockerTag to use the image from dotnet-buildtools-prereqs-docker#38 which...
Egor Chesakov [Fri, 23 Mar 2018 19:36:13 +0000 (12:36 -0700)]
Update DockerTag to use the image from dotnet-buildtools-prereqs-docker#38 which enables running x86_arm/crossgen

6 years agoMerge pull request #17133 from sdmaclea/PR-FIX-17095
Bruce Forstall [Fri, 23 Mar 2018 21:57:52 +0000 (14:57 -0700)]
Merge pull request #17133 from sdmaclea/PR-FIX-17095

[Arm64] Fix #17095

6 years agoMerge pull request #17136 from weshaggard/OptDataSouceBuildFixes
Wes Haggard [Fri, 23 Mar 2018 20:28:18 +0000 (13:28 -0700)]
Merge pull request #17136 from weshaggard/OptDataSouceBuildFixes

Fix source-build issues in optdata

6 years agoRemove non-deterministic AVX APIs
Fei Peng [Fri, 23 Mar 2018 18:21:50 +0000 (11:21 -0700)]
Remove non-deterministic AVX APIs

6 years agoMerge pull request #17083 from BruceForstall/RemoveArmDeadCode
Bruce Forstall [Fri, 23 Mar 2018 17:47:12 +0000 (10:47 -0700)]
Merge pull request #17083 from BruceForstall/RemoveArmDeadCode

Remove arm32/arm64 dead code

6 years agoUpdate CoreClr, CoreFx to preview3-26323-05, preview3-26323-06, respectively (#17146)
dotnet-maestro-bot [Fri, 23 Mar 2018 17:28:01 +0000 (12:28 -0500)]
Update CoreClr, CoreFx to preview3-26323-05, preview3-26323-06, respectively (#17146)

6 years agoFix Path.GetTempFileName on Windows (#17148)
Stephen Toub [Fri, 23 Mar 2018 16:41:21 +0000 (12:41 -0400)]
Fix Path.GetTempFileName on Windows (#17148)

GetTempFileNameW doesn't return the required length of the buffer; it returns the unique number used in the temporary file name.  But the calling code is using that result as a length, resulting in sometimes truncated paths, and sometimes paths that aren't at all related to the original due to state left over in a pooled buffer.

6 years agoFixes StringBuilder unbounded size growth in Clear() when we use a mix of Append...
Maryam Ariyan [Fri, 23 Mar 2018 16:29:55 +0000 (09:29 -0700)]
Fixes StringBuilder unbounded size growth in Clear() when we use a mix of Append and Insert (#16926)

* Fixing Clear infinitely growing when we combine usage of Insert and Append. Fixes #27625

* Move debug code to StringBuilder.Debug.cs and Applied code review feedback

* Adding missing debug condition check

* Adding comments and moving Condition on projitems after filename

* Moving the infinite capacity growth fix to Length setter

* Removing originalCapacity and Debug.Assert

* Applying PR feedbacks

* Minor cleanup

* simplifying to single loop

* keeping just one method for ShowChunks function

6 years agoMerge pull request #17135 from CarolEidt/DevDiv544985
Carol Eidt [Fri, 23 Mar 2018 16:22:13 +0000 (09:22 -0700)]
Merge pull request #17135 from CarolEidt/DevDiv544985

ARM: correctly unassign constant double

6 years agoFix RestoreSources for optdata packages
Wes Haggard [Wed, 21 Mar 2018 23:40:34 +0000 (16:40 -0700)]
Fix RestoreSources for optdata packages

Pass unprocessed args to restore optdata step so it
can override the sources when doing restore

Handle prority as an unprocessed arg for the sync alias

6 years agoRename new Stream.Read/Write{Async} Span/Memory source/Destination arguments to buffe...
Anirudh Agnihotry [Fri, 23 Mar 2018 12:43:47 +0000 (05:43 -0700)]
Rename new Stream.Read/Write{Async} Span/Memory source/Destination arguments to buffer (#17141)

* changed to buffer

* More Common changes

* fixed

* another fix

6 years agoFix Linux/x86 FuncEvalHijack stack alignment (#17143)
Igor Kulaychuk [Fri, 23 Mar 2018 11:12:54 +0000 (14:12 +0300)]
Fix Linux/x86 FuncEvalHijack stack alignment (#17143)

6 years agoUpdate BuildTools, CoreClr, CoreFx to preview3-02622-03, preview3-26322-08, preview3...
dotnet-maestro-bot [Fri, 23 Mar 2018 06:14:05 +0000 (01:14 -0500)]
Update BuildTools, CoreClr, CoreFx to preview3-02622-03, preview3-26322-08, preview3-26323-01, respectively (#17123)

6 years agoMerge pull request #17131 from BredPet/fix_relocation
Egor Chesakov [Fri, 23 Mar 2018 03:23:56 +0000 (20:23 -0700)]
Merge pull request #17131 from BredPet/fix_relocation

Fix for #17089

6 years ago[Arm64] Fix #17095
Steve MacLean [Thu, 22 Mar 2018 20:41:33 +0000 (16:41 -0400)]
[Arm64] Fix #17095

6 years agoARM: correctly unassign constant double
Carol Eidt [Thu, 22 Mar 2018 22:05:46 +0000 (15:05 -0700)]
ARM: correctly unassign constant double

When a `RefTypeFixedReg` is encountered for a floating point register, if it is currently holding a double constant, we need to free both halves - but the current register be either half.

6 years agoFix bug for #17089
Petr Bred [Thu, 22 Mar 2018 19:20:13 +0000 (22:20 +0300)]
Fix bug for #17089

Signed-off-by: Petr Bred <bredpetr@gmail.com>
6 years agoMerge pull request #17132 from dotnet-bot/from-tfs
Brian Sullivan [Thu, 22 Mar 2018 19:51:41 +0000 (12:51 -0700)]
Merge pull request #17132 from dotnet-bot/from-tfs

Merge changes from TFS

6 years agoMerge pull request #16849 from MattGal/use-dotnetcore-build
Matt Galbraith [Thu, 22 Mar 2018 19:45:52 +0000 (12:45 -0700)]
Merge pull request #16849 from MattGal/use-dotnetcore-build

Move windows agents to DotNetCore-Build

6 years agoMerge pull request #17112 from briansull/rollback-14481
Brian Sullivan [Thu, 22 Mar 2018 19:04:43 +0000 (12:04 -0700)]
Merge pull request #17112 from briansull/rollback-14481

Rollback Stack probing change - PR #14481

6 years agofix order of Serialize for linux build (#17119)
David Mason [Thu, 22 Mar 2018 18:44:37 +0000 (11:44 -0700)]
fix order of Serialize for linux build (#17119)

Fix for #17116. The build would work fine for dynamic events on Windows, but on Linux clang always takes the overloads with <Head, Tail...> until there are no arguments, then complains about no overload takes 0 arguments.

6 years agoMove windows agents to DotNetCore-Build to see if we can build in VS2017-only environment
Matt Galbraith [Sat, 10 Feb 2018 01:57:35 +0000 (17:57 -0800)]
Move windows agents to DotNetCore-Build to see if we can build in VS2017-only environment

6 years agoAdd emitIns_AR_R_I for vextracti/f128
Fei Peng [Wed, 21 Mar 2018 21:51:28 +0000 (14:51 -0700)]
Add emitIns_AR_R_I for vextracti/f128

6 years agofix Set tests on 32-bit platforms
Fei Peng [Tue, 20 Mar 2018 18:40:39 +0000 (11:40 -0700)]
fix Set tests on 32-bit platforms

6 years agoImplement SetAllVector256
Fei Peng [Mon, 19 Mar 2018 22:24:22 +0000 (15:24 -0700)]
Implement SetAllVector256

6 years agoImplement AVX SetVector256
Fei Peng [Mon, 19 Mar 2018 07:17:31 +0000 (00:17 -0700)]
Implement AVX SetVector256

6 years agoOptimize AVX Insert/Extract intrinsics
Fei Peng [Mon, 19 Mar 2018 07:16:34 +0000 (00:16 -0700)]
Optimize AVX Insert/Extract intrinsics

6 years agoAdd more tests for AVX Insert/Extract intrinsics
Fei Peng [Mon, 19 Mar 2018 07:15:02 +0000 (00:15 -0700)]
Add more tests for AVX Insert/Extract intrinsics

6 years ago[ARM64] Fix UMEntryThunkCode::Poison method (#17122)
Konstantin Baladurin [Thu, 22 Mar 2018 14:02:43 +0000 (17:02 +0300)]
[ARM64] Fix UMEntryThunkCode::Poison method (#17122)

Fix hex value of the instruction ldp x16, x0, [x12]

6 years agoUpdate BuildTools, CoreClr to preview3-02622-01, preview3-26322-01, respectively...
dotnet-maestro-bot [Thu, 22 Mar 2018 05:13:42 +0000 (00:13 -0500)]
Update BuildTools, CoreClr to preview3-02622-01, preview3-26322-01, respectively (#17105)

6 years agoFix incorrect array dereference. (#17113)
Brian Robbins [Thu, 22 Mar 2018 04:34:24 +0000 (21:34 -0700)]
Fix incorrect array dereference. (#17113)

6 years agoUpdate CODE_OWNERS.TXT (#17114)
Noah Falk [Thu, 22 Mar 2018 02:12:28 +0000 (19:12 -0700)]
Update CODE_OWNERS.TXT (#17114)

Updating owner on the profiler

6 years agoRename {Try}Read/WriteMachineEndian to just {Try}Read/Write (#17106)
Ahson Khan [Thu, 22 Mar 2018 01:03:02 +0000 (18:03 -0700)]
Rename {Try}Read/WriteMachineEndian to just {Try}Read/Write (#17106)

6 years agoRollback Stack probing change - PR #14481
Brian Sullivan [Thu, 22 Mar 2018 00:46:10 +0000 (17:46 -0700)]
Rollback Stack probing change - PR #14481

6 years agoFix release build
Carol Eidt [Thu, 22 Mar 2018 00:17:44 +0000 (17:17 -0700)]
Fix release build

6 years agoRemove dependency on libunwind (#17094)
Jan Vorlicek [Thu, 22 Mar 2018 00:11:59 +0000 (01:11 +0100)]
Remove dependency on libunwind (#17094)

* Add original source of libunwind 1.3-stable

Taken from:
https://github.com/libunwind/libunwind/tree/v1.3-stable

* Enable building of libunwind

This change enables building libunwind and removes
dependency on the libunwind package for all Unixes
except OSX. In OSX the libunwind is part of the OS
and also has support for compact unwind info that
is OSX specific, so we keep using that one.

* Disable warnings in code we don't execute

6 years agoDisable legacy_backend jits
dotnet-bot [Wed, 21 Mar 2018 22:49:46 +0000 (15:49 -0700)]
Disable legacy_backend jits

[tfs-changeset: 1692827]

6 years agoUpdate debugging doc on lldb versions and disabling managed debugging (#17107)
Mike McLaughlin [Wed, 21 Mar 2018 22:43:15 +0000 (15:43 -0700)]
Update debugging doc on lldb versions and disabling managed debugging (#17107)

6 years agoRemove REG_OPT_RSVD from LSRA's candidate masks if it's reserved.
Carol Eidt [Wed, 21 Mar 2018 22:13:17 +0000 (15:13 -0700)]
Remove REG_OPT_RSVD from LSRA's candidate masks if it's reserved.

6 years agoImprove DateTime{Offset} "r" and "o" formatting performance (#17092)
Stephen Toub [Wed, 21 Mar 2018 21:35:56 +0000 (17:35 -0400)]
Improve DateTime{Offset} "r" and "o" formatting performance (#17092)

Two main changes:
1. Rewrote the formatting to use span, only to then discover that we already had almost exactly the same implementation in Utf8Formatter.  As that one had some extra optimizations around JIT behaviors, I ported that over instead.
2. Avoided [ThreadStatic] lookups unless necessary.

ToString/TryFormat for "o"/"O" improve by ~2.5x.

ToString/TryFormat for "r"/"R" improve by ~3x.

6 years agoAdd More Process Information to EventPipe Traces (#17080)
Brian Robbins [Wed, 21 Mar 2018 20:31:04 +0000 (13:31 -0700)]
Add More Process Information to EventPipe Traces (#17080)

6 years agoFix strings from being concatenated (#17040)
Frank Gambino [Wed, 21 Mar 2018 20:08:00 +0000 (16:08 -0400)]
Fix strings from being concatenated (#17040)

6 years agonull terminate the converted LPStr at the right index (#17079)
Jeff Schwartz [Wed, 21 Mar 2018 20:07:00 +0000 (13:07 -0700)]
null terminate the converted LPStr at the right index (#17079)

6 years agoAdd missing license header to test py and cs files (#17102)
Mike McLaughlin [Wed, 21 Mar 2018 19:42:49 +0000 (12:42 -0700)]
Add missing license header to test py and cs files (#17102)

Issue #13471

6 years agoMoving Span APIs that allow skipping visibility checks to MemoryMarshal (#17087)
Ahson Khan [Wed, 21 Mar 2018 19:34:48 +0000 (12:34 -0700)]
Moving Span APIs that allow skipping visibility checks to MemoryMarshal (#17087)

6 years agoSmall tweaks to Dict asm size (#17096)
Ben Adams [Wed, 21 Mar 2018 19:33:56 +0000 (19:33 +0000)]
Small tweaks to Dict asm size (#17096)

6 years agoFixed #16564: the test objmonhelper hangs forever with GCStress=0x3
Sergey Ignatov [Wed, 21 Mar 2018 11:40:42 +0000 (14:40 +0300)]
Fixed #16564: the test objmonhelper hangs forever with GCStress=0x3

6 years agoChange directory in AgentTools script
JC Aguilera [Wed, 21 Mar 2018 16:14:17 +0000 (09:14 -0700)]
Change directory in AgentTools script

6 years agoUpdate BuildTools, CoreClr, CoreFx to preview3-02620-10, preview3-26321-06, preview3...
dotnet-maestro-bot [Wed, 21 Mar 2018 14:33:18 +0000 (09:33 -0500)]
Update BuildTools, CoreClr, CoreFx to preview3-02620-10, preview3-26321-06, preview3-26319-04, respectively (#17012)

6 years agoAvoid allocating when SuppressFlow'ing in default ExecutionContext (#17081)
Stephen Toub [Wed, 21 Mar 2018 08:27:15 +0000 (04:27 -0400)]
Avoid allocating when SuppressFlow'ing in default ExecutionContext (#17081)

* Avoid allocating when SuppressFlow'ing in default ExecutionContext

* Address PR feedback

6 years agoAPI consistency for System.Memory APIs (argument names) (#28160)
Ahson Khan [Wed, 21 Mar 2018 05:27:20 +0000 (22:27 -0700)]
API consistency for System.Memory APIs (argument names) (#28160)

* AsBytes and Cast: Change arg name source -> span

* CopyTo: Change arg name array/sequence -> source

* Several APIs: Change arg name arraySegment -> segment

* Several APIs: Change arg name readOnlyMemory -> memory

* BinaryPrimitives and Utf8Formatter: Change arg name buffer -> source or destination

* Base64: Change arg name consumed/written -> bytesConsumed/bytesWritten

* Utf8Parser: Change arg name text -> source

* TryGetOwnedMemory: Change arg name ownedMemory -> owner, index -> start

* BuffersExtensions.Write: Change arg name bufferWriter -> writer

* Span Compare APIs: Change arg name first -> span, second/value -> other

* ROSequence.TryGet & BuffersExtensions: Change arg name data -> memory, sequence -> source

* Fix mistake in BinaryPrimitives Writer APIs, source -> destination.

* BufferExtensions.Write: Change arg name source -> span

* SequencePosition.Equals: Change arg name position -> other

* BufferExtensions ToArray: Change arg name source -> sequence

* Rename leftover arraySegment to segment in MemoryMarshal.TryGetArray

* BufferExtensions.Write: Change arg name span -> value

* Contains, StartsWith, EndsWith: Change arg name other -> value

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoRemove arm32/arm64 dead code
Bruce Forstall [Wed, 21 Mar 2018 03:15:31 +0000 (20:15 -0700)]
Remove arm32/arm64 dead code

Code in `IsContainableImmed()` appears to try to mark as contained
a floating-point 0.0 in comparison instructions. It doesn't work,
as comparison nodes have TYP_INT, and the zero comparison check
doesn't work for 0.0.

Remove the code, and add a tracking issue to implement it correctly.

6 years agoUpdated steps in 'Viewing JIT Dumps' to see optimized code (#17077)
Günther Foidl [Wed, 21 Mar 2018 00:56:41 +0000 (01:56 +0100)]
Updated steps in 'Viewing JIT Dumps' to see optimized code (#17077)

If one follows the current described steps, one won't see the JIT dump for optimized code in the core lib.
This PR adds the necessary step to see optimized code.

Cf. https://github.com/dotnet/coreclr/issues/17065#issuecomment-374772011

6 years agoMerge pull request #16955 from fiigii/moreavx
Carol Eidt [Wed, 21 Mar 2018 00:01:14 +0000 (17:01 -0700)]
Merge pull request #16955 from fiigii/moreavx

Implement more AVX/AVX2 intrinsics

6 years agoFix type for lvaCachedGenericContextArgOffs (#14260)
Kyungwoo Lee [Tue, 20 Mar 2018 22:46:15 +0000 (15:46 -0700)]
Fix type for lvaCachedGenericContextArgOffs (#14260)

lvaCachedGenericContextArgOffs should be signed since it's initially
assigned with a negative virtual offset. Finally depending on
frame pointer use with different arch, it could become positive or negative.
Luckily enough, so far such issue was by-passed since amd64 encoder didn't
care such signness when encoding move offset even though the value is
negative. For arm64, it is typically positive since FP is saved on the
bottom of stack.

6 years agoARM: call compRsvdRegCheck later
Carol Eidt [Tue, 20 Mar 2018 19:19:18 +0000 (12:19 -0700)]
ARM: call compRsvdRegCheck later

For RyuJIT backend, the number of locals can change due to decomposition and lowering.
So, determine whether to reserve a register for accessing large state displacements just prior to register allocation.
This requires ensuring that the stack offset for promoted longs is fixed up, as for promoted reg structs on ARM64.
This is all a bit more difficult on LEGACY_BACKEND because the register allocator can change its mind about whether or not it's going to have a frame, so that is left as before.

6 years agoPort System.Memory performance improvements to Convert.TryFromBase64Chars (#17033)
Atsushi Kanamori [Tue, 20 Mar 2018 21:14:41 +0000 (14:14 -0700)]
Port System.Memory performance improvements to Convert.TryFromBase64Chars (#17033)

* Copy over Base64.DecodeFromUtf8 verbatim

* Don't need the InPlace api

* Change input from Utf8 to Utf16

* isFinalBlock will always be true, so constant fold it through

* I only need a true/false result, so get rid of OperationStatus

* Rename variables to reflect Utf8->Utf16 change

* Update comments and some minor cleanup

* Make Convert use Base64 as a fast-path

* Incorporate PR feedback.

* Delete FromBase64_Decode

* Use a single safe stackalloc

* Rename Base64.cs to Convert.Base64.cs

and make its contents a part of the Convert class.

We should eventually move all the Base64-related
stuff into this new file but not as part of this PR.
We want to be able to diff the implementation change
separately from the code movement.

* Thanks VS for the unasked for indent

6 years agoFix header inclusion order; avoids use of RCWCache before definition (#17067)
Andrew Marino [Tue, 20 Mar 2018 20:31:17 +0000 (13:31 -0700)]
Fix header inclusion order; avoids use of RCWCache before definition (#17067)

6 years agoFix build break
Jan Kotas [Fri, 16 Mar 2018 18:34:56 +0000 (11:34 -0700)]
Fix build break

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoMerge pull request #17056 from BruceForstall/Arm64LclFldContainedZero
Bruce Forstall [Tue, 20 Mar 2018 16:00:19 +0000 (09:00 -0700)]
Merge pull request #17056 from BruceForstall/Arm64LclFldContainedZero

Allow arm64 to contain zero in GT_STORE_LCL_FLD

6 years agoJIT: remove boxing for interface call to shared generic struct (#17006)
Andy Ayers [Tue, 20 Mar 2018 15:36:14 +0000 (08:36 -0700)]
JIT: remove boxing for interface call to shared generic struct (#17006)

Improve the jit's ability to optimize a box-interface call sequence
to handle cases where the unboxed entry point requires a method table
argument.

Added two test cases, one from the inspiring issue, and another where
the jit is then able to inline the method.

Closes #16982.

6 years agoFix major System.Memory performance regression on .NET Framework x86 (#28179)
Jan Kotas [Mon, 19 Mar 2018 21:10:18 +0000 (14:10 -0700)]
Fix major System.Memory performance regression on .NET Framework x86 (#28179)

* Use Unsafe.AddByteOffset instead of Unsafe.Add where possible

* Use pointer for NUint backing field

* Delete unnecessary unchecked scopes, fixed comments

* Avoid unnecessary overflow checks when converting from IntPtr

* Switch SequenceEqual to IntPtr pointer arithmetic

This is fixing 10x regression introduced by use of NUint

* Delete NUint operators that are no longer necessary

* Fix CoreCLR build break

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoMove CompareInfo.* to shared CoreLib partition (#17062)
Jan Kotas [Tue, 20 Mar 2018 10:53:06 +0000 (03:53 -0700)]
Move CompareInfo.* to shared CoreLib partition (#17062)

6 years agoMove EncodingTable and CodePageDataItem to System.Text namespace (#17061)
Jan Kotas [Tue, 20 Mar 2018 10:34:35 +0000 (03:34 -0700)]
Move EncodingTable and CodePageDataItem to System.Text namespace (#17061)

This is the more logical namespace for it and it matches the namespace that these live under in CoreRT.

6 years agoImplement more AVX/AVX2 intrinsics
Fei [Tue, 20 Mar 2018 10:07:59 +0000 (02:07 -0800)]
Implement more AVX/AVX2 intrinsics

6 years agoAdd tests for AVX/AVX2 intrinsics
Fei [Tue, 20 Mar 2018 10:06:21 +0000 (02:06 -0800)]
Add tests for AVX/AVX2 intrinsics

6 years agoFix copy&paste bug (#17059)
Jan Kotas [Tue, 20 Mar 2018 04:16:23 +0000 (21:16 -0700)]
Fix copy&paste bug (#17059)

6 years agoFix unloading of images mapped by PAL (#17053)
Sven Boemer [Tue, 20 Mar 2018 03:24:01 +0000 (20:24 -0700)]
Fix unloading of images mapped by PAL (#17053)

* Fix unloading of images mapped by PAL

The m_FileView member of MappedImageLayout is a CLRMapViewHolder,
which runs CLRUnmapViewOfFile on release. This is fine on Windows,
where the MappedImageLayout constructor calls
CLRMapViewOfFile. However, with FEATURE_PAL, the constructor calls
PAL_LOADLoadPEFile, which simulates LoadLibrary and records multiple
mapping entries. Each entry increases the refcount of the underlying
file handle PAL object. PAL_LOADUnloadPEFile should be called in this
case (instead of CLRUnmapViewOfFile), to decrease the refcount for
each mapping entry.

Fixes https://github.com/dotnet/coreclr/issues/15189.

* Fix build failure

6 years agoUse flat layout for GetAssemblyName (#17052)
Sven Boemer [Tue, 20 Mar 2018 03:23:39 +0000 (20:23 -0700)]
Use flat layout for GetAssemblyName (#17052)

* Use flat layout for GetAssemblyName

This change will result in the use flat layouts for the temporary
layouts created by GetAssemblyName. This allows crossgen'd PE images
created for a different OS to be loaded in the code path that
retrieves the assembly name.

* Respond to PR feedback

Add comment, and remove dead code.

6 years agoAllow arm64 to contain zero in GT_STORE_LCL_FLD
Bruce Forstall [Tue, 20 Mar 2018 01:30:51 +0000 (18:30 -0700)]
Allow arm64 to contain zero in GT_STORE_LCL_FLD

The codegen to handle this in codegenarm64.cpp, CodeGen::genCodeForStoreLclFld()
already exists.

6 years agoAdd new ICLRDebuggingLibraryProvider2 interface for OpenVirtualProces that works...
Mike McLaughlin [Tue, 20 Mar 2018 01:26:59 +0000 (18:26 -0700)]
Add new ICLRDebuggingLibraryProvider2 interface for OpenVirtualProces that works on Linux (#16978)

Add new ICLRDebuggingLibraryProvider2 interface for OpenVirtualProcess that works on Linux.

The old ICLRDebuggingLibraryProvider::ProviderLibrary returns module handles that can't
be properly supported on Linux.

ICLRDebuggerLibraryProvider2 returns the module path string instead of a handle. Works on
both Windows and Linux. If ICLRDebuggerLibraryProvider2 is QI'ed, OpenVirtualProcess will
NOT fall back to ICLRDebuggerLibraryProvider if ProviderLibrary2 fails.

HRESULT ProvideLibrary2(
    [in] const WCHAR* pwszFileName,
    [in] DWORD dwTimestamp,
    [in] DWORD dwSizeOfImage,
    [out] LPWSTR* ppResolvedModulePath);

ppResolvedModulePath - Where *ppResolvedModulePath is a null terminated path to the module dll. On Windows it should be allocated
with CoTaskMemAlloc. On Unix it should be allocated with malloc. Failure leave it untouched.

6 years agoMerge pull request #17049 from briansull/fix-fgInstrumentMethod
Brian Sullivan [Tue, 20 Mar 2018 00:54:45 +0000 (17:54 -0700)]
Merge pull request #17049 from briansull/fix-fgInstrumentMethod

Fix for fgInstrumentMethod

6 years agoJIT: tolerate nonzero constant byrefs in impCheckForNullPointer (#17042)
Andy Ayers [Tue, 20 Mar 2018 00:28:51 +0000 (17:28 -0700)]
JIT: tolerate nonzero constant byrefs in impCheckForNullPointer (#17042)

With the advent of #16966 we may now see constant nonzero byrefs from
things like RVA statics. Tolerate these in `impCheckForNullPointer`.

Note previously we'd type these as ints/longs and so bail out of
`impCheckForNullPointer` after the first check.

Closes #17008.

6 years agodelete unused debug arg from genChangeLife and compChangeLife. (#17041)
Sergey Andreenko [Mon, 19 Mar 2018 22:08:09 +0000 (15:08 -0700)]
delete unused debug arg from genChangeLife and compChangeLife. (#17041)

* delete unused debug arg from genChangeLife(VARSET_VALARG_TP

* remove unused debug arg from compChangeLife

6 years agoFix jit-format
Brian Sullivan [Mon, 19 Mar 2018 22:04:54 +0000 (15:04 -0700)]
Fix jit-format

6 years agoRemove obselete buildtests (#17050)
Matt Mitchell [Mon, 19 Mar 2018 21:44:59 +0000 (14:44 -0700)]
Remove obselete buildtests (#17050)

BuildTests definition now lives under buildpipeline\tests\

6 years agoFix for fgInstrumentMethod
Brian Sullivan [Mon, 19 Mar 2018 21:19:10 +0000 (14:19 -0700)]
Fix for fgInstrumentMethod

There was a bug creating profiling images using /Tuning
We computed the wrong value for addrOfBlockCount at the end of this method
This would result in method having proper block counts,
but still not getting marked as being executed.

This regressed in PR #14640

6 years agoFix ProjectN build break and work around MCG bug (dotnet/corert#5576)
Michal Strehovský [Mon, 19 Mar 2018 18:08:34 +0000 (19:08 +0100)]
Fix ProjectN build break and work around MCG bug (dotnet/corert#5576)

Unblocks integration to TFS.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoSwitch over to managed Marvin implementation for string hashing (#17029)
Jan Kotas [Mon, 19 Mar 2018 19:51:33 +0000 (12:51 -0700)]
Switch over to managed Marvin implementation for string hashing (#17029)

6 years agoAdding running tests on Alpine for coreclr build (#17038)
Jose Perez Rodriguez [Mon, 19 Mar 2018 18:41:58 +0000 (11:41 -0700)]
Adding running tests on Alpine for coreclr build (#17038)

6 years agoPublish x86_arm/crossgen during Linux/arm build (#16953)
Egor Chesakov [Mon, 19 Mar 2018 18:33:59 +0000 (11:33 -0700)]
Publish x86_arm/crossgen during Linux/arm build (#16953)

* Publish CrossCrossGen during Linux/arm build
* Update DockerTag to the image that includes two rootfs-s

6 years agoFixing the x86 ScalarUnOpTest template to no longer write out of bounds
Tanner Gooding [Sun, 18 Mar 2018 17:06:34 +0000 (10:06 -0700)]
Fixing the x86 ScalarUnOpTest template to no longer write out of bounds

6 years agoUpdating the x86 extract instructions to be properly listed as MR
Tanner Gooding [Sun, 18 Mar 2018 05:46:10 +0000 (22:46 -0700)]
Updating the x86 extract instructions to be properly listed as MR

6 years agoRegenerating the x86 HWIntrinsic tests to track each vector size separately
Tanner Gooding [Fri, 16 Mar 2018 22:31:33 +0000 (15:31 -0700)]
Regenerating the x86 HWIntrinsic tests to track each vector size separately

6 years agoUpdating the x86 HWIntrinsic templates to track each vector size separately
Tanner Gooding [Fri, 16 Mar 2018 22:30:22 +0000 (15:30 -0700)]
Updating the x86 HWIntrinsic templates to track each vector size separately

6 years agoUpdating the x86 HWIntrinsic DataTable types to assert the alignment returned is...
Tanner Gooding [Fri, 16 Mar 2018 18:33:37 +0000 (11:33 -0700)]
Updating the x86 HWIntrinsic DataTable types to assert the alignment returned is correct

6 years agoRegenerating the x86 HWIntrinsics tests to no longer have a GC hole
Tanner Gooding [Thu, 15 Mar 2018 10:57:53 +0000 (03:57 -0700)]
Regenerating the x86 HWIntrinsics tests to no longer have a GC hole

6 years agoFixing the x86 HWIntrinsic test templates to not leave a GC hole
Tanner Gooding [Thu, 15 Mar 2018 10:50:44 +0000 (03:50 -0700)]
Fixing the x86 HWIntrinsic test templates to not leave a GC hole

6 years agoMerge pull request #17034 from vancem/FixPath
Vance Morrison [Mon, 19 Mar 2018 17:19:07 +0000 (10:19 -0700)]
Merge pull request #17034 from vancem/FixPath

Use better path (fixes #17004)

6 years agoFix eventpipe rundown test with crossgen (#16784)
Victor "Nate" Graf [Mon, 19 Mar 2018 16:38:36 +0000 (09:38 -0700)]
Fix eventpipe rundown test with crossgen (#16784)

6 years agoMerge pull request #16968 from echesakovMSFT/LimitFeatureUnixAMD64StructPassingWhenTa...
Egor Chesakov [Mon, 19 Mar 2018 15:44:24 +0000 (08:44 -0700)]
Merge pull request #16968 from echesakovMSFT/LimitFeatureUnixAMD64StructPassingWhenTargetUnixAMD64

Define FEATURE_UNIX_AMD64_STRUCT_PASSING only when target Unix/AMD64

6 years agoUse better path (fixes #17004)
Vance Morrison [Mon, 19 Mar 2018 15:25:33 +0000 (08:25 -0700)]
Use better path (fixes #17004)

6 years agoDelete unused downlevel globalization support (#17022)
Jan Kotas [Mon, 19 Mar 2018 13:59:33 +0000 (06:59 -0700)]
Delete unused downlevel globalization support (#17022)

Delete ENABLE_DOWNLEVEL_FOR_NLS and everything under it

6 years agoFix BuildConfiguration casing so publishing works
Russ Keldorph [Sat, 17 Mar 2018 22:24:30 +0000 (15:24 -0700)]
Fix BuildConfiguration casing so publishing works