Stephen Toub [Tue, 28 Nov 2017 17:18:43 +0000 (12:18 -0500)]
Port ValueStringBuilder updates/fixes from corefx
Stephen Toub [Tue, 28 Nov 2017 16:48:37 +0000 (11:48 -0500)]
Move FormatDouble/Single to managed code
Instead of making fcalls to FormatDouble and FormatSingle, move them to managed, and use fcalls for the DoubleToNumber and NumberToDouble they call, shifting down the layer that's implemented in native. This allows us to then much more easily add TryFormat methods for double and float while also sharing more code between coreclr and corert, from which the managed implementations were taken (they're a direct port of these native implementations from coreclr). In the process, I also eliminated one fcall that can be implemented in managed easily. The remaining fcalls are more substantial and will eventually require more effort to bring to managed.
Andy Ayers [Wed, 29 Nov 2017 02:10:06 +0000 (18:10 -0800)]
JIT: fix bug with int casts of long shifts (#15236)
* JIT: fix bug with int casts of long shifts
The jit is pushing int casts down through long left shifts in ways that can
change computation. The push is only safe if the shift amount is 31 bits or
less. So split the current optimization for shifts into three cases:
* shift amount unknown: don't push the cast
* shift amount > 31: result of cast/shift is zero
* shift amout <= 31: push the cast
Fixes #15077.
Bruce Forstall [Wed, 29 Nov 2017 01:03:26 +0000 (17:03 -0800)]
Merge pull request #15250 from BruceForstall/DisableMuldimjagary
Disable muldimjagary test for arm
Bruce Forstall [Wed, 29 Nov 2017 00:54:20 +0000 (16:54 -0800)]
Merge pull request #15253 from BruceForstall/FixSmartyArchive2
Fix archiving of smarty results
Bruce Forstall [Wed, 29 Nov 2017 00:10:55 +0000 (16:10 -0800)]
Fix archiving of smarty results
Run the command to ZIP the output directory in the same
"Execute Batch File" step as the smarty. Otherwise, a failure
of smarty will cause Jenkins to not run the subsequent batch file
steps, including the ZIP step.
Also, preserve the smarty error code to use that as the batch
file step exit code.
Bruce Forstall [Wed, 29 Nov 2017 00:30:06 +0000 (16:30 -0800)]
Fix netci.groovy braces after Linux/x86 change
Bruce Forstall [Tue, 28 Nov 2017 22:31:09 +0000 (14:31 -0800)]
Disable muldimjagary test for arm
Fixes #15245
William Godbe [Tue, 28 Nov 2017 21:03:34 +0000 (13:03 -0800)]
Merge pull request #15247 from wtgodbe/TestNativeBinLocation
Download test native binaries to correct location
wtgodbe [Tue, 28 Nov 2017 20:49:59 +0000 (12:49 -0800)]
Download test native binaries to correct location
dotnet-maestro-bot [Tue, 28 Nov 2017 19:28:56 +0000 (13:28 -0600)]
Update CoreClr to preview1-25928-02 (#15240)
dotnet-maestro-bot [Tue, 28 Nov 2017 13:06:38 +0000 (07:06 -0600)]
Update CoreClr, PgoData to preview1-25927-01, master-
20171128-0148, respectively (#15239)
Stephen Toub [Tue, 28 Nov 2017 03:06:35 +0000 (22:06 -0500)]
Fix typo in comment in number formatting
Stephen Toub [Tue, 28 Nov 2017 03:05:47 +0000 (22:05 -0500)]
Switch new TryParse* and TryFormat methods to use span-based format (#15238)
As part of this, I needed to fix-up several functions that parsed strings assuming they end with '\0', which no longer holds once we switch to using spans.
Also:
- Switched various call sites to using a cast rather than AsReadOnlySpan.
- Updated string.Format / StringBuilder.AppendFormat to use the new span-based support to avoid substring allocations.
- Removed some TODOs that were left in the codebase from some of my previous changes
Sean Gillespie [Mon, 27 Nov 2017 23:41:09 +0000 (15:41 -0800)]
[Local GC] Move knowledge of overlapped I/O objects to the EE through four callbacks (#14982)
* [Local GC] Move knowledge of overlapped I/O objects to the EE through
four callbacks
* Code review feedback:
1. Rename OverlappedData->AsyncPinned in interface methods
2. Remove additional FEATURE_REDHAWK defines around async pin
relocation code
* Eliminate two GCToEEInterface callbacks by passing the callbacks directly as arguments to a method on IGCHandleStore
* Repair clang build
* Split pin and async pin handle scans into two separate callbacks
* Fix the clang and non-Windows builds
dotnet-maestro-bot [Mon, 27 Nov 2017 20:09:42 +0000 (14:09 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-25927-01, preview1-25927-01, master-
20171127-0045, respectively (#15219)
Michal Strehovský [Mon, 27 Nov 2017 19:49:46 +0000 (20:49 +0100)]
Auto-update ILAsmVersion.txt (#15199)
Bruce Forstall [Mon, 27 Nov 2017 19:24:59 +0000 (11:24 -0800)]
Merge pull request #15187 from BruceForstall/FixArmTailcall
Fix arm32 stub indirect tailcall
Koundinya Veluri [Mon, 27 Nov 2017 18:28:02 +0000 (10:28 -0800)]
Improve Monitor scaling (#14216)
Improve Monitor scaling and reduce spinning
Part 1: Improve Monitor scaling
Fixes https://github.com/dotnet/coreclr/issues/13978
- Refactored AwareLock::m_MonitorHeld into a class LockState with operations to mutate the state
- Allowed the lock to be taken by a non-waiter when there is a waiter to prevent creating lock convoys
- Added a bit to LockState to indicate that a waiter is signaled to wake, to avoid waking more than one waiter at a time. A waiter that wakes by observing the signal unsets this bit. See AwareLock::EnterEpilogHelper().
- Added a spinner count to LockState. Spinners now register and unregister themselves and lock releasers don't wake a waiter when there is a registered spinner (the spinner guarantees to take the lock if it's available when unregistering itself)
- This was necessary mostly on Windows to reduce CPU usage to the expected level in contended cases with several threads. I believe it's the priority boost Windows gives to signaled threads, which seems to cause waiters to much more frequently succeed in acquiring the lock. This causes a CPU usage problem because once the woken waiter releases the lock, on the next lock attempt it will become a spinner. This keeps repeating, converting several waiters into spinners unnecessarily. Before registering spinners, I saw typically 4-6 spinners under contention (with delays inside and outside the lock) when I expected to have only 1-2 spinners at most.
- It costs an interlocked operation before and after the spin loop, doesn't seem to be too significant since spinning is a relatively slow path anyway, and the reduction in CPU usage in turn reduces contention on the lock and lets more useful work get done
- Updated waiters to spin a bit before going back to waiting, reasons are explained in AwareLock::EnterEpilogHelper()
- Removed AwareLock::Contention() and any references (this removes the 10 repeats of the entire spin loop in that function). With the lock convoy issue gone, this appears to no longer be necessary.
Perf
- On Windows, throughput has increased significantly starting at slightly lower than proc count threads. On Linux, latency and throughput have increased more significantly at similar proc counts.
- Most of the larger regressions are in the unlocked fast paths. The code there hasn't changed and is almost identical (minor layout differences), I'm just considering this noise until we figure out how to get consistently faster code generated.
- The smaller regressions are within noise range
Part 2: Reduce Monitor spinning
Fixes https://github.com/dotnet/coreclr/issues/13980
- Added new config value Monitor_SpinCount and Monitor spins for that many iterations, default is 30 (0x1e). This seems to give a somewhat decent balance between latency, fairness, and throughput. Lower spin counts improve latency and fairness significantly and regress throughput slightly, and higher spin counts improve throughput slightly and regress latency and fairness significantly.
- The other constants can still be used to disable spinning but otherwise they are no longer used by Monitor
- Decreased the number of bits used for tracking spinner count to 3. This seems to be more than enough since only one thread can take a lock at a time, and prevents spikes of unnecessary CPU usage.
Tried some things that didn't pan out:
- Sleep(0) doesn't seem to add anything to the spin loop, so left it out. Instead of Sleep(0) it can just proceed to waiting. Waiting is more expensive than Sleep(0), but I didn't see that benefit in the tests. Omitting Sleep(0) also keeps the spin loop very short (a few microseconds max).
- Increasing the average YieldProcessor() duration per spin iteration improved thorughput slightly but regressed latency and fairness very quickly. Given that fairness is generally worse with part 1 of this change above, it felt like a better compromise to take a small reduction in throughput for larger improvements in latency and fairness.
- Tried adding a very small % of lock releases by random wake a waiter despite there being spinners to improve fairness. This improved fairness noticeably but not as much as decreasing the spin count slightly, and it was making latency and throughput worse more quickly. After reducing the % to a point where I was hardly seeing fairness improvements, there were still noticeable latency and throughput regressions.
Miscellaneous
- Moved YieldProcessorNormalized code into separate files so that they can be included earlier and where needed
- Added a max for "optimal max normalized yields per spin iteration" since it has a potential to be very large on machines where YieldProcessor may be implemented as no-op, in which case it's probably not worth spinning for the full duration
- Refactored duplicate code in portable versions of MonEnterWorker, MonEnter, and MonReliableEnter. MonTryEnter has a slightly different structure, did not refactor that.
Perf
- Throughput is a bit lower than before at lower thread counts and better at medium-high thread counts. It's a bit lower at lower thread counts because of two reasons:
- Shorter spin loop means the lock will be polled more frequently because the exponential backoff does not get as high, making it more likely for a spinner to steal the lock from another thread, causing the other thread to sometimes wait early
- The duration of YieldProcessor() calls per spin iteration has decreased and a spinner or spinning waiter are more likely to take the lock, the rest is similar to above
- For the same reasons as above, latency is better than before. Fairness is better on Windows and worse on Linux compared to baseline due to the baseline having differences between these platforms. Latency also has differences between Windows/Linux in the baseline, I suspect those are due to differences in scheduling.
- Performance now scales appropriately on processors with different pause delays
Part 3: Add mitigation for waiter starvation
Normally, threads are allowed to preempt waiters to acquire the lock. There are cases where waiters can be easily starved as a result. For example, a thread that holds a lock for a significant amount of time (much longer than the time it takes to do a context switch), then releases and reacquires the lock in quick succession, and repeats. Though a waiter would be woken upon lock release, usually it will not have enough time to context-switch-in and take the lock, and can be starved for an unreasonably long duration.
In order to prevent such starvation and force a bit of fair forward progress, it is sometimes necessary to change the normal policy and disallow threads from preempting waiters. A new bit was added to LockState and ShouldNotPreemptWaiters() indicates the current state of the policy.
- When the first waiter begins waiting, it records the current time as a "waiter starvation start time". That is a point in time after which no forward progress has occurred for waiters. When a waiter acquires the lock, the time is updated to the current time.
- Before a spinner begins spinning, and when a waiter is signaled to wake, it checks whether the starvation duration has crossed a threshold (currently 100 ms) and if so, sets ShouldNotPreemptWaiters()
When unreasonable starvation is occurring, the lock will be released occasionally and if caused by spinners, spinners will be starting to spin.
- Before starting to spin, if ShouldNotPreemptWaiters() is set, the spinner will skip spinning and wait instead. Spinners that are already registered at the time ShouldNotPreemptWaiters() is set will stop spinning as necessary. Eventually, all spinners will drain and no new ones will be registered.
- After spinners have drained, only a waiter will be able to acquire the lock. When a waiter acquires the lock, or when the last waiter unregisters itself, ShouldNotPreemptWaiters() is cleared to restore the normal policy.
Koundinya Veluri [Mon, 27 Nov 2017 16:56:18 +0000 (08:56 -0800)]
Remove excessive console output in debug builds in a set of monitor tests (#15071)
Hyeongseok Oh [Mon, 27 Nov 2017 13:30:54 +0000 (22:30 +0900)]
[x86/Linux] Enable CI unittest (#14442)
* [x86/Linux] Preparing pri2 unittest
- Copy test binary from x86 Windows build
- Copy CoreFX managed from arm CoreFX managed build
- Add archival
* Fix to merge test job generation
Change approach by expanding existing x64 & arm64 linux infrastructure
* [CI][Linux/x86] Fix configuration and architecture in netci.groovy
Fix to use configuration instead of lowerConfiguration
USe architecture and osGroup
* [CI][Linux/x86] Save test native builds in build job
Fix to save test native build in build job
Saved native builds are used on test job
Dan Moseley [Sun, 26 Nov 2017 21:34:21 +0000 (13:34 -0800)]
Fix resx typo (#15212)
* Fix resx typo
* Reword
Bruce Forstall [Sun, 26 Nov 2017 15:13:04 +0000 (07:13 -0800)]
Fix Powershell error (#15217)
Justin Van Patten [Sun, 26 Nov 2017 14:45:40 +0000 (06:45 -0800)]
Remove some dead Unix code (#15221)
Environment.ExpandEnvironmentVariables is only used by RegistryKey
inside corelib, which is only present on Windows. There's no need for a
Unix implementation.
Jiri {x2} Cincura [Sun, 26 Nov 2017 14:44:54 +0000 (15:44 +0100)]
Simpler code (same as in String.Manipulation.cs). (#15223)
Justin Van Patten [Sun, 26 Nov 2017 13:47:32 +0000 (05:47 -0800)]
Sort the Action/Func delegates (#15222)
Justin Van Patten [Sun, 26 Nov 2017 02:32:15 +0000 (18:32 -0800)]
Use string.Create in BitConverter.ToString(byte[]) (#15218)
Avoids unnecessary allocations and copying, and reduces the amount of unsafe code.
dotnet-maestro-bot [Sat, 25 Nov 2017 16:42:21 +0000 (10:42 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-25925-02, preview1-25925-02, master-
20171125-0056, respectively (#15210)
dotnet bot [Sat, 25 Nov 2017 16:41:55 +0000 (08:41 -0800)]
Fix build error (#15213)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Anirudh Agnihotry [Fri, 24 Nov 2017 23:49:35 +0000 (15:49 -0800)]
added keu value to key not found exception (#15201)
dotnet-maestro-bot [Fri, 24 Nov 2017 21:09:52 +0000 (15:09 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-25924-01, preview1-25924-02, master-
20171124-0044, respectively (#15202)
mikedn [Fri, 24 Nov 2017 20:54:18 +0000 (22:54 +0200)]
Delete unused file expandarray.h (#15204)
This was used by the JIT but now it has its own copy (src\jit\jitexpandarray.h).
Anirudh Agnihotry [Fri, 24 Nov 2017 04:07:50 +0000 (20:07 -0800)]
Implementation for new string.contains api (#15180)
* string contains char added
* string Comparision added
dotnet-maestro-bot [Fri, 24 Nov 2017 01:03:46 +0000 (19:03 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-25923-02, preview1-25923-02, master-
20171123-0035, respectively (#15188)
Victor Zaytsev [Thu, 23 Nov 2017 16:07:47 +0000 (19:07 +0300)]
Fixed parameter validation for Delegate.CreateDelegate method. (#15196)
Stephen Toub [Thu, 23 Nov 2017 16:05:59 +0000 (11:05 -0500)]
Revert making Nullable<T> readonly (#15198)
* Revert making Nullable<T> readonly
* Address PR feedback
Jan Kotas [Thu, 23 Nov 2017 16:00:15 +0000 (08:00 -0800)]
Move TextInfo to shared CoreLib partition (#15195)
Jan Kotas [Thu, 23 Nov 2017 03:29:51 +0000 (19:29 -0800)]
Fix namespaces and ThrowHelper
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Thu, 23 Nov 2017 02:29:54 +0000 (18:29 -0800)]
Move Nullable and string normalization to shared CoreLib partition (#15184)
Steve MacLean [Thu, 23 Nov 2017 01:37:28 +0000 (20:37 -0500)]
[Arm64] support GBDJIT debug frame (#15174)
Bruce Forstall [Thu, 23 Nov 2017 00:31:58 +0000 (16:31 -0800)]
Merge pull request #15181 from BruceForstall/CleanupCallFlagUsage
Clean up `GTF_CALL_VIRT_KIND_MASK` and related usage
Bruce Forstall [Thu, 23 Nov 2017 00:05:59 +0000 (16:05 -0800)]
Merge pull request #15177 from sdmaclea/PR-ARM64-SIMD-morph-varTypeIsStruct
[Arm64] SIMD morph varTypeIsStruct
Bruce Forstall [Thu, 23 Nov 2017 00:04:47 +0000 (16:04 -0800)]
Merge pull request #15178 from sdmaclea/PR-ARM64-SIMD-norm-arg-type
[Arm64] SIMD Normalize struct arg type
Bruce Forstall [Thu, 23 Nov 2017 00:02:00 +0000 (16:02 -0800)]
Merge pull request #15179 from sdmaclea/PR-ARM64-assign-GT_SIMD-arg-temps
[Arm64] Assign temps to GT_SIMD arguments
Bruce Forstall [Wed, 22 Nov 2017 23:39:49 +0000 (15:39 -0800)]
Fix arm32 stub indirect tailcall
ARM has code in fgMorphTailCall to insert a level of indirection
for the call address of a stub indirect tailcall. Then, LowerVirtualStubCall
inserts another level of indirection. Only one is necessary/required,
so stop inserting the second indirection in LowerVirtualStubCall.
Fixes #15152, #14862 (all current TailcallStress=1 and JitStress=1 failures).
Brian Robbins [Wed, 22 Nov 2017 23:37:58 +0000 (15:37 -0800)]
Disable Automatic PR Perf Jobs (#15176)
* Disable PR perf jobs.
* Actually enable on-demand PR runs.
Justin Van Patten [Wed, 22 Nov 2017 23:34:03 +0000 (15:34 -0800)]
StringBuilder: Use Decimal.TryFormat (#15170)
Bruce Forstall [Wed, 22 Nov 2017 23:33:17 +0000 (15:33 -0800)]
Merge pull request #15173 from sdmaclea/PR-ARM64-LowerVirtualStubCall-reg-allocation
[Arm64] Fix LowerVirtualStubCall reg allocation
Bruce Forstall [Wed, 22 Nov 2017 22:45:50 +0000 (14:45 -0800)]
Merge pull request #15182 from BruceForstall/TweakArmArchive
Tweak how arm/armlb/arm64 smarty archive happens
Bruce Forstall [Wed, 22 Nov 2017 22:09:21 +0000 (14:09 -0800)]
Tweak how arm/armlb/arm64 smarty archive happens
Put the powershell command to create the archive in a separate
batch file step, so the smarty command error code will be recognized
separately.
Bruce Forstall [Wed, 22 Nov 2017 22:05:09 +0000 (14:05 -0800)]
Clean up `GTF_CALL_VIRT_KIND_MASK` and related usage
Use the existing accessor functions instead of checking the bits directly.
Steve MacLean [Wed, 22 Nov 2017 21:10:41 +0000 (16:10 -0500)]
[Arm64] Assign temps to GT_SIMD arguments
Steve MacLean [Mon, 20 Nov 2017 21:27:55 +0000 (16:27 -0500)]
[Arm64] SIMD Normalize struct arg type
Steve MacLean [Fri, 10 Nov 2017 21:33:11 +0000 (16:33 -0500)]
[Arm64] SIMD morph varTypeIsStruct
Steve MacLean [Wed, 22 Nov 2017 20:15:35 +0000 (15:15 -0500)]
[Arm64] Fix LowerVirtualStubCall reg allocation
Bruce Forstall [Wed, 22 Nov 2017 19:23:21 +0000 (11:23 -0800)]
Merge pull request #15168 from BruceForstall/NoArm64Debug
Stop running Windows ARM64 Debug builds (and tests) by default
dotnet-maestro-bot [Wed, 22 Nov 2017 18:13:15 +0000 (12:13 -0600)]
Update CoreClr, CoreFx, PgoData to preview1-25922-02, preview1-25922-03, master-
20171122-0033, respectively (#15161)
Bruce Forstall [Wed, 22 Nov 2017 17:49:06 +0000 (09:49 -0800)]
Stop running Windows ARM64 Debug builds (and tests) by default
Currently, a PR (from someone on the ARM64 whitelist) will automatically
trigger Windows ARM64 Debug builds. Due to an issue with test definitions,
this also triggers a Debug test run. This is unnecessary; Checked test
runs (and builds) should be sufficient. Save time and machine resources
by not doing Debug builds and tests by default.
Stephen Toub [Wed, 22 Nov 2017 17:48:36 +0000 (12:48 -0500)]
Add string to ReadOnlySpan<char> implicit cast (#15167)
Jan Kotas [Wed, 22 Nov 2017 14:17:04 +0000 (06:17 -0800)]
Cosmetic fixes after move to shared partition
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Bruce Forstall [Wed, 22 Nov 2017 16:58:36 +0000 (08:58 -0800)]
Merge pull request #15149 from BruceForstall/ArchiveMoreArm32
Archive smarty directory for arm/armlb/arm64 runs
Jacek Blaszczynski [Wed, 22 Nov 2017 16:00:00 +0000 (17:00 +0100)]
Fix all powershell invocations in scripts, CI code and tests to include -NoProfile (#15164)
Code execution in several scripts and tests can be affected by powershell profile
execution at startup. Adding -NoProfile option to all powershell invocations which
may be affected by execution of profile startup code.
Michal Strehovský [Wed, 22 Nov 2017 15:38:19 +0000 (16:38 +0100)]
Ask buildtools to also restore ILAsm (#15103)
We should start with having this restored before we start using it to make sure that nobody has tools downloaded/initialized without ILAsm.
Fei Peng [Wed, 22 Nov 2017 14:40:24 +0000 (06:40 -0800)]
Fix SSE2 and SSE4.1 APIs (#15160)
Jan Kotas [Wed, 22 Nov 2017 04:40:14 +0000 (20:40 -0800)]
Fix unused field warnings
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Sergey Andreenko [Wed, 22 Nov 2017 07:46:50 +0000 (23:46 -0800)]
[RyuJit][x86] Set unused flag when replace an unused parent with a child. (#15157)
* add the repro
* fix the issue
* Move the test to pri1
Jan Kotas [Wed, 22 Nov 2017 07:27:12 +0000 (23:27 -0800)]
Move ArraySegment and a few other files to shared CoreLib partition (#15158)
Bruce Forstall [Tue, 21 Nov 2017 23:20:24 +0000 (15:20 -0800)]
Archive smarty directory for arm/armlb/arm64 runs
Currently, we only archive the *.smrt files, which is not enough to
see why a test failed, only that it did. Instead, ZIP the entire
Smarty.run.0 directory, and upload that (it's about 26MB for a
Pri-1 test run). This allows us to see the actual output of
each test, as generated by smarty.
dotnet-maestro-bot [Wed, 22 Nov 2017 05:40:21 +0000 (23:40 -0600)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02221-02, preview1-25922-01, preview1-25921-04, master-
20171121-0025, respectively (#15112)
Stephen Toub [Wed, 22 Nov 2017 05:13:37 +0000 (00:13 -0500)]
Add Decimal.TryFormat span-based method (#15145)
* Move decimal formatting to managed code
- Move decimal formatting to shared (decimal itself is still not shared)
- Delete VM's decimal formatting code
* Add Decimal.TryFormat span-based method
* Workaround ProjectN compiler bug
Apply the same attribution that's applied to the code in corert.
* Address PR feedback
* Temporarily undo explicit layout change
Seeing whether it's the cause of these failures on Unix (Ubuntu, CentOS, and OSX):
```
JIT.Directed.coverage.oldtests.lclfldadd_cs_r.lclfldadd_cs_r
JIT.Directed.perffix.primitivevt.mixed1_cs_ro.mixed1_cs_ro
JIT.Methodical.fp.exgen.1000w1d_cs_r.1000w1d_cs_r
JIT.Methodical.fp.exgen.1000w1d_cs_ro.1000w1d_cs_ro
JIT.Methodical.fp.exgen.1000w1d_cs_do.1000w1d_cs_do
JIT.Methodical.fp.exgen.1000w1d_cs_d.1000w1d_cs_d
JIT.Methodical.fp.exgen.10w5d_cs_d.10w5d_cs_d
JIT.Methodical.fp.exgen.10w5d_cs_do.10w5d_cs_do
JIT.Methodical.fp.exgen.10w5d_cs_ro.10w5d_cs_ro
JIT.Methodical.fp.exgen.200w1d-02_cs_do.200w1d-02_cs_do
JIT.Methodical.fp.exgen.10w5d_cs_r.10w5d_cs_r
JIT.Methodical.fp.exgen.200w1d-02_cs_ro.200w1d-02_cs_ro
JIT.Directed.perffix.primitivevt.mixed1_cs_do.mixed1_cs_do
```
Example failure:
```
FAILED - JIT/Methodical/fp/exgen/200w1d-02_cs_ro/200w1d-02_cs_ro.sh
BEGIN EXECUTION
/mnt/j/workspace/dotnet_coreclr/master/checked_ubuntu_tst_prtest/bin/tests/Windows_NT.x64.Checked/Tests/coreoverlay/corerun 200w1d-02_cs_ro.exe
Unhandled Exception: System.OverflowException: Value was either too large or too small for an Int32.
at System.Convert.ThrowInt32OverflowException()
at System.Convert.ToInt32(Int64 value)
at testout1.Func_0()
at testout1.Main()
./200w1d-02_cs_ro.sh: line 243: 101339 Aborted (core dumped) $_DebuggerFullPath "$CORE_ROOT/corerun" $ExePath $CLRTestExecutionArguments
Expected: 100
Actual: 134
END EXECUTION - FAILED
```
Sergey Andreenko [Wed, 22 Nov 2017 02:20:16 +0000 (18:20 -0800)]
format spmi source (#15144)
Jan Kotas [Tue, 21 Nov 2017 22:44:58 +0000 (14:44 -0800)]
Delete unused leftovers from binary serialization (#15140)
Michal Strehovský [Tue, 21 Nov 2017 18:26:57 +0000 (19:26 +0100)]
Merge pull request dotnet/corert#4971 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Tue, 21 Nov 2017 19:20:00 +0000 (11:20 -0800)]
Move SafeBuffer and a few other files to shared CoreLib partition (#15141)
Bruce Forstall [Tue, 21 Nov 2017 18:42:07 +0000 (10:42 -0800)]
Merge pull request #15138 from BruceForstall/FixArmPri1
Temporary fix for arm/armlb/arm64 builds: always build Pri 1 tests
Jan Kotas [Tue, 21 Nov 2017 14:01:12 +0000 (06:01 -0800)]
Move UnmanagedMemoryAccessor to shared CoreLib partition (#15137)
Bruce Forstall [Tue, 21 Nov 2017 05:57:21 +0000 (21:57 -0800)]
Temporary fix for arm/armlb/arm64 builds: always build Pri 1 tests
A fix like #15075 will replace this soon.
Bruce Forstall [Tue, 21 Nov 2017 05:47:20 +0000 (21:47 -0800)]
Merge pull request #15133 from BruceForstall/FixMissingLabel
Fix genPrepForEHCodegen for arm64
Bruce Forstall [Tue, 21 Nov 2017 05:39:24 +0000 (21:39 -0800)]
Merge pull request #15131 from BruceForstall/RemoveX86LegacyBackendTesting
Remove x86 legacy_backend build and CI testing
Justin Van Patten [Tue, 21 Nov 2017 03:49:23 +0000 (19:49 -0800)]
Version: Use int.TryFormat & StringBuilder.Append(int) (#15132)
Now that `int.TryFormat` is available, along with the more efficient
`StringBuilder.Append(int)`, use them in `Version`.
Carol Eidt [Tue, 21 Nov 2017 02:13:14 +0000 (18:13 -0800)]
Merge pull request #15034 from CarolEidt/FixDivRegs
Set reg conflicts on contained IND
Justin Van Patten [Tue, 21 Nov 2017 02:11:58 +0000 (18:11 -0800)]
Reduce allocations in StringBuilder.AppendFormat for primitive types (#15110)
Use the new `TryFormat` APIs to avoid string allocations for primitive types
inside `StringBuilder.AppendFormat`, used by `string.Format`/interpolated
strings.
Santiago Fernandez Madero [Tue, 21 Nov 2017 00:29:58 +0000 (16:29 -0800)]
Change quotes.
Bruce Forstall [Tue, 21 Nov 2017 00:23:22 +0000 (16:23 -0800)]
Remove x86 legacy_backend build and CI testing
Sergey Andreenko [Tue, 21 Nov 2017 00:20:56 +0000 (16:20 -0800)]
fix the adding (#15121)
Santiago Fernandez Madero [Tue, 21 Nov 2017 00:10:57 +0000 (16:10 -0800)]
Add a core dump example.
dotnet bot [Mon, 20 Nov 2017 23:54:50 +0000 (15:54 -0800)]
Fix typo (#15129)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Carol Eidt [Wed, 15 Nov 2017 05:37:12 +0000 (21:37 -0800)]
Set reg conflicts on contained IND
For shift, rotate, mod and div, we were only excluding conflicting registers on the non-fixed operand if it is not contained. However, we still want to do that for the base and index (if any) on a contained IND.
Also, fix the LocationInfoListNodePool to attribute its memory usage to CMK_LSRA.
Mike McLaughlin [Mon, 20 Nov 2017 23:02:22 +0000 (15:02 -0800)]
Fix a few of createdump bugs. (#15079)
1) Fix createdump p_vaddr bias/base problem.
2) createdump was loading the DAC from the directory where createdump was executed from and not from the libcoreclr.so path. Fixed this.
3) Don't use the dac if the libcoreclr.so module is not found.
4) Remove the QI of ICoreDebugDataTarget4 in datatarget.cpp. Forgot to do this when the VirtualUnwind function was removed. Caused crash.
Carol Eidt [Mon, 20 Nov 2017 22:58:37 +0000 (14:58 -0800)]
Merge pull request #15120 from sdmaclea/PR-ARM64-SIMD-SIMD12-genCodeForStoreLcl
[Arm64] SIMD12 genCodeForStoreLcl*
Bruce Forstall [Mon, 20 Nov 2017 22:29:55 +0000 (14:29 -0800)]
Merge pull request #15087 from BruceForstall/FixJmpGsCheck
Fix RyuJIT/arm32 GS cookie check before JMP call
Bruce Forstall [Mon, 20 Nov 2017 22:27:25 +0000 (14:27 -0800)]
Merge pull request #15084 from BruceForstall/FixMulLongBashing3
Fix RyuJIT/arm32 GT_MUL_LONG node bashing
Bruce Forstall [Mon, 20 Nov 2017 22:23:57 +0000 (14:23 -0800)]
Merge pull request #15086 from BruceForstall/FixBitCastGenTreeDefn2
Fix GenTree definition for GT_BITCAST
Bruce Forstall [Mon, 20 Nov 2017 22:23:25 +0000 (14:23 -0800)]
Fix debuggable GenTree (#15081)
* Fix debuggable GenTree
Since the `DEBUGGABLE_GENTREE` hack was introduced, many new
GenTree types have been introduced, and gtstructs.h has shifted
around. This change fixes it so we should see accurate GenTree
vtable pointers for all cases where SetOper gets called.
* Formatting
Andy Ayers [Fri, 17 Nov 2017 00:14:06 +0000 (16:14 -0800)]
Update jitbench harness to capture steady state data
Update jitbench SHA to pick up new version that reports steady state
median response time, with fractional digits.
Bruce Forstall [Mon, 20 Nov 2017 22:05:03 +0000 (14:05 -0800)]
Fix genPrepForEHCodegen for arm64
Enable amd64 code for arm64 as well, to match the expectation of
where labels exist in genReportEH. Fixes #14831, a unique case
during MinOpts (and probably only minopts) where dead code follows
a call/finally block sequence.
Carol Eidt [Mon, 20 Nov 2017 21:07:56 +0000 (13:07 -0800)]
Merge pull request #15115 from CarolEidt/Enable14665Tests
Re-enable tests disabled for #14665
Bruce Forstall [Mon, 20 Nov 2017 21:06:26 +0000 (13:06 -0800)]
Merge pull request #14933 from sdmaclea/PR-ARM64-SIMD-Normalize-Struct-Return
[Arm64] SIMD Normalize struct return type
Bruce Forstall [Mon, 20 Nov 2017 21:01:09 +0000 (13:01 -0800)]
Merge pull request #12552 from mikedn/switch-bt
Use BT in switch lowering
Bruce Forstall [Mon, 20 Nov 2017 20:57:33 +0000 (12:57 -0800)]
Merge pull request #15117 from sdmaclea/PR-ARM64-SIMD-SIMDIntrinsicSet-life
[Arm64] SIMD fix SIMDIntrinsicSet* op2 life