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

Reply via email to