Что такое LLVM Intermediate?

Я попробовал демоверсию LLVM по ссылке http://llvm.org/demo/ Что это за IR? HIR, MIR или LIR? Я думаю, что представление SSA обычно используется в MIR. Так это МИР? Но он может хранить информацию для анализа зависимости. Следовательно, это может быть HIR?

Какое расширение файла на самом деле представляет IR LLVM, .ll или.bc?

Как я могу получить таблицу символов, используемую в LLVM?

1 ответ

Решение

Я не знаком с одним, строгим определением того, что отличает один уровень IR от другого, но от того, что я знаю, он подпадает под категорию MIR.

  • Он имеет форму SSA и не имеет явных регистров, поэтому я бы определенно не отнес его к категории низкого уровня.
  • Он не имеет именованной ссылки на подэлемент или продвинутых конструкций управления потоком, поэтому он не очень подходит для HIR.

В любом случае, LLVM IR обычно хранится на диске в текстовых файлах с расширением .ll или в двоичных файлах с расширением .bc. Преобразование между ними тривиально, и вы можете просто использовать llvm-dis для до н.э. -> ll и llvm-as для ll -> до н. Бинарный формат более эффективен при использовании памяти, а текстовый формат удобочитаем.

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