Skip to content

[NativeAOT-LLVM] Fix a GC hole in the new LSSA implementation #2531

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

Merged
merged 3 commits into from
Mar 24, 2024

Conversation

SingleAccretion
Copy link

@SingleAccretion SingleAccretion commented Mar 22, 2024

We need to be careful about not depending on stale shadow stack state when making decisions not to spill a def derived from an already spilled value.

This has some cost, but an overly large one, about 0.15% in terms of code size for HelloWasm.

Ref: #2514 (comment).

We need to be careful about not depending on stale shadow stack
state when making decision not to spill a def derived from an
already spilled value.

This has some cost, but an overly large one, about 0.15% in terms
of code size for HelloWasm.
Without the fix, this test quickly crashed under stress.
With the fix, it passes without issue.
@SingleAccretion SingleAccretion marked this pull request as ready for review March 23, 2024 18:19
@SingleAccretion
Copy link
Author

@dotnet/nativeaot-llvm

Copy link
Contributor

@yowl yowl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not claiming to have a good understanding of this, but the coverage looks good.

@jkotas
Copy link
Member

jkotas commented Mar 24, 2024

Thank you!

@jkotas jkotas merged commit e2955fc into dotnet:feature/NativeAOT-LLVM Mar 24, 2024
11 checks passed
@SingleAccretion SingleAccretion deleted the LSSA-Gc-Hole branch March 24, 2024 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants