Unterschied zwischen GHC-O und -O2

8

cabal dist rät von der Verwendung von -O2 ab, da es längere Kompilierzeiten erzeugt und das GHC-Handbuch sagt:

  

Momentan ist -O2 wahrscheinlich nicht besser als -O .

Ich weiß, dass ich die Bibliothek immer vergleichen kann, um zu sehen, ob -O2 eine bessere Leistung bringt, aber ich frage mich, ob jemand erklären könnte, was -O2 anders macht als -O , damit ich eine Intuition dafür bekommen kann es wird wahrscheinlich keinen besseren Code produzieren.

    
Gabriel Gonzalez 19.06.2012, 20:18
quelle

1 Antwort

15

-O2 führt die Konstruktorspezialisierung durch. Es gibt einige andere Optimierungen, die nur bei -O2 aktiviert sind, einschließlich -fliberate-case , -fstatic-argument-transformation ,

Ich habe den Verdacht, dass -O2 jetzt immer besseren Code produziert, da diese Empfehlung etwa 10 Jahre zurückliegt.

    
Don Stewart 19.06.2012, 21:03
quelle