Closed sumant85 closed 4 months ago
@llvm/issue-subscribers-backend-webassembly
Author: Sumant Hanumante (sumant85)
@aheejin any ideas what this might be?
@sumant85 any chance you could bisect a little more to figure out exactly which emscripten version caused the regression: https://emscripten.org/docs/contributing/developers_guide.html#bisecting
I have a suspicion that this is the same issue as https://github.com/emscripten-core/emscripten/issues/22170. The pass that's causing the error is https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp, and the problem is related to generating invalid PHI nodes, which I'm currently investigating. But given that this pass has been stable for a long time, it's a little confusing why two same bug reports are coming at this point. The most recent change to that pass was #84137, but I doubt that PR created another bug.. I think it's possible that PR might have uncovered an existing bug or something. I'm still investigating.
Added: The same error persists even if I revert #84137, so that's not the issue.
@sbc100 I've bisected it down to emsdk version 3.1.54 where compilation first started failing. Will do a bisect over emscripten release (per https://emscripten.org/docs/contributing/developers_guide.html#bisecting) and share my findings shortly
@sbc100 @aheejin the breaking change is introduced in https://chromium.googlesource.com/emscripten-releases/+/9e09d60dbf6f5e1e0b4bb97b8aba8c5d5969652a
@aheejin any other way in which I can help? We'd like to switch to latest emscripten to start experimenting with JSPI (older versions seem to be running into some errors with instrumentWasmImports
), but are blocked on this issue.
@aheejin should I re-open this since it looks like the PR had to be reverted ?
I am getting
Clang frontend command failed with exit code 139
when compiling code using setjmp/longjmp to webassembly with emscripten 3.1.62. The same code compiles fine with an older (3.1.44) version of emscripten. The code also compiles if all calls to setjmp/longjmp are removed or if optimization level is set to-O0
Crash artifacts (preprocessed source and script)
Breaking change bisected to https://chromium.googlesource.com/emscripten-releases/+/9e09d60dbf6f5e1e0b4bb97b8aba8c5d5969652a
Backtrace: