Можете ли вы сделать статическую библиотеку ".a" с IR-кодом как gcc, так и clang?

И gcc, и clang реализуют оптимизацию во время соединения, позволяя объектные файлы.o) не только содержать целевой код машины, но и промежуточные представления (битовый код GIMPLE или LLVM), используемые самими компиляторами. Эти объектные файлы могут быть упакованы в статические архивы и подготовлены для статической компоновки.

Норма этих архивов с поддержкой lto заключается в том, что они сделаны "толстыми" благодаря включению как обычного машинного кода (чтобы они могли работать как обычные), так и IR. Но возможно ли создать "очень толстый" архив с несколькими типами IR и заставить компиляторы распознавать эти соответствующие IR? Вот несколько проблем:

  • Оба компилятора рекомендуют модифицированные версии ar чтобы убедиться, что IR включается и индексируется. GCC имеет gcc-ar (плагин), и лязг llvm-ar,
  • Clang не производит "жирных" архивов. Фактически его объектные файлы с битовым кодом не могут быть интерпретированы стандартными инструментами GNU.

0 ответов

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