Clang: Как проверить, был ли выполнен LTO - PullRequest
0 голосов
/ 26 июня 2018

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

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

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

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

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

0 голосов
/ 29 июня 2018

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

...