Что такое 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 -> до н. Бинарный формат более эффективен при использовании памяти, а текстовый формат удобочитаем.