aheejin wrote: > > And it was a little confusing that the PR description argues we should > > remove `-wasm-enable-eh/sjlj` options, which disagree, when the code seems > > to fix something else. Those flags control behaviors, not exception models, > > so we still need them. For example, someone might want to use only SjLj > > support but not EH support, but because we implement SjLj using EH > > constructs, we still need `-exception-model=wasm` and `-wasm-enable-sjlj`, > > but in this case not `-wasm-enable-eh`. > > There should be no cl::opts that change backend behavior like this. It needs > to be part of the triple, or at worst a module flag explicitly in the IR. > This is worse than TargetOptions, since it's an ABI option hidden in the > backend. We should not have program state hidden in structs outside of the IR.
I don't understand. They just control code transformations, and every LLVM target has tons of them. And while they are exception-related flags, after this PR, they don't change the exception model. > Additionally requiring this second flag on top of the -exception-model flag > is an obnoxious user experience `llc` is not an external user-facing tool. Clang users mostly need only `-fwasm-exceptions`. (If they only need SjLj and want to disable EH, they need `-wasm-enable-sjlj`) https://github.com/llvm/llvm-project/pull/146343 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits