(func $main/test (type $t1) (param $p0 i32) (param $p1 i32)
...)
(func $main/test|trampoline (export "test") (type $t1) (param $p0 i32) (param $p1 i32)
block $B0
block $B1
block $B2
get_global $g25
i32.const 1
i32.sub
br_table $B1 $B0 $B2
end
unreachable
end
i32.const 0
set_local $p1
end
get_local $p0
get_local $p1
call $main/test)
(func $~setargc (export "_setargc") (type $t2) (param $p0 i32)
get_local $p0
set_global $g25)
如果使用省略参数调用带有可选参数的函数,则会生成蹦床。 它基本上将可选参数的初始化程序包装在适当的上下文中,并用它们调用原始函数。 如果您总是在提供所有参数的情况下调用带有可选参数的函数,则不必生成蹦床。
这提醒我可以在那里执行一些优化。 一个是如果省略参数的默认值无论如何都是零,另一个是如果默认值是可以内联到调用中的常量。
暂时关闭这个问题,因为它最近没有收到任何回复,所以我认为上面实施的优化已经充分解决了它。 如有需要,请随时重新开放!
最有用的评论
这提醒我可以在那里执行一些优化。 一个是如果省略参数的默认值无论如何都是零,另一个是如果默认值是可以内联到调用中的常量。