Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from dotnet:main #46

Merged
merged 56 commits into from
Oct 2, 2023
Merged

[pull] main from dotnet:main #46

merged 56 commits into from
Oct 2, 2023

Conversation

pull[bot]
Copy link

@pull pull bot commented Sep 29, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

jkotas and others added 6 commits September 28, 2023 13:48
* Update dependencies from https://github.com/dotnet/installer build 20230927.3

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23474.1 -> To Version 9.0.100-alpha.1.23477.3

* [wasm] WBT: Update skiasharp reference

`blz_deploy_on_build_Debug_True_npl3f0nk_qee.csproj : error NU1903: Package 'SkiaSharp' 2.88.4-preview.76 has a known high severity vulnerability`

* Update dependencies from https://github.com/dotnet/installer build 20230927.26

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23474.1 -> To Version 9.0.100-alpha.1.23477.26

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Ankit Jain <[email protected]>
Resolves #78681 (or "there's nothing else we'd be willing to do for it"). This is the rest of what I implemented trying to get `SearchValues.Create(someVeryLongString)` to preinitialize. It doesn't actually enable more `SearchValues` scenarios because I eventually hit codepaths that would require us to implement hardware intrinsics support in the interpreter. The `SearchValues` scenarios that we do support were implemented in #92470 and #92666. But since I already implemented this, here it is; maybe it will be useful for something else:

* Support for modelling `Span<X>`, including creating it from stackalloc
* Support for math/comparisons with native int
* `Unsafe.Add`
* Flesh out TensorPrimitives XML docs

* Address PR feedback

- Remove use of FusedMultiplyAdd from all but CosineSimilarity
- Remove comments about platform/OS-specific behavior from Add/AddMultiply/Subtract/Multiply/MultiplyAdd/Divide/Negate
- Loosen comments about NaN and which exact one is returned

* Address PR feedback
@pull pull bot added the ⤵️ pull label Sep 29, 2023
rzikm and others added 23 commits September 29, 2023 10:22
The interference checking in lowering bases some of its checks on
GenTree::gtFlags. This is conservative since it includes effect flags of
operands. For LIR this does not really make sense and ends up being
conservative.

This PR replaces the relevant uses of gtFlags with a new
GenTree::OperEffects() that computes the relevant effect flags for the
node, excluding operands. We already know how to recompute effect flags
other than GTF_GLOB_REF and GTF_ORDER_SIDEEFF. This PR adds functions
for these as well (the GTF_GLOB_REF version
GenTree::OperRequiresGlobRefFlag is courtesy of @SingleAccretion).

For GTF_ORDER_SIDEEFF we add a GenTree::OperSupportsOrderingSideEffect
which captures explicitly (and conservatively) the current cases where
we are setting the flag, and only allows these cases to support the
flag. Setting the flag for other cases may result in the flag being
removed or ignored. There is a new `GenTree::SetHasOrderingSideEffect` to
add the flag which also asserts that it is only added for trees that are
supported.

Fix #92699
* [wasm] Supress policheck warning in blazor-sample

Replace the offending part in the layout name. I think the suit-spade
is false positive, I used just sp in place of spade to silence it.

* Feedback
- Removes unused functions
- Removes cmake configure checks for functions/headers that are no longer needed
- Renames HAVE_UWP_WINAPI_SUPPORT to HAVE_APP_WINAPI_SUPPORT
- Move MSVC warning disables into cmake so it is more visible

Co-authored-by: Johan Lorensson <[email protected]>
* Implement StoreVector128x2 for Arm64

* Remove redundant implmentations

* Implement StoreVector64x2 for Arm64

* Remove StoreVector64x2 implementation for Arm64

This reverts commit 49ef72e.

* Fix instruction type for the StoreVector128x2 intrinsic

* Review comments:

* Arrange APIs alphabetically

* Add StoreVector64x2

* fix the invalid instructions

* Add test cases

* Update src/coreclr/jit/hwintrinsicarm64.cpp

