Jarret Shook [Wed, 17 Apr 2019 18:06:16 +0000 (11:06 -0700)]
Add lvIsImplicitByRef information to lvaSetStruct (#19223)
Before implicit byrefs were tracked by setting lvIsParam and lvIsTemp.
This change explicitly adds a flag for implicitByRef instead of overloading.
In addition, it fixes the decision to copy an implicitByRef for arm64 varargs.
Temporarily bump weight on byref params to match old behavior and avoid codegen
diffs.
Re-enabled various tests and parts of tests.
Closes #20046
Closes #19860
Tarek Mahmoud Sayed [Wed, 17 Apr 2019 16:54:51 +0000 (17:54 +0100)]
Update the types consumers of Index and Range (#24036)
* Update the types consumers of Index and Range
The C# compiler now can automatically support the indexers with Index and Range parameters on any type meet the conditions:
- The type exposes Length or Count property which returning integer.
- The type has indexer of integer parameter.
- The type has a Slice method which takes 2 integers
The change here is to remove the methods and indexers of the types which we previously added it as the compiler will automatically provide those.
* Remove the JIT failing test
Omair Majid [Wed, 17 Apr 2019 03:18:37 +0000 (23:18 -0400)]
Fix a ZeroMemory call in methodcontext.cpp (#23843)
The argument is of type `GetArgTypeValue` and so the `sizeof()` should be
done on `GetArgTypeValue`, not on the different type `GetArgType`.
Next Turn [Wed, 17 Apr 2019 03:17:33 +0000 (11:17 +0800)]
Nit: Update comment (#23896)
dotnet-maestro-bot [Wed, 17 Apr 2019 03:15:18 +0000 (20:15 -0700)]
Update CoreClr to preview5-27616-71 (#24020)
dotnet-maestro[bot] [Wed, 17 Apr 2019 03:14:41 +0000 (20:14 -0700)]
Update dependencies from https://github.com/dotnet/corefx build
20190415.16 (#24030)
- Microsoft.NETCore.Platforms - 3.0.0-preview5.19215.16
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19215.16
dotnet-maestro[bot] [Wed, 17 Apr 2019 03:14:22 +0000 (20:14 -0700)]
Update dependencies from https://github.com/dotnet/arcade build
20190415.12 (#24029)
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19215.12
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19215.12
Jeremy Koritzinsky [Wed, 17 Apr 2019 03:13:29 +0000 (20:13 -0700)]
Remove limits on IVT public key lengths. (#24042)
Tanner Gooding [Wed, 17 Apr 2019 03:13:12 +0000 (20:13 -0700)]
Changing Math.Max, Math.Min, Math.MaxMagnitude, and Math.MinMagnitude to propagate NaN inputs (#24039)
Levi Broderick [Wed, 17 Apr 2019 03:12:12 +0000 (20:12 -0700)]
Fix incorrect EHCount calculation (#24048)
Jan Vorlicek [Wed, 17 Apr 2019 03:11:35 +0000 (05:11 +0200)]
Fix incorrect thread affinitization (#24045)
The PAL_SetCurrentThreadAffinity was incorrectly adding the specified processor
to the current thread affinity set instead of setting the affinity to only
the processor specified.
It was causing significant performance hit in aspnet benchmarks on machines with
many cores.
This change crept in when I was refactoring the related code while removing
CPU groups emulation.
José Rivero [Wed, 17 Apr 2019 01:58:31 +0000 (18:58 -0700)]
[EventPipe] Minor bug fixes, and remove redundant/unused code. (#23956)
- Update MicrosoftDiagnosticsTracingTraceEventPackageVersion
- Delete connection if the request is unknown/unhandled
- Adding missing error handling.
- Provider names must be defined.
- Some renaming, error handling, and build warnings.
- Removing test code, and merge EventPipe::Enable functions.
- Remove commented/non-used lines.
Bruce Forstall [Tue, 16 Apr 2019 23:28:49 +0000 (16:28 -0700)]
Merge pull request #24037 from BruceForstall/ReduceStackRequirement
Reduce stack requirements of test
Sergey Andreenko [Tue, 16 Apr 2019 21:52:15 +0000 (14:52 -0700)]
Merge pull request #24002 from sandreenko/fixDesktopFailure
Another surgery fix for genPutArgStk to fix desktop build.
Sergey Andreenko [Tue, 16 Apr 2019 19:48:27 +0000 (12:48 -0700)]
Merge pull request #23947 from sandreenko/reenableSystem.ComponentModel.Composition.Tests
Reenable System.ComponentModel.Composition.Tests arm64 Windows.
Bruce Forstall [Tue, 16 Apr 2019 18:52:04 +0000 (11:52 -0700)]
Reduce stack requirements of test
Fixes #24021
Sergey Andreenko [Tue, 16 Apr 2019 18:12:13 +0000 (11:12 -0700)]
Use lvaGetDesc.
Egor Chesakov [Tue, 16 Apr 2019 16:49:38 +0000 (09:49 -0700)]
Downgrade xUnit package version (#23944)
* Use the same version of xUnit that arcade uses (2.4.1-pre.build.4059)
Carol Eidt [Tue, 16 Apr 2019 16:35:49 +0000 (09:35 -0700)]
Arm64 vector ABI (#23675)
* Support for Arm64 Vector ABI
Extend HFA support to support vectors as well as floating point types.
This requires that the JIT recognize vector types even during crossgen,
so that the ABI is supported consistently.
Also, fix and re-enable the disabled Arm64 Simd tests.
Fix #16022
Steve MacLean [Tue, 16 Apr 2019 15:23:43 +0000 (11:23 -0400)]
Test remove ContextualReflectionProxy (#24006)
Steve MacLean [Tue, 16 Apr 2019 15:20:31 +0000 (11:20 -0400)]
Update ContextualReflection doc (#24018)
* Update ContextualReflection doc
* PR Feedback
Omair Majid [Tue, 16 Apr 2019 14:43:09 +0000 (10:43 -0400)]
Use delete [] on array types (#24027)
Calling delete on types allocated with new[] leads to undefined
behaviour.
Filip Navara [Tue, 16 Apr 2019 13:52:53 +0000 (15:52 +0200)]
Move EventSource to shared CoreLib partition (#23925)
* Move most of EventSource to shared CoreLib partition
* Reenable some code that can be shared with Microsoft.Diagnostics.Tracing.EventSource.Redist in CoreFX
* Remove unused functions
* Fix placement of #endregion
* Clean up P/Invoke prototypes
* Move remaining code from EventSource_CoreCLR to shared partition (guarded by !CORERT)
* Remove more unnecessary marshalling attributes
* Move remaining CoreRT/ProjectN code to shared partition
* Avoid using Windows errors on non-Windows platforms
Sergey Andreenko [Tue, 16 Apr 2019 08:49:23 +0000 (01:49 -0700)]
Merge pull request #24009 from sandreenko/fixLsraBlockEpochCheck
Fix lsraBlockEpoch check.
Omair Majid [Tue, 16 Apr 2019 05:14:48 +0000 (01:14 -0400)]
Use NewArrayHolder for array types in src/debug (#24013)
Using a NewHolder with array types means that when the holder is ready
to release the memory, it ends up invoking `delete` (instead of
`delete[]`) on that array. This is an undefined behaviour.
Use NewArrayHolder isntead to fix this.
Omair Majid [Tue, 16 Apr 2019 05:12:39 +0000 (01:12 -0400)]
Use NewArrayHolder for array types (#24017)
This touches all the code outside of src/debug/.
Using a NewHolder with array types means that when the holder is ready
to release the memory, it ends up invoking `delete` (instead of
`delete[]`) on that array. This is an undefined behaviour.
Use NewArrayHolder instead to fix this.
Egor Chesakov [Tue, 16 Apr 2019 04:07:33 +0000 (21:07 -0700)]
Fix an issue with literal 0xFFFFFFFFFFFFF000LL being treated as unsigned long long int (#24011)
Adeel Mujahid [Tue, 16 Apr 2019 02:36:44 +0000 (03:36 +0100)]
Update clr-configuration-knobs and cleanups (#24016)
Levi Broderick [Tue, 16 Apr 2019 01:28:39 +0000 (18:28 -0700)]
Fix incorrect bit match pattern in UTF-16 validation (#24015)
Jan Kotas [Tue, 16 Apr 2019 00:37:41 +0000 (17:37 -0700)]
Fold ResourceSet::CommonInit into constructor (#23993)
Sergey Andreenko [Mon, 15 Apr 2019 22:38:44 +0000 (15:38 -0700)]
Fix lsraBlockEpoch check.
Steve MacLean [Mon, 15 Apr 2019 23:59:36 +0000 (19:59 -0400)]
Initialize IsolatedComponentLoadContext.Name (#24001)
Egor Bogatov [Mon, 15 Apr 2019 23:44:04 +0000 (02:44 +0300)]
Add "partial" to MarshalAsAttribute (#24014)
Jan Kotas [Mon, 15 Apr 2019 23:30:00 +0000 (16:30 -0700)]
Delete unused YieldProcessorScalingFactor from GC (#23994)
Jan Kotas [Mon, 15 Apr 2019 23:29:41 +0000 (16:29 -0700)]
Remove redundant UnderlyingSystemType calls (#24000)
UnderlyingSystemType is virtual
Fadi Hanna [Mon, 15 Apr 2019 23:25:16 +0000 (16:25 -0700)]
Check for null methodhandle before checking if the method is in the same version bubble (#23940)
Sergiy Kuryata [Mon, 15 Apr 2019 23:07:35 +0000 (16:07 -0700)]
Fix precompiling CoreRoot overlay with crossgen for Windows arm/arm64 (#23946)
Jeremy Koritzinsky [Mon, 15 Apr 2019 22:54:51 +0000 (15:54 -0700)]
Opt COM methods out of the new Windows instance-method handling. (#23974)
* Opt COM methods out of the new Windows instance-method handling.
* Add test for an HResult "struct" returned from a COM method.
* Update ErrorMarshalTesting.cs
* Update "is member function" check on the ilmarshalers.h side to only consider thiscall.
Benjamin Bartels [Mon, 15 Apr 2019 22:09:10 +0000 (23:09 +0100)]
Improved performance of System.Reflection.Emit API (#23833)
* Improved performance of System.Reflection.Emit API
* Moved heap allocation to stack
* Eliminating conditional branch by casting sbyte to byte
* Reduced heap allocation of ScopeTree
* Removed redundant `unsafe` from function signature
Sergey Andreenko [Mon, 15 Apr 2019 20:25:43 +0000 (13:25 -0700)]
Get rid of varNumInp.
Sergey Andreenko [Mon, 15 Apr 2019 19:15:26 +0000 (12:15 -0700)]
Another surgery fix for genPutArgStk to fix desktop build.
Vladimir Sadov [Mon, 15 Apr 2019 18:27:02 +0000 (18:27 +0000)]
Merge pull request #23981 from VSadov/arm32fix22422
Adjust plug_size_to_fit to consider large alignment on ARM32
Bruce Forstall [Mon, 15 Apr 2019 18:22:35 +0000 (11:22 -0700)]
Merge pull request #23996 from BruceForstall/Fix64BitAlignment
Fix test for 64-bit platforms
Bruce Forstall [Mon, 15 Apr 2019 18:19:39 +0000 (11:19 -0700)]
Fix test for 64-bit platforms
Object type in structs apparently must be 8 byte aligned.
Fixes #23986
dotnet-maestro[bot] [Mon, 15 Apr 2019 18:09:39 +0000 (11:09 -0700)]
[master] Update dependencies from dotnet/arcade (#23977)
* Update dependencies from https://github.com/dotnet/arcade build
20190414.2
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19214.2
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19214.2
dotnet-maestro[bot] [Mon, 15 Apr 2019 18:08:58 +0000 (11:08 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build
20190414.10 (#23990)
- Microsoft.NETCore.App - 3.0.0-preview5-27614-10
dotnet-maestro-bot [Mon, 15 Apr 2019 16:39:47 +0000 (09:39 -0700)]
Update CoreClr to preview5-27615-71 (#23991)
dotnet-maestro[bot] [Mon, 15 Apr 2019 16:07:41 +0000 (09:07 -0700)]
Update dependencies from https://github.com/dotnet/corefx build
20190414.16 (#23989)
- Microsoft.NETCore.Platforms - 3.0.0-preview5.19214.16
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19214.16
Marco Rossignoli [Mon, 15 Apr 2019 03:01:31 +0000 (05:01 +0200)]
improve entropy (#23591)
dotnet-maestro-bot [Mon, 15 Apr 2019 02:51:06 +0000 (19:51 -0700)]
Update CoreClr to preview5-27614-72 (#23985)
Gergely Kalapos [Mon, 15 Apr 2019 02:44:53 +0000 (04:44 +0200)]
Fix typo in environment variable name - profiler loading doc (#23983)
Raz Friman [Mon, 15 Apr 2019 01:29:10 +0000 (11:29 +1000)]
Remove unused offset calculation (#23793)
Utf8Parser has a redundant calculation of date time offset.
Fix #21834
Levi Broderick [Mon, 15 Apr 2019 01:26:05 +0000 (18:26 -0700)]
Remove old method names from Rune (#23938)
* Remove old method names from Rune, reenable suppressed tests
* Revert re-enablement of failing ArraySegment tests
vsadov [Sun, 14 Apr 2019 21:21:28 +0000 (14:21 -0700)]
Removed support for short plug padding in `fit`.
Best fit is only done for gen1->gen2, and thus there is no padding.
dotnet-maestro-bot [Sun, 14 Apr 2019 20:49:39 +0000 (13:49 -0700)]
Update CoreClr to preview5-27614-71 (#23978)
vsadov [Sun, 14 Apr 2019 18:02:35 +0000 (11:02 -0700)]
Adjust plug_size_to_fit to consider large alignment om ARM32
Gergely Kalapos [Sun, 14 Apr 2019 17:16:24 +0000 (19:16 +0200)]
Fix broken new lines (#23979)
These files don't render correctly on github due to broken new lines - fixing it. Only new line characters replaced, nothing else touched.
Jan Kotas [Sun, 14 Apr 2019 04:54:08 +0000 (21:54 -0700)]
Move GCMemoryInfo to shared partition
Jan Kotas [Sat, 13 Apr 2019 21:10:26 +0000 (14:10 -0700)]
Fix AssemblyName regression
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Sat, 13 Apr 2019 16:36:03 +0000 (09:36 -0700)]
Move GCMemoryInfo to shared partition
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
dotnet-maestro-bot [Sun, 14 Apr 2019 03:18:15 +0000 (20:18 -0700)]
Update BuildTools, CoreClr to preview4-03913-01, preview5-27612-73, respectively (master) (#23916)
* Update BuildTools, CoreClr to preview4-03913-01, preview5-27612-73, respectively
* Fix nullable build errors
Jan Kotas [Sun, 14 Apr 2019 03:15:48 +0000 (20:15 -0700)]
Delete unused AssemblyName._hashForControl and related code (#23972)
Steve MacLean [Sat, 13 Apr 2019 23:03:56 +0000 (19:03 -0400)]
EnterContextualReflection handle null (#23953)
* EnterContextualReflection handle null
* Add ContextualReflection MockAssembly test
* Fix ContextualReflection typo
Egor Chesakov [Sat, 13 Apr 2019 19:09:53 +0000 (12:09 -0700)]
Use xUnit TestOutputHelper to get proper test output in Azure DevOps Tests Explorer (#23957)
Jan Kotas [Sat, 13 Apr 2019 19:07:09 +0000 (12:07 -0700)]
Delete outdated comment (#23967)
Next Turn [Sat, 13 Apr 2019 19:06:35 +0000 (03:06 +0800)]
Remove unnecessary ThrowIfCreated call (#23839)
dotnet-maestro[bot] [Sat, 13 Apr 2019 19:04:11 +0000 (12:04 -0700)]
[master] Update dependencies from dotnet/arcade (#23926)
* Update dependencies from https://github.com/dotnet/arcade build
20190412.2
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19212.2
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19212.2
mikedn [Sat, 13 Apr 2019 17:39:20 +0000 (20:39 +0300)]
Fix ARM's genPutArgStk codegen (#23867)
* Fix ARM's genPutArgStk codegen
When the OBJ node wraps a LCL_VAR node the code uses the type information (struct size, GC layout) from LclVarDsc. This is not always correct because the OBJ may actually have a different struct type due to type reinterpretation (e.g. Unsafe.As<X, Y>).
* Fix genPutArgStk comment
Bruce Forstall [Sat, 13 Apr 2019 17:34:26 +0000 (10:34 -0700)]
Merge pull request #23948 from BruceForstall/Fix23920
Update maximum allowed arm prolog size
Filip Navara [Sat, 13 Apr 2019 15:17:04 +0000 (17:17 +0200)]
Move DateTime Windows implementation to shared CoreLib (#23888)
* Move DateTime Windows implementation to shared CoreLib
* Make all the BOOL/struct marshalling explicit
* internal -> private
* Use unsafe code on all layers, remove unnecessary fixed blocks
Jan Kotas [Sat, 13 Apr 2019 15:13:04 +0000 (08:13 -0700)]
Delete outdated comment
dotnet-maestro[bot] [Sat, 13 Apr 2019 15:10:29 +0000 (08:10 -0700)]
Update dependencies from https://github.com/dotnet/corefx build
20190412.14 (#23964)
- Microsoft.NETCore.Platforms - 3.0.0-preview5.19212.14
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19212.14
Jan Kotas [Sat, 13 Apr 2019 15:09:31 +0000 (08:09 -0700)]
Delete COMPlus_FinalizeOnShutdown (#23595)
This compat quirk is increasingly more broken since the framework is generally not compatible with, and we have not heard anybody actually using it.
Changed Environment.HasShutdownStarted to unconditionally return false. It does not make sense for it to ever return true with shutdown finalization disabled.
Egor Chesakov [Sat, 13 Apr 2019 01:09:41 +0000 (18:09 -0700)]
Exclude ResolveEventTests.cmd and CallbackTests.cmd on Windows_NT x86 (#23942)
Bruce Forstall [Sat, 13 Apr 2019 01:04:41 +0000 (18:04 -0700)]
Merge pull request #23935 from BruceForstall/FixArm64LargeOutgoingWithLocalloc
Fix arm64 localloc with large outgoing argument space
Sung Yoon Whang [Sat, 13 Apr 2019 00:11:49 +0000 (17:11 -0700)]
Fix EventPipe IPC streaming (#23768)
* Make events stream out faster when we are doing IPC
* Block size should be less during IPC session
* Modify some comments
* Address PR feedback
* more pr feedback
* Fix high volume scenario
* Fix flush
* cleanup
* Only flush when we have buffers written
Bruce Forstall [Fri, 12 Apr 2019 23:54:55 +0000 (16:54 -0700)]
Fix x86 stack probing (#23881)
* Fix x86 stack probing
On x86, structs are passed by value on the stack. We copy structs
to the stack in various ways, but one way is to first subtract the
size of the struct and then use a "rep movsb" instruction. If the
struct we are passing is sufficiently large, this can cause us to
miss the stack guard page.
So, introduce stack probes for these struct copies.
It turns out the stack pointer after prolog probing can be sitting
near the very end of the guard page (one `STACK_ALIGN` slot before
the end, which allows a "call" instruction which pushes its
return address to touch the guard page with the return address push).
We don't want to probe with every argument push, though. So change
the prolog probing to insert an "extra" touch at the final SP location
if the previous touch was "too far" away, leaving at least some
buffer zone for un-probed SP adjustments. I chose this to be the
size of the largest SIMD register, which also can get copied to the
argument stack with a "SUB;MOV" sequence.
Added several test case variations showing different large stack
probe situations.
Fixes #23796
* Increase the argument size probe buffer
* Formatting
dotnet-maestro[bot] [Fri, 12 Apr 2019 23:40:50 +0000 (16:40 -0700)]
[master] Update dependencies from dotnet/corefx (#23893)
* Update dependencies from https://github.com/dotnet/corefx build
20190411.2
- Microsoft.NETCore.Platforms - 3.0.0-preview5.19211.2
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19211.2
* Update dependencies from https://github.com/dotnet/corefx build
20190411.22
- Microsoft.NETCore.Platforms - 3.0.0-preview5.19211.22
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19211.22
* Removing renamed HWIntrinsic APIs from S.P.Corelib
* Updating the hwintrinsiclistxarch to match the new intrinsic API names
* Updating the HWIntrinsic generated tests to use the new API names
Egor Chesakov [Fri, 12 Apr 2019 23:33:54 +0000 (16:33 -0700)]
Add R2R prefix to TestRunNamePrefix when running ReadyToRun jobs (#23945)
Jan Vorlicek [Fri, 12 Apr 2019 21:55:07 +0000 (23:55 +0200)]
Fix OSX debugging (#23924)
A recent change has incorrectly added dependency on libcoreclrpal.a to
libutilcodenohost.a. This in turn, due to the transitive propagation of
dependencies, caused the libmscordbi to be linked with libcoreclrpal.a.
So libmscordbi contained its own PAL after that change, which is wrong.
libmscordbi should depend on PAL APIs through libmscordaccore that
exports the symbols it needs for it in order to keep just one PAL in the
process.
The fix is to remove the libcoreclrpal.a dependency and export few
new symbols from libmscordaccore instead.
Thays Grazia [Fri, 12 Apr 2019 21:49:26 +0000 (18:49 -0300)]
Fix DIM Test to run on mono (#23870)
Changing the test to run on runtimes that supports lookups with runtime determined boxing and on runtimes that doesn't support.
Bruce Forstall [Fri, 12 Apr 2019 20:19:14 +0000 (13:19 -0700)]
Display the arm instruction size
When dumping an arm instruction, and when we don't have the actual
code bytes (such as during code generation, as opposed to emission),
display the (current) instruction size, either 2 bytes (2B),
4 bytes (4B), or 6 bytes (6B).
Bruce Forstall [Fri, 12 Apr 2019 20:15:42 +0000 (13:15 -0700)]
Update maximum allowed arm prolog size
Change #23715 changed the localloc stack probe loop to load a
negative constant instead of zero to start the probing loop.
This increased the size of the probing loop, and hence the
size of the maximum prolog, by 4 bytes. Bump the assert on
the maximum size to match.
Note that as the comment says, the maximum size there is not
actually a maximum (it was originally), it is just to alert
us when the maximum generated prolog size has gone up.
Fixes #23920
Sergey Andreenko [Fri, 12 Apr 2019 20:15:28 +0000 (13:15 -0700)]
Reenable System.ComponentModel.Composition.Tests arm64 Windows.
Carol Eidt [Fri, 12 Apr 2019 18:31:55 +0000 (11:31 -0700)]
Don't Free UpperVector (#23889)
* Don't Free UpperVector
UpperVector regs are freed at their time of use, and shouldn't be freed when the last RefPosition is encountered.
Also, we need to specify all 3 operands for vinsertf128
Fix #23861
Fix #23904
Fix #23804
Bruce Forstall [Fri, 12 Apr 2019 17:50:56 +0000 (10:50 -0700)]
Fix arm64 localloc with large outgoing argument space
With a large outgoing argument space, we were attempting to
generate un-encodable ADD and SUB instructions. Call an existing
helper instead that uses the reserved register when needed to
load large constants into a register.
bdebaere [Fri, 12 Apr 2019 16:29:44 +0000 (18:29 +0200)]
Consolidate duplicate assignment (#23923)
* Consolidate duplicate assignment.
Sergiy Kuryata [Fri, 12 Apr 2019 16:00:04 +0000 (09:00 -0700)]
Merge pull request #23900 from sergiy-k/fixcrossarchr2r1
Enable precompiling CoreRoot overlay with crossgen for Linux arm/arm64
Stephen Toub [Fri, 12 Apr 2019 13:39:40 +0000 (09:39 -0400)]
Add several links to deep-dive blog posts
Andy Ayers [Fri, 12 Apr 2019 07:44:39 +0000 (00:44 -0700)]
JIT: update byref null check logic to handle field chains (#23850)
The jit was not properly accumulating offsets when figuring out if a byref
should be null checked.
Use a non-null MorphAddressContext as indication that GT_FIELD and GT_IND
nodes are actually part of an ongoing address computation.
During field morphing propagate the current address context to the child node,
instead of starting a new one.
Fixes #23791.
Sergiy Kuryata [Thu, 11 Apr 2019 16:54:49 +0000 (09:54 -0700)]
Enable precompiling CoreRoot overlay with crossgen for Linux arm/arm64
Egor Chesakov [Fri, 12 Apr 2019 05:50:48 +0000 (22:50 -0700)]
Enable default Ready2Run testing in pull requests. Workaround an issue with custom xunit.console.dll runner. (#23848)
bdebaere [Fri, 12 Apr 2019 05:32:56 +0000 (07:32 +0200)]
Remove duplicates. (#23922)
Levi Broderick [Fri, 12 Apr 2019 03:50:16 +0000 (20:50 -0700)]
Add optimized UTF-8 validation and transcoding apis, hook them up to UTF8Encoding (#21948)
* Add optimized UTF-8 validation and transcoding logic
- Hook it up through the existing Utf8 public static APIs
- Move some shared methods out of ASCIIUtility
- Hook it up through the Utf8String ctor
* Hook up new UTF-8 logic through UTF8Encoding
- Add vectorized UTF-16 validation and transcoded byte counts
- Move Utf16Utility into Unicode namespace alongside Utf8Utility
- Fix some bugs in DecoderNLS's draining logic
* Improve perf of "is ASCII?" inner loop in UTF-8 validation.
* Remove SSE41.X64 optimization from AsciiUtility
RyuJIT now handles this optimally
* Clarify that vector read is unaligned
* Simplify vectorized logic; remove unnecessary adjustment
* PR feedback: GetElement(0) -> Sse2.StoreLow
* PR feedback
- Simplify CountNumberOfLeadingAsciiBytesFrom24BitInteger
- Extract some consts out to top of file w/ comments
* PR feedback: Enable SSE2 in Utf16Utility code
* Expand masks in Utf8Utility, fix const in fallback path
* Temporarily disable failing CoreFX tests
* Fix incorrect Debug.Assert statements
* Add comments tracking JIT workarounds.
* Rename DWORD -> UInt32 throughout API surface
* Re-flow Utf8Utility.Helpers
* PR feedback: Fix typos
* PR feedback: CountNumberOfLeadingAsciiBytesFrom24BitInteger
* PR feedback: Remove redundant endianess checks
* PR feedback: Validate nint definitions
* PR feedback: Clarify charIsNonAscii vector usage
* PR feedback: document tempUtf8CodeUnitCountAdjustment usage
* Fix compilation failure in Utf16Utility
* PR feedback: Clarify 3-byte sequence processing
* Add missing check to 3-byte processing logic
* Clarify comment in 3-byte processing
Steve MacLean [Fri, 12 Apr 2019 03:48:59 +0000 (23:48 -0400)]
Fix Assembly.LoadFromPartialName(string) (#23912)
Assembly.LoadFromPartialName(string) should not throw FileNotFoundException, but
should rather return null.
ArgumentException should use nameof(partialName)
Fixes #19817
dotnet-maestro-bot [Fri, 12 Apr 2019 00:47:59 +0000 (17:47 -0700)]
Update CoreClr to preview5-27611-71 (#23884)
Stephen Toub [Fri, 12 Apr 2019 00:47:35 +0000 (20:47 -0400)]
Fix Version's comparer operators to allow null (#23898)
Previously for `<`/`<=` it would throw if `v1` argument was null, but for `>`/`>=` would throw if the `v1` argument was null, albeit using `v1` in the exception parameter name. It's also not expected for comparisons like this to throw, in general.
Steve MacLean [Fri, 12 Apr 2019 00:28:25 +0000 (20:28 -0400)]
Fix 23740 (#23906)
Adjust AssemblyLoadContextBaseObject packing for
windows arm.
Andy Ayers [Thu, 11 Apr 2019 23:45:30 +0000 (16:45 -0700)]
JIT: fix assert when there are mixed types in Enum.HasFlags optimization (#23902)
In some cases the pre-boxed nodes may differ in type. Bail if they don't have
the same stack type, then compute the result using the stack type.
Extended the hasflags test with a case that shows this issue.
Closes #23847
Levi Broderick [Thu, 11 Apr 2019 22:36:47 +0000 (15:36 -0700)]
Clarify comment in 3-byte processing