Haskell 内联重复呼叫(GHC)
GHC是否会内联一个被多次使用的函数?例如:Haskell 内联重复呼叫(GHC),haskell,optimization,ghc,inlining,Haskell,Optimization,Ghc,Inlining,GHC是否会内联一个被多次使用的函数?例如: {-# INLINE innerLoop #-} innerLoop x = stuff... g f = f 0 + f 1 + f 2 如果我们调用g innerLoop,函数innerLoop会被复制三次吗?或者它会变成g东西… 我们怎样才能强制innerLoop内联多次,或者阻止它内联多次呢?我也想内联g。此外,检查GHC核心输出以了解发生了什么。最重要的是,分析所有内容以检查此内联非常重要。
{-# INLINE innerLoop #-}
innerLoop x = stuff...
g f =
f 0 + f 1 + f 2
如果我们调用g innerLoop
,函数innerLoop
会被复制三次吗?或者它会变成g东西…
我们怎样才能强制
innerLoop
内联多次,或者阻止它内联多次呢?我也想内联g
。此外,检查GHC核心输出以了解发生了什么。最重要的是,分析所有内容以检查此内联非常重要。