【发布时间】:2019-06-20 06:47:25
【问题描述】:
是否可以告诉 OCaml 编译器内联一个函数,而不是希望它的优化过程自己这样做?
【问题讨论】:
是否可以告诉 OCaml 编译器内联一个函数,而不是希望它的优化过程自己这样做?
【问题讨论】:
您都可以添加一个属性来始终内联函数
let f x = x [@@inline always]
(* which is equivalent to *)
let f x = x [@@inline]
或强制将特定调用与另一个属性内联
let a = (f[@inlined]) 1
如果您想检查 flambda 做出的内联决策,可以使用 inlining-report 标志。
【讨论】:
let[@inline] f x = x 函数内联的形式(没有'd')
let[@inline] f x = x 是 let f x = x [@@inline] 的简写。