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
