`-O99`标志有什么作用?

时间:2013-04-08 02:49:39

标签: haskell ghc

标题是一个轻微的笑话。

我今天刚刚发现,ghc接受任何优化级别而不抱怨。我知道-O2应该是最高优化级别,并且有一个建议的-O3 here,但我很好奇当您错误地指定更高的优化级别时会发生什么。 ghc默认为-O2还是根本不进行优化?

1 个答案:

答案 0 :(得分:11)

它似乎被夹在compiler/main/DynFlags.hs中的0到2之间:

updOptLevel :: Int -> DynFlags -> DynFlags
-- ^ Sets the 'DynFlags' to be appropriate to the optimisation level
updOptLevel n dfs
  = dfs2{ optLevel = final_n }
  where
   final_n = max 0 (min 2 n)    -- Clamp to 0 <= n <= 2
   ...