1

リンク時最適化 ( lto ) とO2最適化レベルを使用して、変更されたバージョンのclangでプロジェクトをコンパイルしています。O0 と O1 は問題なく動作していますが、残念ながら O2は関数の呼び出しをいくつか削除しています。特定の関数を省略するように最適化に指示する方法はありますか? 私はすでに変数を使用しようとしましたが、成功しませんでした。volatile__attribute__ ((optimize("0")))

llvm IR レベルで直接のみ利用可能なソリューションも歓迎します。

編集:状況をもう少し詳しく説明する必要があるかもしれません。変更された clang は、clang と共にビルドされるカスタム ランタイム ライブラリへの呼び出しを追加します。この挿入された呼び出しの一部は、最適化されて取り除かれます。

4

2 に答える 2

-1

追加__attribute__((noinline))することで、そのように指定された機能が消えないようにします。でグローバルに防ぐこともできます-fno-inline

于 2015-12-11T23:17:44.160 に答える