-
Notifications
You must be signed in to change notification settings - Fork 5.4k
[Wasm RyuJit] multi entry try preliminaries #126327
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
base: main
Are you sure you want to change the base?
Changes from all commits
507c84c
1235991
a1b619c
92b0eff
f1b71bc
2791a5d
83cc91e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2752,11 +2752,22 @@ bool BBPredsChecker::CheckEhTryDsc(BasicBlock* block, BasicBlock* blockPred, EHb | |
| // Async resumptions are allowed to jump into try blocks at any point. They | ||
| // are introduced late enough that the invariant of single entry is no | ||
| // longer necessary. | ||
| // TODO: revoke for wasm after SCC | ||
| if (blockPred->HasFlag(BBF_ASYNC_RESUMPTION)) | ||
| { | ||
| return true; | ||
| } | ||
|
|
||
| #if defined(TARGET_WASM) | ||
| // Catch resumptions are allowed to jump into try blocks at any point. | ||
| // They are transients during Wasm control flow restructuring. | ||
| // TODO: revoke after SCC | ||
| if (m_compiler->fgWasmHasCatchResumptions && blockPred->HasFlag(BBF_CATCH_RESUMPTION)) | ||
|
Comment on lines
+2762
to
+2765
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is meant by a "catch resumption"?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A catch resumption is in-method code to handle resuming execution once a catch funclet has completed. Other runtimes can just set the IP in the catching frame, but in Wasm we can't do that. |
||
| { | ||
| return true; | ||
| } | ||
| #endif // defined(TARGET_WASM) | ||
|
|
||
| JITDUMP("Jump into the middle of try region: " FMT_BB " branches to " FMT_BB "\n", blockPred->bbNum, block->bbNum); | ||
| assert(!"Jump into middle of try region"); | ||
| return false; | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.