Wes Haggard [Wed, 18 Apr 2018 23:48:49 +0000 (16:48 -0700)]
Merge pull request #17658 from CarolEidt/UnixDefines2
Remove incorrect UNIX_AMD64_ABI define
dotnet-maestro-bot [Wed, 18 Apr 2018 22:36:33 +0000 (17:36 -0500)]
Update BuildTools, CoreClr, CoreFx to preview3-02718-02, preview1-26418-02, preview3-26418-02, respectively (#17638)
Jan Kotas [Wed, 18 Apr 2018 22:35:48 +0000 (15:35 -0700)]
Delete RuntimeMethodHandle.GetSecurityFlag (#17643)
CAS leftover
Carol Eidt [Wed, 18 Apr 2018 21:37:45 +0000 (14:37 -0700)]
Remove incorrect UNIX_AMD64_ABI define
Jan Vorlicek [Wed, 18 Apr 2018 21:15:16 +0000 (14:15 -0700)]
Fix ephemeral limits checks in write barrier for ARM64 (#17641)
The code was incorrectly using signed conditions, which doesn't work for
server GC where the high ephemeral limit is 0xffffffffffffffff and so it
was checking if the address is less than -1, which is never the case. So
the card table was never updated.
Atsushi Kanamori [Wed, 18 Apr 2018 20:56:42 +0000 (13:56 -0700)]
Enable Invoke and GetValue for ref-returning members (#17639)
* Enable Invoke and GetValue for ref-returning members
https://github.com/dotnet/corefx/issues/15960
Returned magic object is the object pointed to by
the ref. If the ref is null, NullReferenceException.
* Fix error message
* Found way to reuse InvokeUtil::CreateObject
* Remove comment, BYREF case.
Bruce Forstall [Wed, 18 Apr 2018 20:50:58 +0000 (13:50 -0700)]
Merge pull request #17624 from BruceForstall/DisableHangingCoreFxTest
[arm32] Disable corefx Microsoft.Win32.SystemEvents.Tests
Bruce Forstall [Wed, 18 Apr 2018 20:16:04 +0000 (13:16 -0700)]
Merge pull request #17652 from sdmaclea/PR-ARM64-ENABLE-CI-CROSSCOMPONENT-BUILD
[Arm64/Linux] Enable crosscomponent build in CI
Bruce Forstall [Wed, 18 Apr 2018 19:50:08 +0000 (12:50 -0700)]
Merge pull request #17648 from dotnet/dev/unix_test_workflow
Disallow Ubuntu arm32 non-PR jobs in non-master branches
Steve MacLean [Wed, 18 Apr 2018 19:34:38 +0000 (15:34 -0400)]
[Arm64/Linux] Enable crosscomponent build in CI
Bruce Forstall [Wed, 18 Apr 2018 18:40:15 +0000 (11:40 -0700)]
Merge pull request #17636 from BruceForstall/NoUnixTextWorkflowNonPRJobs
Disallow Ubuntu arm32 non-PR jobs in non-master branches
Wes Haggard [Wed, 18 Apr 2018 17:19:36 +0000 (10:19 -0700)]
Fix OutputRID for linux-musl official build
Need to include the `-x64` in the output rid.
Carol Eidt [Wed, 18 Apr 2018 16:28:10 +0000 (09:28 -0700)]
Merge pull request #16962 from CarolEidt/UnixDefines
Unix/x64 ABI cleanup
dotnet-maestro-bot [Wed, 18 Apr 2018 11:54:36 +0000 (06:54 -0500)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview3-02717-01, preview1-26418-01, preview3-26418-01, master-
20180418-0040, respectively (#17621)
Sergey Andreenko [Wed, 18 Apr 2018 07:23:59 +0000 (00:23 -0700)]
disable DevDiv_255294 in stress modes. (#17618)
Sergey Andreenko [Wed, 18 Apr 2018 06:25:57 +0000 (23:25 -0700)]
fix build.cmd generateLayout (#17614)
Bruce Forstall [Wed, 18 Apr 2018 05:38:12 +0000 (22:38 -0700)]
Disallow Ubuntu arm32 non-PR jobs in non-master branches
Chris Sienkiewicz [Wed, 18 Apr 2018 03:19:29 +0000 (20:19 -0700)]
Ensure thumb bit is set when searching for debugger jit info on ARM (#17617)
* Ensure thumb bit is set when searching for debugger jit info on ARM
* Make GetCodeStartAddress return correct PCODE, rather than fixing it at the callee site
* Fix type in daccess.h
* Use PINSTRToPCODE rather than manually adding the thumb bit
Bruce Forstall [Wed, 18 Apr 2018 01:55:27 +0000 (18:55 -0700)]
Merge pull request #17633 from BruceForstall/AdjustArmJobScheduling
Adjust non-PR triggers
Koundinya Veluri [Wed, 18 Apr 2018 01:39:25 +0000 (18:39 -0700)]
Clean up FlushInstructionCache for precodes and interlocked target change operations (#17602)
Wes Haggard [Wed, 18 Apr 2018 00:09:55 +0000 (17:09 -0700)]
Merge pull request #17623 from weshaggard/wesh/addlinuxmusl
Add linux-musl build leg
Jan Kotas [Wed, 18 Apr 2018 00:06:32 +0000 (17:06 -0700)]
Handle getTailCallCopyArgsThunk returning NULL in the JIT (#17592)
This saves the JIT from hardcoding the logic on where getTailCallCopyArgsThunk is implemented
Bruce Forstall [Wed, 18 Apr 2018 00:05:02 +0000 (17:05 -0700)]
Adjust non-PR triggers
1. Enable weekly Ubuntu arm32 GCStress jobs.
2. Fix bugs where both flow and non-flow jobs were being triggered for some configurations.
3. Convert Windows ARM push jobs to daily jobs to conserve limited hardware.
4. Convert Windows ARM64 every-four-hour jobs to daily jobs to conserve limited hardware.
5. Convert Windows ARM64 R2R baseline job from daily to weekly to conserve limited hardware.
6. For altjit jobs, only do push jobs for Checked builds; there's no need for more than that.
7. Add Windows and Ubuntu ARM R2R weekly jobs.
8. Add Windows ARM and ARM64, and Ubuntu ARM, weekly R2R JIT stress jobs.
Fixes #17572, #17241.
Carol Eidt [Thu, 15 Mar 2018 15:21:25 +0000 (08:21 -0700)]
Unix/x64 ABI cleanup
Eliminate `FEATURE_UNIX_AMD64_STRUCT_PASSING` and replace it with `UNIX_AMD64_ABI` when used alone. Both are currently defined; it is highly unlikely the latter will work alone; and it significantly clutters up the code, especially the JIT.
Also, fix the altjit support (now `UNIX_AMD64_ABI_ITF`) to *not* call `ClassifyEightBytes` if the struct is too large. Otherwise it asserts.
Bruce Forstall [Tue, 17 Apr 2018 23:04:32 +0000 (16:04 -0700)]
Merge pull request #17620 from BruceForstall/FixCorefxUnzipQuoting
Fix minor issue with missing end quotes on command line
Bruce Forstall [Tue, 17 Apr 2018 22:59:09 +0000 (15:59 -0700)]
Disable Microsoft.Win32.SystemEvents.Tests
Tracking bug: https://github.com/dotnet/corefx/issues/29166
mikedn [Tue, 17 Apr 2018 21:52:37 +0000 (00:52 +0300)]
Improve SSA dominator tree memory usage (#15006)
There is no need to store the dominator tree children in a hashtable, a vector is sufficient. Given the way the tree is constructed duplicates cannot be added.
Bruce Forstall [Tue, 17 Apr 2018 21:34:08 +0000 (14:34 -0700)]
Fix minor issue with missing end quotes on command line
dotnet-maestro-bot [Tue, 17 Apr 2018 20:41:48 +0000 (15:41 -0500)]
Update CoreClr, CoreFx to preview1-26417-05, preview3-26417-03, respectively (#17607)
Wes Haggard [Tue, 17 Apr 2018 20:06:33 +0000 (13:06 -0700)]
Add linux-musl build leg
mikedn [Tue, 17 Apr 2018 17:58:51 +0000 (20:58 +0300)]
Convert native StringBuilder methods to managed (#17472)
Sergey Andreenko [Tue, 17 Apr 2018 16:43:59 +0000 (09:43 -0700)]
Fix GC tests. (#17594)
* Fix dlbigleak
* cleanup dlstack
* Fix doublinknoleak
* Fix doublinkstay
* Fix dlcollect
* Fix doublinkgen
* Fix dlbigleakthd
Szabolcs Dézsi [Tue, 17 Apr 2018 16:08:53 +0000 (12:08 -0400)]
Adding failing string to Boolean and TimeSpan parse failure exceptions (#15661)
* Adding failing string to Boolean and TimeSpan parse failure exceptions
* Avoid boxing char when using TryParse
* Removing unnecessary nameof expression
* Applying review feedback to remove ParseFailureKind from TimeSpanParse
* Added helper methods for TimeSpan parsing
Steve MacLean [Tue, 17 Apr 2018 15:42:13 +0000 (11:42 -0400)]
Fix line endings (#17606)
Carol Eidt [Tue, 17 Apr 2018 14:32:58 +0000 (07:32 -0700)]
Merge pull request #17560 from fiigii/fixcvt
Fix extra register-dependency on mem-form of vcvtsd/s2ss
Avi Avni [Tue, 17 Apr 2018 14:14:34 +0000 (17:14 +0300)]
Enable generic attributes (#9189)
dotnet-maestro-bot [Tue, 17 Apr 2018 13:46:14 +0000 (08:46 -0500)]
Update CoreClr, CoreFx, PgoData to preview3-26417-01, preview3-26417-01, master-
20180417-0048, respectively (#17601)
Russ Keldorph [Tue, 17 Apr 2018 13:45:17 +0000 (06:45 -0700)]
Merge pull request #17575 from debayang/simd_crossgen
[Arm64] Disable SIMD in crossgen (added as part of #14633)
Luqun Lou [Tue, 17 Apr 2018 05:10:29 +0000 (22:10 -0700)]
Enable support DllImport a native assembly whose name contains '.' (#17505)
Petr Bred [Tue, 17 Apr 2018 01:14:21 +0000 (04:14 +0300)]
[X86] Fix cross toolchain library paths (#17513)
- fix internal tests building
Signed-off-by: Petr Bred <bredpetr@gmail.com>
Koundinya Veluri [Tue, 17 Apr 2018 01:13:50 +0000 (18:13 -0700)]
[Arm64] Add memory barrier after interlocked operations (#17595)
Fixes https://github.com/dotnet/coreclr/issues/17591
Russ Keldorph [Tue, 17 Apr 2018 01:12:47 +0000 (18:12 -0700)]
Move master to 2.2-preview1 (#17589)
mikedn [Tue, 17 Apr 2018 01:09:32 +0000 (04:09 +0300)]
Update memory histogram buckets (#15206)
Use values that are more likely to match CPU cache sizes (e.g. L1 = 32K and L2 = 256K)
Ben Adams [Tue, 17 Apr 2018 01:02:38 +0000 (02:02 +0100)]
Dict: Use Ref Local Reassignment (C# 7.3) (#17483)
* Dict: Use Ref Local Reassignment (C# 7.3)
* Use lang version latest rather than 7.3
Bruce Forstall [Tue, 17 Apr 2018 00:45:56 +0000 (17:45 -0700)]
Merge pull request #17402 from sdmaclea/PR-ARM64-COREFX-EXCLUSIONS
[Arm64] Add corefx_test_exclusions.txt
dotnet bot [Mon, 16 Apr 2018 21:47:39 +0000 (14:47 -0700)]
Update xml comment for {ReadOnly}Memory.Pin method (dotnet/corefx#29137) (#17593)
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
Bruce Forstall [Mon, 16 Apr 2018 20:20:35 +0000 (13:20 -0700)]
Merge pull request #17590 from BruceForstall/CleanupUbunuArmBuildMachine
Clean up Ubuntu arm build machines
Phil Garcia [Mon, 16 Apr 2018 20:11:53 +0000 (13:11 -0700)]
Changed SpinLock::CompareExchange method declaration to static (#17579)
dotnet-maestro-bot [Mon, 16 Apr 2018 19:32:52 +0000 (14:32 -0500)]
Update CoreClr, CoreFx, PgoData to preview3-26416-06, preview3-26416-06, master-
20180416-0039, respectively (#17580)
Igor Kulaychuk [Mon, 16 Apr 2018 18:14:38 +0000 (21:14 +0300)]
[x86/Linux] Fix ICorDebug frames API (#17436)
Konstantin Baladurin [Mon, 16 Apr 2018 18:11:41 +0000 (21:11 +0300)]
[x86/Linux] Fix marshalling struct with 64-bit types (#17455)
* [x86/Linux] Fix marshalling struct with 64-bit types
The System V ABI for i386 defines 4-byte alignment for 64-bit types.
* [Linux/x86] Fix marshalling tests in the case of System V i386 ABI
Bruce Forstall [Mon, 16 Apr 2018 18:09:06 +0000 (11:09 -0700)]
Clean up Ubuntu arm build machines
elyoh [Mon, 16 Apr 2018 18:05:11 +0000 (19:05 +0100)]
Update KoreanLunisolarCalendar.cs (#17542)
* Update KoreanLunisolarCalendar.cs
Corrects two issues with the conversion table for Gregorian to Korean lunisolar dates.
Issue 1: tables use Julian month/day instead of Gregorian month/day for entries prior to 1583.
Lmon and Lday have been converted from Julian month and day to Gregorian month and day for years prior to 1583.
This also required a new value for MIN_GREGORIAN_DAY (now 19) so the minimum date now supported by this class is 19 Feb 0918 Gregorian.
Issue 2: data discrepancy in years 1586, 1587, 1648, 1659, 1692, 1753 and 1754.
Table entries for 1586, 1587, 1648, 1659, 1692, 1753 and 1754 have been corrected to match Korea Astronomy and Space Science In-
stitute (KASI) data. Specifically:
•for years 1587, 1648, and 1754, the first day of year has been corrected
•for years 1586, 1587, 1659, 1692, 1753, and 1754, the lengths of each month have been corrected
Notes
A minor formatting change to the table has been made. The DaysPerMonth flag has been converted to use the binary literal to ensure that changes can be made and verified easily.
See: https://github.com/dotnet/coreclr/issues/17510 for full discussion of changes.
* Update KoreanLunisolarCalendar.cs
Added comment on sources of table data.
dotnet-maestro-bot [Mon, 16 Apr 2018 06:43:04 +0000 (01:43 -0500)]
Update CoreClr, CoreFx, PgoData to preview3-26416-01, preview3-26416-01, master-
20180415-0051, respectively (#17540)
Steve MacLean [Sun, 15 Apr 2018 21:36:04 +0000 (17:36 -0400)]
[Arm64] Add full barrier after locking operations (#17567)
Debayan Ghosh [Sun, 15 Apr 2018 04:34:44 +0000 (10:04 +0530)]
[Arm64] Disable SIMD in crossgen (added as part of #14633)
Steve MacLean [Sun, 15 Apr 2018 01:31:22 +0000 (21:31 -0400)]
Update corefx_test_exclusions.txt
Bruce Forstall [Sat, 14 Apr 2018 20:30:21 +0000 (13:30 -0700)]
Merge pull request #17569 from dotnet/dev/unix_test_workflow
Don't use runtesttilstable script for Ubuntu arm jobs
Bruce Forstall [Sat, 14 Apr 2018 18:11:28 +0000 (11:11 -0700)]
Avoid creating illegal byref pointers (#17524)
Byref pointers need to point within their "host" object -- thus
the alternate name "interior pointers". If the JIT creates and
reports a pointer as a "byref", but it points outside the host
object, and a GC occurs that moves the host object, the byref
pointer will not be updated. If a subsequent calculation puts
the byref "back" into the host object, it will actually be pointing
to garbage, since the host object has moved.
This occurred on ARM with array index calculations, in particular
because ARM doesn't have a single-instruction "base + scale*index + offset"
addressing mode. Thus, we were generating, for the jaggedarr_cs_do
test case, `ProcessJagged3DArray()` function:
```
// r0 = array object, r6 = computed index offset. We mark r4 as a byref.
add r4, r0, r6
// r4 - 32 is the offset of the object we care about. Then we load the array element.
// In this case, the loaded element is a gcref, so r4 becomes a gcref.
ldr r4, [r4-32]
```
We get this math because the user code uses `a[i - 10]`, which is
essentially `a + (i - 10) * 4 + 8` for element size 4. This is optimized
to `a + i * 4 - 32`. In the above code, `r6` is `i * 4`. In this case,
after the first instruction, `r4` can point beyond the array.
If a GC happens, `r4` isn't updated, and the second instruction loads garbage.
There are several fixes:
1. Change array morphing in `fgMorphArrayIndex()` to rearrange the array index
IR node creation to only create a byref pointer that is precise; don't create
"intermediate" byref pointers that don't represent the actual array element
address being computed. The tree matching code that annotates the generated tree
with field sequences needs to be updated to match the new form.
2. Change `fgMoveOpsLeft()` to prevent the left-weighted reassociation optimization
`[byref]+ (ref, [int]+ (int, int)) => [byref]+ ([byref]+ (ref, int), int)`. This
optimization creates "incorrect" byrefs that don't necessarily point within
the host object.
3. Add an additional condition to the `Fold "((x+icon1)+icon2) to (x+(icon1+icon2))"`
morph optimization to prevent merging of constant TYP_REF nodes, which now were
being recognized due to different tree shapes. This was probably always a problem,
but the particular tree shape wasn't seen before.
These fixes are all-platform. However, to reduce risk at this point, the are
enabled for ARM only, under the `FEATURE_PREVENT_BAD_BYREFS` `#ifdef`.
Fixes #17517.
There are many, many diffs.
For ARM32 ngen-based desktop asm diffs, it is a 0.30% improvement across all
framework assemblies. A lot of the diffs seem to be because we CSE the entire
array address offset expression, not just the index expression.
Egor Chesakov [Sat, 14 Apr 2018 16:06:04 +0000 (09:06 -0700)]
Don't use tests/runtesttilstable.sh for Ubuntu arm jobs
Egor Chesakov [Tue, 27 Mar 2018 17:47:27 +0000 (10:47 -0700)]
Enable building Linux/arm crossarch components in netci
Egor Chesakov [Sat, 14 Apr 2018 15:59:33 +0000 (08:59 -0700)]
Disable failing Ubuntu/arm tests (#17559)
Disable LeakWheel and SlowTailCallArgs Ubuntu/arm tests
Russ Keldorph [Thu, 12 Apr 2018 23:12:43 +0000 (16:12 -0700)]
Make Windows builds always portable
Apparently there is little or no need for a non-portable Windows build, so
rather than trying to figure out which version of Windows we are building
on, just ignore -PortableBuild=false. We can add a warning or refuse to
accept the switch later if necessary, but for now we need to continue
accepting it to avoid build breaks.
Fixes #14291
Steve MacLean [Sat, 14 Apr 2018 12:52:27 +0000 (08:52 -0400)]
[Arm64/Linux] #17521 for linux (#17546)
Egor Chesakov [Sat, 14 Apr 2018 07:24:58 +0000 (00:24 -0700)]
Fix random Segfaults on Ubuntu arm (#17523)
Fix random Segfaults on Ubuntu arm
Mike McLaughlin [Sat, 14 Apr 2018 00:37:06 +0000 (17:37 -0700)]
Fix OpenVirtualProcess on Linux issue. (#17551)
Eugene Rozenfeld [Fri, 13 Apr 2018 23:29:12 +0000 (16:29 -0700)]
Insert int3 after non-returning calls at the end of basic blocks. (#17535)
This is a follow-up to #17501 that fixed #17398.
gc pointer reporting in fully-interruptible mode: the latter assumed that
register gc pointer liveness doesn't change across calls while #6103 introduced
codegen where it wasn't true.
doesn't change across calls.
This change inserts int3 after non-returning calls at the end of basic blocks
so that gc pointer liveness doesn't change across calls. This is additional
insurance in case any other place in the runtime is dependent on that contract.
Stephen Toub [Fri, 13 Apr 2018 23:07:34 +0000 (19:07 -0400)]
Fix default style argument to Double/Single/Decimal.Parse (#17556)
Fei Peng [Fri, 13 Apr 2018 23:05:58 +0000 (16:05 -0700)]
Fix extra register-dependency on mem-form cvtsd/s2ss
Bruce Forstall [Fri, 13 Apr 2018 21:02:10 +0000 (14:02 -0700)]
Merge pull request #17531 from BruceForstall/SpmiProtectJitStartup
Protect SuperPMI from crashes calling jitStartup
Steve MacLean [Fri, 13 Apr 2018 16:46:52 +0000 (12:46 -0400)]
[Arm64/Linux] Use platform memset/memcpy (#17536)
Fixes buggy memset implementation
Use heavily optimized platform implementation
Follows amd64 & arm precedent
Steve MacLean [Fri, 13 Apr 2018 16:46:19 +0000 (12:46 -0400)]
[Arm64/Windows] Simplify JIT_MemSet & JIT_MemCpy (#17537)
JIT_Memset alignment code was definitly broken for some
unaligned cases
JIT_MemCpy likely had the same issue
Simplify implementation to reduce maintenance burden
Aditya Mandaleeka [Fri, 13 Apr 2018 12:25:39 +0000 (05:25 -0700)]
Preserve VASigCookieReg across PInvokeStubWorker call (#17521)
The call to PInvokeStubWorker can do all kinds of stuff to the
VASigCookieReg in the GenericPInvokeCalli case, since x15 is just a
temporary register. Let's save it in a callee-saved register so that
when we come back after stub generation, we still have the correct value
for the VASigCookie.
Ahson Khan [Fri, 13 Apr 2018 05:40:43 +0000 (22:40 -0700)]
Collapse leftover AsSpan().Slice(...) into AsSpan(...) (#29078)
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
dotnet-maestro-bot [Fri, 13 Apr 2018 07:20:16 +0000 (02:20 -0500)]
Update CoreClr, CoreFx to preview3-26413-01, preview3-26413-02, respectively (#17538)
Ahson Khan [Fri, 13 Apr 2018 04:52:24 +0000 (21:52 -0700)]
Remove CreateFromPinnedArray from Memory (moved to MemoryMarshal) (#17532)
Eugene Rozenfeld [Thu, 12 Apr 2018 23:05:44 +0000 (16:05 -0700)]
Fix for 17398. (#17501)
When enumerating live gc registers, if we are not on the active stack frame,
we need to report callee-save gc registers that are live before the call.
The reason is that the liveness of gc registers may change across a call
to a method that does not return. In this case the instruction after the call
may be a jump target and a register that didn't have a live gc pointer before
the call may have a live gc pointer after the jump. To make sure we report the
registers that have live gc pointers before the call we subtract 1 from curOffs.
Ben Adams [Thu, 12 Apr 2018 21:08:04 +0000 (22:08 +0100)]
Use string.IsNullOrEmpty to eliminate bounds check to first char (#17512)
Bruce Forstall [Thu, 12 Apr 2018 20:55:15 +0000 (13:55 -0700)]
Protect SuperPMI from crashes calling jitStartup
When we call jitStartup, we pass a JitHost interface that the JIT
calls to query for data. These queries look up in the recorded
MCH data, and could fail (and throw an exception) if data is
missing, which it can be for running non-matching altjit against
a collection. Protect these calls with exception handling.
dotnet-maestro-bot [Thu, 12 Apr 2018 20:37:49 +0000 (15:37 -0500)]
Update CoreClr, CoreFx, PgoData to preview3-26412-06, preview3-26412-07, master-
20180412-0051, respectively (#17526)
Sergey Ignatov [Mon, 9 Apr 2018 07:36:16 +0000 (10:36 +0300)]
Fixed #16503 [x64 arm32] the test smalloom terminated with signal SIGKILL
dotnet-maestro-bot [Thu, 12 Apr 2018 07:05:58 +0000 (02:05 -0500)]
Update BuildTools, CoreClr, CoreFx, PgoData to preview3-02711-02, preview3-26412-01, preview3-26412-02, master-
20180411-0039, respectively (#17509)
Michelle McDaniel [Thu, 12 Apr 2018 00:46:30 +0000 (17:46 -0700)]
Reenable Perf Correctness smoketest (#17520)
Brian Sullivan [Thu, 12 Apr 2018 00:38:21 +0000 (17:38 -0700)]
Merge pull request #17464 from briansull/wip-17435
Fix for issue #17435 - Incorrect CSE with SSE Hardware intrinsics
Brian Sullivan [Wed, 11 Apr 2018 23:15:57 +0000 (16:15 -0700)]
Fixed checks for Avx/Avx2.InsertVector128 to check the type of the second arg
Added test case JIT\HardwareIntrinsics\X86\Regression\GitHub_17435
Brian Sullivan [Fri, 6 Apr 2018 22:30:37 +0000 (15:30 -0700)]
Mutate the global heap valuenumber for any HW intrinsic that performs a memory store operation
Use fgMutateGcHeap to record memory write operations by HW Intrinsics
Set flags for the HW Intrinsic nodes that access Memory
Added support for HWIntrinsic nodes to OperMayThrow
Added support for GT_HWIntrinsic to GenTree::OperRequiresAsgFlag() and GenTree::OperIsImplicitIndir()
Refactored GenTreeHWIntrinsic::OperIsMemoryLoad() and GenTreeHWIntrinsic::OperIsMemoryStore()
Added GenTreeHWIntrinsic::OperIsMemoryLoadOrStore()
Deleted the static version of OperIsImplicitIndir(gtOper)
Jeremy Kuhne [Wed, 11 Apr 2018 22:55:38 +0000 (15:55 -0700)]
Some cleanup for ArrayPool trimming (#17518)
* Some cleanup for ArrayPool trimming
- fix static names
- make config switch more specific
- tweak tls free logic for logging
* Tweak the name of the config switch
Ben Adams [Wed, 11 Apr 2018 20:48:52 +0000 (21:48 +0100)]
Remove MemoryManager.Length (#17498)
* Remove MemoryManager.Length
* Feedback
* XML comment nits
Carol Eidt [Wed, 11 Apr 2018 20:41:22 +0000 (13:41 -0700)]
Merge pull request #17431 from CarolEidt/Fix17389
LSRA: remove last uses only at use point
Sergey Andreenko [Wed, 11 Apr 2018 20:16:22 +0000 (13:16 -0700)]
Fix Valuenum:EvalFuncForConstantArgs (#17506)
Jan Kotas [Wed, 11 Apr 2018 14:13:34 +0000 (07:13 -0700)]
Fix CoreRT build breaks
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Matt Mitchell [Wed, 11 Apr 2018 16:57:48 +0000 (09:57 -0700)]
Ensure previous steps haven't failed when building tests (#17514)
Update conditions to ensure that we don't continue on failed test builds
Ahson Khan [Wed, 11 Apr 2018 13:43:10 +0000 (06:43 -0700)]
Add GetPinnableReference back to Span and ReadOnlySpan (#17504)
Ben Adams [Wed, 11 Apr 2018 11:36:27 +0000 (12:36 +0100)]
Fix Assert in ValueTask (#17511)
Petr Bred [Wed, 11 Apr 2018 09:25:03 +0000 (12:25 +0300)]
Fix cmake toolchain compile flags loop (#17380)
- fix https://github.com/dotnet/corert/issues/5093
- cmake toolchain refactoring
Signed-off-by: Petr Bred <bredpetr@gmail.com>
Jeremy Kuhne [Wed, 11 Apr 2018 05:25:49 +0000 (22:25 -0700)]
Simple trim of ArrayPool buffers (#17078)
* Simple trim of ArrayPool buffers
Trim ArrayPool buffers on Gen2 GC if the buffer stack hasn't been emptied for awhile. If you haven't pulled all of the buffers in the past 10 seconds, let loose the top buffer on the stack and give the stack another 2 seconds of potential life. When the stack gets it's bottom bufferr returned the clock resets.
* Collect thread locals as well
* Add event
* Incorporate memory pressure into trimming.
Idea is that we normally give buckets a minute of age time unless the pressure starts to ramp up. As it ramps up we'll trim more off the stacks. If it gets really high we'll consider stale to be 10s instead of 1 min.
* Add implementation back for PinnableBufferCacheEventSource.
* Remove security attribute.
Fix GetMemoryInfo signature
* Always use Tls* for shared pools
Add environment variable switch
* Add guid to PinnableBufferCacheEventSource
* Address feedback
- move setting code to CLRConfig
- add constructor to PBCES
- trim large arrays more aggressively
- tweak names (ticks to ms, etc.)
- interlock creating the cleanup callback
- fix project file
Rent/return perf numbers are unchanged
* Remove static constructor
Inline Unsafe.SizeOf
* Fix spacing issue
* Trim all thread locals when memory pressure is high.
Move constants inline.
* Undo formatting changes
* Add back the internal call
* Put the right bits back *sigh*
* Missing the line feed
* Add event for trim polling
* Undo PinnableBufferCacheEventSource reimplementation
dotnet-maestro-bot [Wed, 11 Apr 2018 03:55:27 +0000 (22:55 -0500)]
Update CoreClr, CoreFx to preview3-26411-01, preview3-26411-01, respectively (#17507)
Noah Falk [Wed, 11 Apr 2018 03:35:33 +0000 (20:35 -0700)]
Fix x86 steady state tiered compilation performance (#17476)
* Fix x86 steady state tiered compilation performance
Also included - a few tiered compilation only test hooks + small logging fix for JitBench
Tiered compilation wasn't correctly implementing the MayHavePrecode and RequiresStableEntryPoint policy functions. On x64 this was a non-issue, but due to compact entrypoints on x86 it lead to methods allocating both FuncPtrStubs and Precodes. The FuncPtrStubs would never get backpatched which caused never ending invocations of the Prestub for some methods. Although such code still runs correctly, it is much slower than it needs to be. On MusicStore x86 I am seeing a 20% improvement in steady state RPS after this fix, bringing us inline with what I've seen on x64.
Ahson Khan [Wed, 11 Apr 2018 03:35:00 +0000 (20:35 -0700)]
Add CreateFromPinnedArray to MemoryMarshal (#17500)
* Add CreateFromPinnedArray to MemoryMarshal
* Address PR feedback: Add a warning remark to CreateFromPinnedArray
Wes Haggard [Tue, 10 Apr 2018 16:44:20 +0000 (09:44 -0700)]
Merge pull request #17466 from dotnet-maestro-bot/master-UpdateDependencies
Update CoreClr, CoreFx, PgoData to preview3-26410-07, preview3-26409-05, master-
20180410-0048, respectively (master)