内联指令上限
公开「整数」
文言:小叶函数之内联:降级之前,于整数网页汇编之层,凡调用无调用之小函数(指令至多四十,一结果)者,展其体于调用之处:实参依次弹入新局部,被调者之余局部补零,体包于一结果之块,局部之号整体平移,返回化为跳出此块(依当下之嵌套深度);体内原有之跳转深度不变,盖函数之级即此块也。可信之函数(号不小于导出“预编起号”者)与执行器之函数不相内联,免执行器之码失其界检。局部总数逾上限则不内联。执行器之小助函数(栈槽址、位图之算、且、爻整之类)调用极频,其序言与尾声之费甚于其体。汉语:小叶函数内联:降级之前,在整数 Wasm 层面,把对“不再调用其他函数、指令不超过 40 条、有 1 个结果”的函数的调用展开成函数体:实参依次弹进新分配的局部变量,被调函数自己的局部变量补零,函数体包进一个带 1 个结果的块,局部变量号整体平移,返回改成跳出这个块(按当前嵌套深度);函数体里原有的跳转深度不用改,因为函数级的块就是这个块。可信函数(函数号不小于导出“预编起号”的预编函数)与执行器函数之间不互相内联,免得执行器代码失去边界检查。局部变量总数会超过上限时不内联。执行器的小助手函数(栈槽址、位图计算、且、爻整等)调用极其频繁,序言与尾声的开销比函数体还大。
内列转数组
公开承「甲」而化「甲」而化(「列」于「甲」)而(「数组引用类」于「甲」)
暂无说明。
是调用令
公开化「网页指令」而「爻」
暂无说明。
叶函可内联
公开化(「数组引用类」于(「整数」合「整数」))而化(「整数」合「整数」合(「列」于「网页指令」))而「爻」
文言:叶函可内联否:无调用,指令至多上限,结果为一。汉语:函数能否内联:函数体里没有调用、指令条数不超过上限、签名的结果个数为 1。
内联转体
公开化「整数」而化(「列」于「网页指令」)而化「整数」而化(「列」于「网页指令」)而(「列」于「网页指令」)
文言:转写被调者之体:局部平移,返回化为跳出,逆序积之。深者,当下于被调体内之嵌套深度。汉语:改写被调函数体:局部变量号加上基数,返回改成跳到包裹块(深度为当前在函数体内的嵌套深度);结果按逆序累积。
内联展开
公开化「整数」而化「整数」而化「整数」而化(「整数」合「整数」合(「列」于「网页指令」))而(「列」于「网页指令」)
文言:展一调用:实参逆序弹入局部,余局部补零,体包于块。汉语:展开一次调用:实参按逆序写进新局部(栈顶是最后一个参数),其余局部清零,函数体包进一个带 1 个结果的块。
内联改写段
公开化(「数组引用类」于(「整数」合「整数」))而化(「数组引用类」于(「整数」合「整数」合(「列」于「网页指令」)))而化(「数组引用类」于「爻」)而化「整数」而化「整数」而化「爻」而化「整数」而化「整数」而化「整数」而化(「列」于「网页指令」)而化(「列」于「网页指令」)而((「列」于「网页指令」)合「整数」)
文言:改写一函数之体:遇可内联之调用则展之。诸展开之局部同居一段(自基起),盖展开之体用毕即死,前后不相叠,各于其首自清其局部;段长取诸展开所需之最大。逾上限者不展。汉语:改写一个函数体:遇到可以内联的调用就展开。所有展开共用同一段新局部(从基数起):展开体用完即死,前后不会重叠,每次展开开头自己把用到的局部清零;段长取各次展开所需的最大值,免得序言清零的局部越积越多。局部总数会超过上限的调用不展开。返回(新指令列,段长)。
内联信任起
公开化(「列」于(「字符串」合「整数」))而「整数」
暂无说明。
内联小叶函数
公开化((「列」于(「整数」合「整数」))合(「列」于(「字符串」合「字符串」合「整数」))合(「列」于(「整数」合「整数」合(「列」于「网页指令」)))合(「列」于(「字符串」合「整数」)))而化「整数」而((「列」于(「整数」合「整数」))合(「列」于(「字符串」合「字符串」合「整数」))合(「列」于(「整数」合「整数」合(「列」于「网页指令」)))合(「列」于(「字符串」合「整数」)))
文言:内联小叶函数于一模块。上限者,每函数局部(含参数)之至多。汉语:对整个模块做小叶函数内联。上限是每个函数局部变量(含参数)的最多个数(降级器的栈帧槽上限)。返回新模块(签名、导入、导出不变)。