Clang: Как проверить, был ли выполнен LTO

Для gcc этот ответ говорит нам о том, как мы можем проверить, была ли выполнена оптимизация Link-Time. Для clang я не вижу записей, похожих на .gnu.lto,

В частности, у меня есть бинарный файл, в котором я совершенно уверен, что LTO должен иметь значительную выгоду, но я ничего не вижу. Интересно, действительно ли cmake поступает правильно?

Есть ли способ узнать, выполнял ли Clang LTO, посмотрев на двоичный файл или файл *.o?

1 ответ

Решение

Можно было бы попробовать запустить llvm-dis на одном из ваших.o файлов. Если LTO действительно выполнялся, файлы.o содержат битовый код llvm и llvm-dis создаст файл.ll, содержащий humain-читабельную llvm ir. В противном случае будет выдано сообщение об ошибке "error: Invalid bitcode signature".

file утилита сообщит, что файл "LLVM IR bitcode". Средства LTO в LLVM/clang не создают "жирных" объектных файлов, это всего лишь IR.

Другие вопросы по тегам