Marek Safar [Thu, 3 Jan 2019 10:51:17 +0000 (11:51 +0100)]
Removes the code moved to shared partition
Marek Safar [Wed, 2 Jan 2019 15:25:34 +0000 (16:25 +0100)]
Moves Attribute instance bits to shared location (dotnet/corert#6747)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Thu, 3 Jan 2019 13:52:30 +0000 (03:52 -1000)]
Cleanup current culture handling in the unmanaged runtime (#21706)
Large portion of the current culture handling in the unmanaged runtime inherited from desktop has been no-op. The nativeInitCultureAccessors QCall that it used to depend on desktop got (almost) never called in CoreCLR.
- Delete resetting of current culture on threadpool threads. It was needed in desktop because of a very tricky flow of current culture between appdomains. It is superseded by the flowing the current culture via AsyncLocal in CoreCLR.
- Comment out fetch of managed current culture for unmanaged resource lookup. It has number of problems that are not easy to fix. We are not localizing the unmanaged runtime currently anyway, so it is ok to just comment it out.
- Fix the rest to call CultureInfo directly without going through Thread.CurrentThread
Stephen Toub [Thu, 3 Jan 2019 13:50:00 +0000 (08:50 -0500)]
Remove substring allocation in MethodBase.AppendParameters (#21770)
Filip Navara [Thu, 3 Jan 2019 13:46:57 +0000 (14:46 +0100)]
Remove unnecessary propagation of stack crawl marks. (#21781)
Bruce Forstall [Thu, 3 Jan 2019 02:30:00 +0000 (18:30 -0800)]
Merge pull request #21669 from kvochko/arm_cfi_code_offsets
[Linux/ARM] Fix CFI code offsets in funclet prolog
Egor Chesakov [Thu, 3 Jan 2019 01:16:44 +0000 (17:16 -0800)]
Refactor Send to Helix step in Azure DevOps (#21700)
* Move all the test job submission logic into separate file eng/send-to-helix-step.yml.
* Pass IsExternal=true and Creator for public submissions.
* Pass IsExternal=false and HelixAccessToken for internal submissions.
* Pass the parameters to MSBuild via environment.
* Make all the properties names passed to MSBuild "from outside" starting with underscore.
* Specify HelixArchitecture and HelixConfiguration properties.
Stephen Toub [Thu, 3 Jan 2019 00:57:49 +0000 (19:57 -0500)]
Avoid some unnecessary allocation in MethodBuilder.ToString (#21758)
This method already allocates a ton, and it's not going to be hot-path, but it's annoying me showing up in queries for string.Concat usage, so I'm fixing it :)
Stephen Toub [Thu, 3 Jan 2019 00:57:17 +0000 (19:57 -0500)]
Replace string.Format(SR. with SR.Format(SR. (#21763)
We use SR.Format in almost all places where we format resource strings (without a format provider), but there were a few stragglers.
Stephen Toub [Thu, 3 Jan 2019 00:56:46 +0000 (19:56 -0500)]
Change a couple string.Replace("a", "b") to string.Replace('a', 'b') (#21768)
The latter is functionally the same but less overhead.
Egor Chesakov [Wed, 2 Jan 2019 23:36:05 +0000 (15:36 -0800)]
Use Alpine container with Node.js in Azure DevOps (#21568)
* Use Alpine container with Node.js in azure-pipelines.yml
* Enable the dependsOn build_Linux_musl_x64_release in azure-pipelines.yml
Stephen Toub [Wed, 2 Jan 2019 23:16:56 +0000 (18:16 -0500)]
Use StringBuilderCache in PathInternal.NormalizeDirectorySeparators (#21760)
When we do need to normalize, we're currently allocating the StringBuilder/char[] for the full path length. As long as the path length is less than the max cacheable size (360), we'll now use a cached builder.
Marek Safar [Wed, 2 Jan 2019 19:44:49 +0000 (20:44 +0100)]
Additional ifdef changes which are ES_BUILD_STANDALONE specific for System.Diagnostics.Tracing (#21748)
Stephen Toub [Wed, 2 Jan 2019 19:44:24 +0000 (14:44 -0500)]
Replace Array.Copy(src, dst, int) calls with Array.Copy(src, 0, dst, 0, int) (#21756)
The former calls GetLowerBound(0) on both src and dst, which is unnecessary when the arrays are T[] and thus always have a lower bound of 0.
Filip Navara [Wed, 2 Jan 2019 15:00:14 +0000 (16:00 +0100)]
Remove dummy globalization implementation. (dotnet/corert#6756)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Stephen Toub [Wed, 2 Jan 2019 18:41:48 +0000 (13:41 -0500)]
Avoid boxing allocation and object[] allocation in BuildTraceFileName (#21752)
Egor Chesakov [Wed, 2 Jan 2019 17:10:05 +0000 (09:10 -0800)]
Temporary remove OSX.1012.Amd64.Open and OSX.1012.Amd64 Helix queues in eng/platform-matrix.yml (#21642)
Related issue: https://github.com/dotnet/core-eng/issues/4856
Jan Kotas [Wed, 2 Jan 2019 14:46:32 +0000 (04:46 -1000)]
Delete lstrlen from Unix PAL (#21745)
strlen/wcslen works just fine.
Marlon Regenhardt [Wed, 2 Jan 2019 14:02:20 +0000 (15:02 +0100)]
Remove second 'license' word for readability (#21747)
The license name already has 'license' in the end, the second one is unnecessary.
Jan Kotas [Wed, 2 Jan 2019 13:12:27 +0000 (03:12 -1000)]
Simplify and improve integer overflow checks in Interop (#21732)
- Delete unnecessary CheckStringLength calls for result of string.Length. Managed strings are guaranteed to be under 2GB bytes, so these checks were unnecessary.
- Add `checked(...)` around buffer size computations that may hit potential integer overflow. It does not look like any of these would cause a bug that would lead to buffer overrun, but it is better to catch these early.
dotnet-maestro-bot [Wed, 2 Jan 2019 07:42:13 +0000 (23:42 -0800)]
Update CoreClr, CoreFx to preview-27302-01, preview.19051.1, respectively (#21674)
Jan Kotas [Tue, 1 Jan 2019 20:31:41 +0000 (12:31 -0800)]
AppContext moved to shared partition - CoreRT specific changes
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Ben Adams [Wed, 2 Jan 2019 02:21:11 +0000 (03:21 +0100)]
strlen to managed code and vectorize (#21729)
Jan Kotas [Tue, 1 Jan 2019 22:15:49 +0000 (12:15 -1000)]
Cleanup ArgumentNull_Obj references in unmanaged runtime (#21738)
Marek Safar [Tue, 1 Jan 2019 22:15:36 +0000 (23:15 +0100)]
Tweaks permissions ifdefs in System.Diagnostics.Tracing (#21733)
Marek Safar [Tue, 1 Jan 2019 20:13:31 +0000 (21:13 +0100)]
Moves AppContext to shared location (#21734)
Jan Kotas [Tue, 1 Jan 2019 05:37:11 +0000 (19:37 -1000)]
Delete useless ArgumentNullException message (#21728)
"Object cannot be null" does not add anything over the default "Value cannot be null"
Ben Adams [Mon, 31 Dec 2018 17:57:19 +0000 (18:57 +0100)]
Remove EventPipeController static constructor (#21718)
* Remove EventPipeController static constructor
* Don't cache DefaultProviderConfiguration
Marek Safar [Mon, 31 Dec 2018 17:56:57 +0000 (18:56 +0100)]
Moves ExceptionDispatchInfo to shared location (#21725)
* Moves ExceptionDispatchInfo to shared location
* Use struct for Exception.DispatchState, avoid TLAs in names, misc cleanup
Ben Adams [Mon, 31 Dec 2018 15:16:54 +0000 (16:16 +0100)]
Improve MdUtf8String (#21720)
* Move MdUtf8String::EqualsCaseSensitive to managed code
* Move MdUtf8String.ToString to safe code
* Use Encoding.UTF8.GetString
Jan Kotas [Mon, 31 Dec 2018 07:18:23 +0000 (23:18 -0800)]
Add license, keep more of the CriticalHandle logic in the shared file
Marek Safar [Sun, 30 Dec 2018 22:29:35 +0000 (23:29 +0100)]
Moves CriticalHandle to shared location
Jan Kotas [Sun, 30 Dec 2018 09:30:48 +0000 (01:30 -0800)]
Fix CoreRT build breaks
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Marek Safar [Mon, 31 Dec 2018 05:58:29 +0000 (06:58 +0100)]
Readability improvement in MemoryStream (#21710)
Koundinya Veluri [Mon, 31 Dec 2018 05:56:54 +0000 (21:56 -0800)]
Don't Sleep(1) in some spin-wait loops (#21722)
- In spin-wait loops that are not expected to last too long, Sleep(1) significantly delays threads from completing the operation
- From eliminating Sleep(1) in such spin-wait loops, there can be a tradeoff, better fairness vs worse throughput, because Sleep(1) removes threads from contention and in some cases fewer threads can make faster progress at the cost of delaying the Sleep(1) threads relatively significantly. Eliminating the Sleep(1) in such spin-wait loops seems to be a good tradeoff.
Pent Ploompuu [Mon, 31 Dec 2018 05:43:09 +0000 (07:43 +0200)]
Remove parsing from GUID constants (#21717)
Ben Adams [Mon, 31 Dec 2018 05:22:08 +0000 (06:22 +0100)]
Remove Environment static constructor (#21715)
Jan Kotas [Sun, 30 Dec 2018 09:08:19 +0000 (01:08 -0800)]
Fix CoreCLR build breaks
Jan Kotas [Sat, 29 Dec 2018 23:26:54 +0000 (15:26 -0800)]
Delete file moved to shared partition
Marek Safar [Sat, 29 Dec 2018 23:16:18 +0000 (00:16 +0100)]
Moves ThrowHelper to shared location (dotnet/corert#6741)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Ben Adams [Sun, 30 Dec 2018 16:54:44 +0000 (17:54 +0100)]
Shorter ExecutionContext.Capture (#21707)
Ben Adams [Sun, 30 Dec 2018 15:35:42 +0000 (16:35 +0100)]
Use EventSource guid ctor for RuntimeEventSource (#21714)
dotnet-maestro[bot] [Sun, 30 Dec 2018 14:44:55 +0000 (14:44 +0000)]
Update dependency files (#21703)
* Update dependencies from https://github.com/dotnet/arcade build 1026
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18627.1
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18627.1
* Update dependencies from https://github.com/dotnet/arcade build 1039
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18629.1
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18629.1
Marek Safar [Sun, 30 Dec 2018 07:38:06 +0000 (08:38 +0100)]
Moves generic comparers to shared CoreLib (#21649)
* Moves generic comparer to shared CoreLib
* Keep Index/LastIndexOf optimizations in CoreCLR only
* Moved runtime-specific enum helper to runtime-specific partial type
Ben Adams [Sun, 30 Dec 2018 03:06:16 +0000 (04:06 +0100)]
Separate ThreadPool...ThreadLocals get from initalization (#21704)
* Seperate ThreadPool...ThreadLocals get from initalization
* Assert null
Filip Navara [Sat, 29 Dec 2018 14:00:31 +0000 (14:00 +0000)]
Move CultureInfo to shared CoreLib (#21672)
* Move thread CurrentCulture and CurrentUICulture variables to CultureInfo.
* Move CultureInfo to shared CoreLib
* Code style fixes for consistency.
* Fold down APPX code into CultureInfo.CurrentCulture/CurrentUICulture.
* Remove unnecessary parentheses around return statements.
* Remove GetCurrentUICultureNoAppX.
Ben Adams [Sat, 29 Dec 2018 07:08:53 +0000 (08:08 +0100)]
Fix warning causing error in warning as error (Windows) (#21697)
Filip Navara [Sat, 29 Dec 2018 04:59:13 +0000 (04:59 +0000)]
Remove usages of GetCurrentUICultureNoAppX from ResourceManager (#21691)
* Remove usages of GetCurrentUICultureNoAppX from ResourceManager to make GetString and GetObject internally consistent. This matches the current behaviour of CoreRT.
Egor Bogatov [Fri, 28 Dec 2018 18:58:42 +0000 (21:58 +0300)]
Replace Interop.ReadDir.cs with Interop.ReadDir.cs from System.IO.FileSystem (#21622)
* Use Interop.ReadDir.cs from FileSystem (corefx)
* Use ArrayPool
* Remove ReadBufferSize (and static cctor)
* use NameBufferSize for 256 const
* Delete ReadDir and SafeDirectoryHandle.Unix.cs
* Introduce GetDirectoryEntryFullPath, remove uint casts
* Refactor EnumerateFilesRecursively
Hugh Bellamy [Fri, 28 Dec 2018 17:52:41 +0000 (17:52 +0000)]
Remove dead Guid parsing code (#21123)
* Remove dead checks in Guid parsing
* Minor cleanups in Guid
* Delete unused failureMessageFormatArgument
dotnet-maestro[bot] [Fri, 28 Dec 2018 14:46:23 +0000 (14:46 +0000)]
Update dependency files (#21686)
* Update dependencies from https://github.com/dotnet/arcade build 970
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18621.6
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18621.6
* Update dependencies from https://github.com/dotnet/arcade build 970
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18621.6
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18621.6
Jan Kotas [Thu, 27 Dec 2018 07:36:20 +0000 (23:36 -0800)]
Use common copy of System.Numerics.Hashing.HashHelpers
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Thu, 27 Dec 2018 14:48:36 +0000 (06:48 -0800)]
Delete file moved to shared partition
Filip Navara [Thu, 27 Dec 2018 14:12:19 +0000 (15:12 +0100)]
Move Contracts.cs (CoreCLR version) to shared CoreLib and update code to compile. (#6734)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Filip Navara [Wed, 26 Dec 2018 21:04:17 +0000 (22:04 +0100)]
Delete file moved to shared CoreLib.
Filip Navara [Wed, 26 Dec 2018 19:04:52 +0000 (20:04 +0100)]
Move System/Numerics/Hashing to shared CoreLib. (dotnet/corert#6732)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Maoni Stephens [Wed, 26 Dec 2018 21:13:21 +0000 (13:13 -0800)]
desktop port (#21523)
+alloc lock split into SOH and LOH
+provisional mode to fix too many gen2 GCs triggered in low mem situation when the heap has heavy pinning fragmentation
+better free list usage
+premature OOM fixes
+3 new configs: GCHeapAffinitizeMask, GCHighMemPercent, GCLOHThreshold (will be documented)
YieldProcessor scaling factor is different on core due to the different implementation on core.
Andrey Kvochko [Tue, 25 Dec 2018 10:32:59 +0000 (13:32 +0300)]
Fix windows build
Andrey Kvochko [Mon, 24 Dec 2018 16:23:55 +0000 (19:23 +0300)]
Fix CFI code offsets in prolog on ARM
dotnet-maestro-bot [Tue, 25 Dec 2018 05:55:04 +0000 (21:55 -0800)]
Update CoreClr, CoreFx to preview-27225-01, preview.18624.2, respectively (#21663)
Filip Navara [Tue, 25 Dec 2018 04:55:30 +0000 (05:55 +0100)]
Makes CultureInfo.get_Parent thread safe. (#21671)
Filip Navara [Mon, 24 Dec 2018 02:16:32 +0000 (03:16 +0100)]
Move DebugProvider.Windows to shared CoreLib. (#21657)
Ben Adams [Mon, 24 Dec 2018 02:09:46 +0000 (02:09 +0000)]
Fix warning causing error in warning as error (Windows) (#21656)
Ben Adams [Mon, 24 Dec 2018 00:26:58 +0000 (00:26 +0000)]
Use TZCNT and LZCNT for Locate{First|Last}Found{Byte|Char} (#21073)
Andon Andonov [Sun, 23 Dec 2018 23:51:05 +0000 (15:51 -0800)]
Add Module Override Recognition to R2RDump (#21617)
This was added to help debug work with large version bubbles. The changes should allow R2RDump to have some rudimentary understanding of ENCODE_METHOD_OVERRIDE.
The big TODO here is allow loading of external dependency assemblies to be able to resolve the tokens coming after the override.
Michal Strehovský [Sun, 23 Dec 2018 16:09:39 +0000 (17:09 +0100)]
Fix ProjectN regression in `ByReference<T>` (dotnet/corert#6713)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
dotnet-maestro-bot [Sun, 23 Dec 2018 20:47:37 +0000 (12:47 -0800)]
Update CoreClr, CoreFx to preview-27223-02, preview.18623.1, respectively (#21658)
ichensky [Sun, 23 Dec 2018 12:47:25 +0000 (14:47 +0200)]
Add optimization in GetHashCode for Int16 and SByte (#21652)
Jan Kotas [Sun, 23 Dec 2018 12:47:11 +0000 (04:47 -0800)]
Delete CoreLib.FixupCoreLibName (#21655)
This method doing blind find&replace of "mscorlib" with "System.Private.CoreLib". It is both incorrect (e.g. if the typename happened to contain "mscorlib" string) and inefficient (unnecessary allocations and use of reflection).
Sergey Andreenko [Sun, 23 Dec 2018 06:42:44 +0000 (22:42 -0800)]
Fix ArrayStack's call to default constructor for <T>. (#21624)
* Add ArrayStack::Empty
* Add ArrayStack::BottomRef
* Delete unused `ReverseTop`.
* do not use default constructor.
dotnet-maestro-bot [Sun, 23 Dec 2018 05:51:18 +0000 (21:51 -0800)]
Update CoreClr, CoreFx to preview-27223-01, preview.18622.2, respectively (master) (#21620)
* Update CoreClr, CoreFx to preview-27223-01, preview.18622.2, respectively
* Update issues json
Marek Safar [Sun, 23 Dec 2018 03:20:39 +0000 (04:20 +0100)]
Extracts public IThreadPoolWorkItem interface to shared CoreLib (#21653)
Marek Safar [Sun, 23 Dec 2018 02:36:33 +0000 (03:36 +0100)]
Moves CoreLib to shared location (#21654)
Ben Adams [Sat, 22 Dec 2018 20:08:22 +0000 (20:08 +0000)]
SpanHelpers deal with nullable reference types (#21232)
Jan Kotas [Sat, 22 Dec 2018 18:01:00 +0000 (10:01 -0800)]
Move some Task related files to shared CoreLib partition (#21650)
Jan Kotas [Sat, 22 Dec 2018 06:49:21 +0000 (22:49 -0800)]
Synchronize Task, Awaiter and ThreadPool implementation with CoreCLR (#6706)
Synchronized the code as much as possible with CoreCLR. The one major piece that I have excluded is tracing. I will look into doing that separately.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
dotnet-maestro[bot] [Sat, 22 Dec 2018 14:50:48 +0000 (14:50 +0000)]
Update dependency files (#21634)
* Update dependencies from https://github.com/dotnet/arcade build 943
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18620.6
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18620.6
* Update dependencies from https://github.com/dotnet/arcade build 946
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18620.7
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18620.7
Jan Kotas [Sat, 22 Dec 2018 03:59:46 +0000 (19:59 -0800)]
CoreRT-specific Object.cs changes - Fix build breaks - Apply same cleanup to all related files
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Eugene Rozenfeld [Sun, 16 Dec 2018 20:07:42 +0000 (12:07 -0800)]
Improve removal of dead calls to allocator helpers.
This change improves detection of allocators with side effects.
Allocators can cause side effects if the allocated object may have a finalizer.
This change adds a pHasSideEffects parameter to getNewHelper JitEE interface
method. It's used by the jit to check for allocator side effects instead of
guessing from helper ids.
Fixes #21530.
Steve MacLean [Sat, 22 Dec 2018 06:28:33 +0000 (01:28 -0500)]
Remove dead ICLRPrivBinder methods (#21637)
* Remove dead FindAssemblyBySpec
All paths returned E_FAIL
* Remove dead BinderFlags
* Remove dead VerifyBind
Dan Moseley [Sat, 22 Dec 2018 04:24:07 +0000 (20:24 -0800)]
Correctly disable tests (#21645)
Jan Kotas [Sat, 22 Dec 2018 00:07:22 +0000 (16:07 -0800)]
Cleanup to match conventions
Marek Safar [Fri, 21 Dec 2018 21:29:59 +0000 (22:29 +0100)]
Moves common part of Object to CoreLib shared
Eugene Rozenfeld [Thu, 20 Dec 2018 06:11:27 +0000 (22:11 -0800)]
Don't mark calls to allocation helpers as CSE candidates.
Marking them as CSE candidates usually blocks CSEs rather than enables them.
A typical case is:
[1] GT_IND(x) = GT_CALL ALLOC_HELPER
...
[2] y = GT_IND(x)
...
[3] z = GT_IND(x)
If we mark CALL ALLOC_HELPER as a CSE candidate, we later discover
that it can't be a CSE def because GT_INDs in [2] and [3] can cause
more exceptions (NullRef) so we abandon this CSE.
If we don't mark CALL ALLOC_HELPER as a CSE candidate, we are able
to use GT_IND(x) in [2] as a CSE def and do a CSE on [2] and [3].
Dan Moseley [Fri, 21 Dec 2018 22:24:29 +0000 (14:24 -0800)]
Remove _syncRoot field from collections (#21628)
* SyncRoot
* Temp disable tests
* Disable outdated CoreFX test
* Tidier
Jan Kotas [Fri, 21 Dec 2018 21:21:35 +0000 (13:21 -0800)]
Disable outdated CoreFX test (#21636)
Tanner Gooding [Fri, 21 Dec 2018 21:13:21 +0000 (13:13 -0800)]
Ensure that the S.N.Vector methods are marked as [Intrinsic] and that the attribute is respected by the runtime (#21601)
* Updating the SIMD intrinsics to check for the `[Intrinsic]` attribute
* Ensure that the existing Vector/Vector<T> intrinsic methods are marked as such.
* Fixing Vector<T>.DotProduct and Vector.AndNot to be treated as intrinsic
* Fixing `SIMDIntrinsicBitwiseAndNot` to swap the operands for XARCH
Sergey Andreenko [Fri, 21 Dec 2018 20:24:52 +0000 (12:24 -0800)]
Fix arm64 prolog generation for register masks with holes. (#21395)
* Check that `genSaveCalleeSavedRegistersHelp` doesn't accept `REG_LR`.
There are two callers and both save `LR` with `FP` before calling this helper.
In case if somebody calls this function wth`REG_LR` it won't work because unwinding info doesn't expect holes in the reg pairs.
* Extract `genPushOrPopCalleeSavedRegisters`.
It will be used for both float and int types.
* Extend `genSaveCaleeSavedRegisterGroup` to support float.
The previous version was a copy-paste with an additional case for `REG_LR` that was unreachable. Fix that.
* Use `genSaveCaleeSavedRegisterGroup` for floats.
* Extract `genRestoreCaleeSavedRegisterGroup`.
It will be used for both int and float groups.
* Prepare `genPopCalleeSavedRegisters` to work with float.
* Use `genRestoreCaleeSavedRegisterGroup` for float.
* Check that `genRestoreCalleeSavedRegistersHelp` doesn't restore `REG_LR`.
Both callers do it later.
* Extract `CheckSPOffset`.
and move it out of loops because it works only before the first save intruction.
* Format `genRestoreCaleeSavedRegisterGroup` as `genSaveCalleeSavedRegistersHelp`.
* Extract `buildRegPairsStack` from `genSaveCaleeSavedRegisterGroup` and `genRestoreCaleeSavedRegisterGroup`.
Build a stack of registers that we want to save/restore and then iterate over it doing the actual saving/restoring.
* Extract `GetSlotSizeForRegsInMask`.
* Tolerate holes in arm64 prolog/epilog register masks.
Fixes #21363
* Reenable the test.
* Add new methods headers.
* Fix typos.
* Do not use non-const references.
* Describe `buildRegPairsStack` better.
* Change signature of `buildRegPairsStack` to avoid copyings of big structs.
* Return the logic for `RBM_LR`.
For future use.
* Clean-up some unused variables.
* Fix comments.
* Get rid of file-level functions.
* Make new methods static.
Koundinya Veluri [Fri, 21 Dec 2018 19:59:06 +0000 (11:59 -0800)]
Update tiering guide to reference the new TieredCompilation label (#21618)
Marek Safar [Fri, 21 Dec 2018 19:15:08 +0000 (20:15 +0100)]
Moves ByReference to shared CoreLib (#21633)
Jan Kotas [Fri, 21 Dec 2018 17:25:24 +0000 (09:25 -0800)]
Streamline default EqualityComparer and Comparer for Enums (#21604)
This borrows the implementation strategy for these from CoreRT. It makes it both simpler (fewer types and lines of code) and faster in some cases since we always use the exact right underlying type.
E.g. The following micro-benchmark is 25% faster with this change:
```
enum MyEnum : byte { x, y };
var comparer = Comparer<MyEnum>.Default;
for (int i = 0; i <
100000000; i++)
{
comparer.Compare(MyEnum.x, MyEnum.y);
comparer.Compare(MyEnum.y, MyEnum.x);
}
```
Tanner Gooding [Fri, 21 Dec 2018 15:45:24 +0000 (07:45 -0800)]
Updating gtGetSIMDZero to only return the NI_Base_VectorXXX_Zero node if they are supported by the compiler (#21605)
Tanner Gooding [Fri, 21 Dec 2018 15:44:50 +0000 (07:44 -0800)]
Updating `FusedMultiplyAdd` for `System.Math` and `System.MathF` to use intrinsics when available. (#21602)
* Removing the explicit value assignment to NamedIntrinsic enum values
* Renaming NI_Math_Round/NI_MathF_Round to NI_System_Math_Round/NI_System_MathF_Round
* Updating `FusedMultiplyAdd` for `System.Math` and `System.MathF` to use intrinsics when available
Fei Peng [Fri, 21 Dec 2018 15:14:08 +0000 (07:14 -0800)]
Implement the remaining BMI1/2 intrinsic (#21480)
* Add tests for BMI1/2 intrinsic
* Implement the remaining BMI1/2 intrinsic
* Fix emitDispIns for BMI instruction
Fei Peng [Fri, 21 Dec 2018 13:39:06 +0000 (05:39 -0800)]
Add AggressiveInlining for Vector<T>.op_Multiply (#21587)
Tomáš Rylek [Fri, 21 Dec 2018 04:40:38 +0000 (05:40 +0100)]
Fix "harmless" bug in ZapImport - use AppendByte to emit fixup type (#21621)
During my work on the CPAOT compiler I found out that in the past
I had believed we should use the compressed uint signature encoding
for emitting fixup types. This place may have contributed to my
mistake. I have audited all places in CoreCLR where signatures are
decoded and in all cases the fixup type is assumed to be a byte,
not a signature-compressed uint.
As I said, the bug is harmless (after all, Crossgen works) because
the enum code of READYTORUN_FIXUP_Helper is less than 128 and for
values 0-127 the compressed uint encoding is identical with the
byte value; I however believe it's useful to make this change
nonetheless for the sake of code clarity and to help avoid future
confusions similar to mine.
Eugene Rozenfeld [Thu, 20 Dec 2018 23:58:29 +0000 (15:58 -0800)]
Fix jit warning in crossgen desktop build.
mikedn [Fri, 21 Dec 2018 00:10:27 +0000 (02:10 +0200)]
Don't morph volatile IND(ADDR(LCL_VAR)) (#20843)
Besides the fact that volatile indirections aren't supposed to be removed doing so in this case results in incorrect code being generated.
The GT_IND node has GTF_DONT_CSE set and this gets copied to the GT_LCL_VAR node. Later this prevents the insertion of a normalization cast because GTF_DONT_CSE on a GT_LCL_VAR node is assumed to mean that the variable address is being taken.
Carol Eidt [Thu, 20 Dec 2018 23:40:55 +0000 (15:40 -0800)]
Merge pull request #21589 from CarolEidt/Fix21546
Transform SIMD8 to FIELD_LIST if promoted
dotnet-maestro-bot [Thu, 20 Dec 2018 19:46:42 +0000 (11:46 -0800)]
Update CoreClr, CoreFx to preview-27220-03, preview.18619.1, respectively (#21592)