【问题标题】:How do I force OCaml to inline a function?如何强制 OCaml 内联函数?
【发布时间】:2019-06-20 06:47:25
【问题描述】:

是否可以告诉 OCaml 编译器内联一个函数,而不是希望它的优化过程自己这样做?

【问题讨论】:

    标签: ocaml inline-functions


    【解决方案1】:

    您都可以添加一个属性来始终内联函数

    let f x = x [@@inline always]
    (* which is equivalent to *)
    let f x = x [@@inline]
    

    或强制将特定调用与另一个属性内联

    let a = (f[@inlined]) 1
    

    如果您想检查 flambda 做出的内联决策,可以使用 inlining-report 标志。

    【讨论】:

    • 谢谢,有了你的回答,我找到了relevant section in the manual
    • 我还看到了 let[@inline] f x = x 函数内联的形式(没有'd')
    • let[@inline] f x = xlet f x = x [@@inline] 的简写。
    • 截至2022年,手册相关部分现为that one
    猜你喜欢
    • 2013-06-04
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多