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

[release/7.0][sgen] Remove two dead fields; fix wasm-mt AOT compilation #75509

Merged

Conversation

lambdageek
Copy link
Member

They were only initialized, but never read.

But what they did do is change the SgenClientInfo field offsets between the threaded and non-threaded wasm runtimes (because emscripten only has HAVE_PTHREAD_KILL in the threaded build). As a result the offsets for tlab_start, tlab_next and tlab_temp_end were different for the AOT compilers targeting threaded vs non-threaded WASM.

This PR removes the two unused fields which will make the two wasm configurations match again, allowing us to ship a single AOT cross compiler for both threaded and non-threaded wasm.

Fixes #75474

They were only initialized, but never read.

But what they did do is change the SgenClientInfo field offsets
between the threaded and non-threaded wasm runtimes (because
emscripten only has HAVE_PTHREAD_KILL in the threaded build).  As a
result the offsets for tlab_start, tlab_next and tlab_temp_end were
different for the AOT compilers targeting threaded vs non-threaded
WASM.

This PR removes the two unused fields which will make the two wasm
configurations match again, allowing us to ship a single AOT cross
compiler for both threaded and non-threaded wasm.
@ghost
Copy link

ghost commented Sep 13, 2022

Tagging subscribers to this area: @BrzVlad
See info in area-owners.md if you want to be subscribed.

Issue Details

They were only initialized, but never read.

But what they did do is change the SgenClientInfo field offsets between the threaded and non-threaded wasm runtimes (because emscripten only has HAVE_PTHREAD_KILL in the threaded build). As a result the offsets for tlab_start, tlab_next and tlab_temp_end were different for the AOT compilers targeting threaded vs non-threaded WASM.

This PR removes the two unused fields which will make the two wasm configurations match again, allowing us to ship a single AOT cross compiler for both threaded and non-threaded wasm.

Fixes #75474

Author: lambdageek
Assignees: -
Labels:

area-GC-mono

Milestone: -

@lambdageek lambdageek added this to the 7.0.0 milestone Sep 13, 2022
@lambdageek lambdageek marked this pull request as ready for review September 13, 2022 04:52
@lambdageek
Copy link
Member Author

/cc @lewing

@lambdageek
Copy link
Member Author

Manually verified that the wasm AOT compiler produced by this PR for threaded and non-threaded wasm generate identical offsets. And also can AOT compile the raytracer demo. (and hte demo runs correctly)

@lambdageek
Copy link
Member Author

/backport to main

@github-actions
Copy link
Contributor

Started backporting to main: https://github.com/dotnet/runtime/actions/runs/3042510478

@lambdageek
Copy link
Member Author

ping @marek-safar

@radical
Copy link
Member

radical commented Sep 13, 2022

/azp run runtime-wasm

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@lambdageek
Copy link
Member Author

@carlossanlop this one is done baking

@carlossanlop
Copy link
Member

@carlossanlop this one is done baking

Approved, signed off, CI green. This is perfectly crunchy and ready to eat ship. :shipit:

@carlossanlop carlossanlop merged commit b1a725d into dotnet:release/7.0 Sep 13, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Oct 14, 2022
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.

6 participants