2015-12-14 12 views
11

プログラムのコンパイルに必要なパラメータ-fconstexpr-steps=-ftemplate-depth=の正確な最小値を評価する最良の方法は何ですか?プログラムのコンパイル時のプロパティのベンチマーク

私が現在行っていることは、値の二分法です。しかし、現実のテンプレートロードされたプログラムでは、値の上限についても対数であっても非常に長く動作しました。

オプションと-ftime-reportがありますが、それらの出力でも、実際に使用されている最大テンプレート深度と、定数式の評価で実際に渡されたステップ数に関する情報は得られません。

答えて

3

Boost.Hanaのベンチマークはどのように行われますか。そのベンチマークコードはほとんどがeRuby templatesの形式で書かれています。テンプレートは、コンパイルおよび実行統計を収集しながらコンパイルされるC++ファイルを生成するために使用されます。

-ftemplate-depth-fconstexpr-stepsの必要な値を見つけるには、もちろん手動で行うのは少し面倒ですが、これを自動化するスクリプト(Ruby、Pythonなど)を書くこともできます。単純なwhileループの初期値をプログラムのコンパイルが成功するまで2倍にしてください。

関連する問題