-prof
:
プロファイルシステムを使うには、全てのモジュールが-prof
オプション付きでコンパイルされ、-prof
オプションつきでリンクされていなければならない。ソース中の全てのSCC
注釈が意味を持つようになる。
-prof
オプションが与えられていないとき、SCC
は無視される。このため、SCC
を満載したコードを変更せずにコンパイルできる。
この他にもいくつかプロファイルに関連したコンパイルオプションがある。これらは-prof
と併用すること。これらのオプションは全てのモジュールで一斉に使う必要はない。
-auto
:
INLINE指定されていない全ての最上位のエクスポートされた関数に、GHCが_scc_
を自動的に加える。INLINE関数に付属したコスト集約点が欲しい場合は、手動で付け加えなければならない。
-auto-all
:
INLINE指定されていない全ての最上位の関数が、エクスポートされているかにかかわらず、自動的に_scc_
化される。INLINE指定された関数には手動でコスト集約点を与えなければならない。
-caf-all
:
一つのモジュール内の全てのCAFのコストは通常一つの「大きな」CAFというコスト集約点に割り当てられる。このオプションを使うと、全てのCAFが独自のコスト集約点を持つようになる。「他のことがうまくいかなかったら」試すオプションである。
-ignore-scc
:
_scc_
を全て無視する。従って、既に_scc_
のあるモジュールを注釈を無視したままプロファイル用にコンパイルすることができる。