Skip to content

[pull] main from dotnet:main#103

Merged
pull[bot] merged 18 commits intosysfce2:mainfrom
dotnet:main
Feb 20, 2024
Merged

[pull] main from dotnet:main#103
pull[bot] merged 18 commits intosysfce2:mainfrom
dotnet:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Feb 20, 2024

See Commits and Changes for more details.


Created by pull[bot]

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

pavelsavara and others added 18 commits February 19, 2024 08:34
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Remove the C code responsible for generating the backward_branch_offsets table stored in InterpMethod that was used by the jiterpreter.
Add a new pre-pass to the jiterpreter that does a quick opcode scan to find back-branch targets on the fly when a trace is actually being compiled.
Reimplement interpreter branch decoding in a central place in the jiterpreter, and generalize it based on opcode info tables instead of a bunch of hand-written decode logic.
Remove some dead options and dead code from the jiterpreter typescript.
Fix an enum that got out of sync.
Minor debug logging improvements.
Similar to debian-based distros, make it convenient for someone trying
to use slim alpine image for non-x64 architectures (without
cross-compilation). e.g. for arm64:
```sh
$ docker run --rm -v$(pwd):/runtime -w /runtime \
    --platform linux/arm64 -it alpine \
    sh -c 'eng/install-native-dependencies.sh && ./build.sh'
```
* Update dependencies from https://github.com/dotnet/runtime build 20240215.1

Microsoft.DotNet.ILCompiler , Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Reflection.Metadata , System.Reflection.MetadataLoadContext , System.Text.Json , Microsoft.SourceBuild.Intermediate.runtime.linux-x64
 From Version 9.0.0-preview.2.24111.9 -> To Version 9.0.0-preview.2.24115.1

* Update dependencies from https://github.com/dotnet/runtime build 20240215.1

Microsoft.DotNet.ILCompiler , Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Reflection.Metadata , System.Reflection.MetadataLoadContext , System.Text.Json , Microsoft.SourceBuild.Intermediate.runtime.linux-x64
 From Version 9.0.0-preview.2.24111.9 -> To Version 9.0.0-preview.2.24115.1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Marek Fišera <mara@neptuo.com>
#98563)

Part of #93020. This is a first step in a broader effort to replace BasicBlock's jump targets (bbTarget, bbFalseTarget, etc.) with successor flow edges. This PR also adds overloaded implementations for commonly used edge maintenance methods (fgReplacePred, fgRemoveRefPred, etc.) that can take advantage of the cheap access to successor edges (i.e. without calling fgGetPredForBlock -- hopefully we'll be able to get rid of that at some point).
* Prevent incorrect constant folding of binary operations involving handle and integer

* Fix the conditions for null nodes

* Fix the last commit for non-GT/GE/LT/LE

* Make JIT format happy

* More conservative approach. Limit only arithmetic operations involving handles in a relocatable code.
* Alternative fix for ARM64 signed small type cmpxchg without LSE

Better fix for #97839.

* Update importercalls.cpp

* Update importercalls.cpp

* Add comment
* Remove unnecessary assertion

It fired a false positive when W^X was enabled

* Use uint32 write instead of memcpy to be faster

There shouldn't be a problem when we introduce compressed instructions, VF2 supports unaligned stores (sw)
Also, replace compile-time conditions with static_asserts.

* Bring back memcpy because plain RV64 ISA allows trapping on misaligned load/stores
* Fix bug in arm64 LazyMachState unwindFix bug in arm64 LazyMachStateunwind

When we were enabling the mac M1 couple of years ago, a bug has creeped
in that causes a race in lazy machine state unwinding. The
LazyMachState::setLazyStateFromUnwind was incorrectly modifying the
captured state, so in case multiple threads were racing for the unwind,
a thread that came at a time when part of the captured state was
modified and before the `_isValid` was set would start unwinding from a
wrong state (the partial unwound one), effectively unwinding twice.

I've hit this in CI for enabling the new exception handling, as it
results in an assert when comparing the resulting address of the
floating point registers unwind with the mach state.

* Proper fix for macOS arm64

* Add comment on why Apple is different

Also unify code for Windows / Linux since the ptrX19_X29 never contain
null pointer on those platforms. They are initialized to point to the
captureX19_X29. So the conditional code that has the null check doesn't
make sense on Linux.
…ype (#98597)

* Do not generate relocations within .debug_info for DW_AT_type

* Fix WriteInfoAbsReference
@pull pull bot added the ⤵️ pull label Feb 20, 2024
@pull pull bot merged commit bee4602 into sysfce2:main Feb 20, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Mar 22, 2024
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.