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

DCE: Fix old EH on a pop that gets moved in a catch body #6400

Merged
merged 1 commit into from
Mar 14, 2024

Conversation

kripken
Copy link
Member

@kripken kripken commented Mar 14, 2024

This is a very long-standing issue I believe, though very unlikely. It was
found now thanks to some new testcases in recent PRs that were used
as initial content.

@kripken kripken requested a review from aheejin March 14, 2024 16:56
Copy link
Member

@aheejin aheejin left a comment

Choose a reason for hiding this comment

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

Thank you!

@kripken kripken merged commit 08e47de into WebAssembly:main Mar 14, 2024
12 of 14 checks passed
@kripken kripken deleted the eh.old.dce.pop branch March 14, 2024 17:22
@gkdn gkdn mentioned this pull request Aug 31, 2024
aheejin added a commit to aheejin/binaryen that referenced this pull request Sep 10, 2024
 WebAssembly#6400 fixed this case but that handled only when a `pop` is an
immediate child of the current expression, but a `pop` can be nested
deeper down.

Fixes WebAssembly#6918.
aheejin added a commit that referenced this pull request Sep 11, 2024
#6400 fixed this case but that handled only when a `pop` is an
immediate child of the current expression, but a `pop` can be nested
deeper down.

We conservatively run the EH fixup whenever we have a `pop` and create
`block`s in the optimization. We considered using `FindAll<Pop>` to make
it precise, but we decided the quadratic time plexity was not worth it.

Fixes #6918.
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.

2 participants