GHC的-O和-O2之间的差异

时间:2012-06-19 20:18:54

标签: optimization haskell compiler-construction ghc

cabal dist不鼓励您使用-O2,因为它会产生更长的编译时间,GHC手册说:

  

目前,-O2不太可能产生比-O更好的代码。

我知道我可以随时对库进行基准测试,看看-O2是否能提供更好的性能,但我想知道是否有人可以解释-O2-O的区别是什么,所以我可以得到他们认为不太可能产生更好的代码的直觉。

1 个答案:

答案 0 :(得分:15)

-O2执行构造函数特化。还有一些其他优化仅在-O2启用,包括-fliberate-case-fstatic-argument-transformation

我怀疑-O2现在总能产生更好的代码,因为这个建议可以追溯到大约10年。