Avatar
このスレッドの文脈でKeyPathの呼び出し規約が通常のswiftccから逸脱しているのでは?ということを質問してみました。 https://twitter.com/omochimetaru/status/1232538643731927041?s=20 (edited)
@kateinoigakukun あ〜そっか、サンクの仕様までを固定しておけば、本当のプロパティのgetter自体のABI仕様は露出しないのか。それはありそう。
11:34 PM
@Joe_Groff Hi! While I was fixing the rest of failing test suites, I found that another issue for ABI. As described here, Swift ABI allows using non-generic function as generic function directly. On WebAssembly runtime, this ABI causes signature mismatch between callee and...
11:37 PM
具体的にはindicesの有無とジェネリックコンテキストの有無がオプショナルになっている部分です。
11:39 PM
さっき回答が来て、それを見るにこの呼び出し規約は多分KeyPath特有で、これのせいでKeyPathのインライン化も面倒なことになっているらしい https://forums.swift.org/t/wasm-support/16087/23
Regarding key paths, their weird calling convention is also an issue for optimization, so we may introduce a SIL convention for key path accessors, which would be another marker you could use to lower them to a consistent LLVM function type for wasm: