https://github.com/QuantumSegfault commented:

Should we unify the LLVM and Clang attribute under one name: 
`wasm_multivalue_cc`? Cause you have `wasm_multivalue` in clang, but 
`wasm_multivaluecc` in LLVM.

So, as I understand it, at the IR level, `wasm_multivaluecc` opts-in to the 
same ABI that has existed under `-mabi=experimental-mv` (or something like 
that...) for a while now? That is, ALL by-value IR aggregates are expanded 
recursively (allowing full use of Wasm MV in custom ABIs). And 
`-mabi=experimental-mv` will still do the opt-in for all? Do you intend to keep 
the ABI switch long-term? But it's at the Clang (front-end; which will extend 
to Rust eventually) level that the thresholds are enforced (<= aggregates with 
only 2 scalar fields split)?

Could you add some tests to illustrate what happens to (Clang) arrays (i.e. 
would a `char[2]` get split into a pair of i32 parameters?). I know IR `[2 x 
i8]` would.

https://github.com/llvm/llvm-project/pull/200076
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to