3
标题是一个轻微的笑话。“-O99”标志是做什么的?
我今天刚发现ghc
接受任何优化级别没有抱怨。我知道-O2
应该是最大的优化级别,并且有一个建议的-O3
here,但我只是好奇,当你错误地指定更高的优化级别时会发生什么。 ghc
默认为-O2
还是根本没有优化?
标题是一个轻微的笑话。“-O99”标志是做什么的?
我今天刚发现ghc
接受任何优化级别没有抱怨。我知道-O2
应该是最大的优化级别,并且有一个建议的-O3
here,但我只是好奇,当你错误地指定更高的优化级别时会发生什么。 ghc
默认为-O2
还是根本没有优化?
它看起来就像被夹在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
...
如果没记错,一个不存在的优化级别是由旧(ER)GHCs忽略,因为几年,' 'n'= 2'的''''变成'-O2'。 – 2013-04-08 03:03:27