Co-authored-by: Bruce Forstall <[email protected]>

---------

Co-authored-by: Kunal Pathak <[email protected]>
Co-authored-by: Bruce Forstall <[email protected]>
Some operations would produce incorrect results if the same span was passed as both an input and an output.  When vectorization was employed but the span's length wasn't a perfect multiple of a vector, we'd do the standard trick of performing one last operation on the last vector's worth of data; however, that relies on the operation being idempotent, and if a previous operation has overwritten input with a new value due to the same memory being used for input and output, some operations won't be idempotent.  This fixes that by masking off the already processed elements.  It adds tests to validate in-place use works, and it updates the docs to carve out this valid overlapping.
In the original PR we could not get this this working due to some
conservative interference. This now does the right thing with #92710
merged.

Also change LowerCallMemcmp/LowerCallMemmove to return next node to
lower just to align it a bit more with other functions.
…92813)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Move it out of codegencommon.cpp and into scopeinfo.cpp.

This is both to centralize the code but also to reduce the size of
the very large codegencommon.cpp.
superpmi.py will pass this through from the `-jitoption` /
`-base_jit_option` / `-diff_jit_option` to superpmi.exe
`-jitoption` and `-jit2option`.

Currently, the format is `key=value`. I wrap invocation of superpmi.py
with Windows batch file scripting, which has an annoying problem of
"eating" the equals size `=`. This works around that problem. I can't
think of any case where `#` is needed in a key or value, hence that choice
as an additional option.
…ser (#92695)

* fix Common.Tests.GetPrettyName_CannotRead_ReturnsNull test for root user

* remove direct call to libc in Common.Tests.GetPrettyName_CannotRead_ReturnsNull

* Update src/libraries/Common/tests/Tests/Interop/OSReleaseTests.cs

* split Common.Tests.OSReleaseTests.GetPrettyName_CannotRead_ReturnsNull into two test cases

* replace ifs with ConditionalFact in Common.Tests.OSReleaseTests class

---------

Co-authored-by: Dan Moseley <[email protected]>
…230928.5 (#92817)

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23477.26 -> To Version 9.0.100-alpha.1.23478.5

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…uild 20230928.1 (#92814)

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23475.2 -> To Version 3.11.0-beta1.23478.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Set JitSplitFunctionSize to either 4 or 200 under new STRESS_UNWIND mode.
On some platforms, CodeGen::genCallFinally() will remove the jump between a finally block in a call-finally pair to its jump target if the target is its immediate successor in the block list (in other words, we just fall through). However, if we are doing hot/cold splitting, it is possible for the finally block to be the last hot block, and its target the first cold block. Thus, if the two are contiguous in the block list but in separate regions, we must always emit a jump.
* Vectorize TensorPrimitives.ConvertToSingle

* Address PR feedback
…ue. (#92835)

* Apply sequence equality comparison to the final Regex incremental value.

* Avoid using SequenceEqual
jkoritzinsky and others added 27 commits September 29, 2023 17:13
…ng on named mutexes (#92603)

* Include info about system call errors in some exceptions from operating on named mutexes

- Added new PAL APIs for creating and opening mutexes that take a string buffer for system call error info. These are called with a stack-allocated buffer and upon error the system call errors are appended to the exception message.
- When there is a system call failure that leads to the PAL API failing, some info is appended to the error string, including the system call, relevant arguments, return value, and `errno`
- `chmod` on OSX seemingly can be interrupted by signals, fixed to retry. Also fixed a couple other small things.

Fixes #89090
…via-symbols for it (#92555)

* [amd64/arm64] Split off patched code into separate .S file and disable subsections-via-symbols for it

* [amd64/arm64] Split off patched code into separate .asm file

[arm64] Move JIT_UpdateWriteBarrierState out of the patched region to match implementation in .S file

* Remove NO_SUBSECTIONS_VIA_SYMBOLS
Fix prolog handling in the case where the in-body destination register
for an HFA overlaps with one of the HFA argument registers. For instance
the HFA is passed in `s0-s3` and needs to end up in `v3`.

This requires special handling because the dependence analysis done in
`genFnPrologCalleeRegArgs` only tracks entire registers, not parts of
registers.

Fixes #83167
* Update targetingpacks.targets

The .NET 8 Preview 6 SDK has the features required to simplify the targetingpacks.targets logic.

* Update targetingpacks.targets

* Update targetingpacks.targets

* Update known items

* Update targetingpacks.targets

* Update targetingpacks.targets
* [wasm] Add support for installing V8

* [wasm] Use provisioned v8 for library tests

* [wasm] WBT: Use provisioned v8

* [wasm] enable use of provisioned v8 for library tests

* [wasm] add MSBUILD_ARGS for build-runtime-tests make target

* update docs

* Don't install v8 for runtime tests

* [wasm] CI: trigger library test jobs when chrome version changes

* Disable provisioning v8 when building runtime tests

* address review feedback

* [wasm] Disable installing v8 for runtime tests

* Address review feedback

* fix stamping for v8
These showed up in ASP.NET Stage1 and were low hanging enough.
[main] Update dependencies from dotnet/emsdk dotnet/sdk
* Update dependencies from https://github.com/dotnet/installer build 20230929.5

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23478.5 -> To Version 9.0.100-alpha.1.23479.5

* Update dependencies from https://github.com/dotnet/installer build 20230929.5

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23478.5 -> To Version 9.0.100-alpha.1.23479.5

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…addr. (#92658)

The previous code would spill the valuetype when it was passed by addr,
and another bblock could try to read from the unitialized stack location.
#92694)

* [RISC-V] Fix target type unsignedness detection in genFloatToIntCast()

treeNode->gtFlags & GTF_UNSIGNED means unsignedness of the source type. Use varTypeIsUnsigned instead which checks for VTF_UNS on target type classification.

Fixes TryConvertToSaturatingUInt64Test and TryConvertToTruncatingUInt64Test from System.Runtime.Numerics.ComplexTests_GenericMath.

* Fix compilation without FEATURE_TIERED_COMPILATION
…92403)

* Remove duplicated marshaling of return value for JSExport
* Move unmarshal and return value marshal into try block
* Update intellisense.targets

* Update System.Text.Json.csproj
* Ensure the adapter name 100% matching when parsing proc/net/dev

* Update src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Statistics.cs

Co-authored-by: Miha Zupan <[email protected]>

* Move the stackalloc out of the loop

* Update src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Statistics.cs

Co-authored-by: Miha Zupan <[email protected]>

---------

Co-authored-by: Miha Zupan <[email protected]>
This should improve the startup perf and size.
The latest build of VS carries a C/C++ compiler which produces warning C5271:
```
src\native\corehost\test\ijw\ijw.cpp(6): warning C5271: consider replacing #using <System.Console.dll>  with command line argument /FU "F:\dotnet\runtime2\.dotnet\packs\Microsoft.NETCore.App.Ref\8.0.0-rc.1.23414.4\ref\net8.0\System.Console.dll"
src\native\corehost\test\ijw\ijw.cpp(7): warning C5271: consider replacing #using <System.Runtime.Loader.dll>  with command line argument /FU "F:\dotnet\runtime2\.dotnet\packs\Microsoft.NETCore.App.Ref\8.0.0-rc.1.23414.4\ref\net8.0\System.Runtime.Loader.dll"
```

This breaks the build on Windows. For now I'm disabling the warning as the real fix is more complex (we would need to calculate the path to the required assemblies in CMake somehow).
.. on CI, or in a container (like codespaces).
Without this it would be `true` on macOS by default, and then fail with:
`error : V8 provisioning only supported on Linux, and windows.`
@sysfce2 sysfce2 merged commit 1780220 into sysfce2:main Oct 2, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Dec 9, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.