リンク時最適化 ( lto ) とO2最適化レベルを使用して、変更されたバージョンのclangでプロジェクトをコンパイルしています。O0 と O1 は問題なく動作していますが、残念ながら O2は関数の呼び出しをいくつか削除しています。特定の関数を省略するように最適化に指示する方法はありますか? 私はすでに変数を使用しようとしましたが、成功しませんでした。volatile
__attribute__ ((optimize("0")))
llvm IR レベルで直接のみ利用可能なソリューションも歓迎します。
編集:状況をもう少し詳しく説明する必要があるかもしれません。変更された clang は、clang と共にビルドされるカスタム ランタイム ライブラリへの呼び出しを追加します。この挿入された呼び出しの一部は、最適化されて取り除かれます。