FAQ
Что такое QBE IL?
Ответ на данный вопрос Вы сможете найти в статье про QBE. Документация ко внутреннему представлению доступна в оригинале на сайте c9x.me (англоязычная версия) и в данном проекте Wiki (оригинал с параллельным переводом).
Документация на Wiki:
- QBE
- Типы
- Константы
- Объявления
- Управление
- Инструкции
- Список всех инструкций
Как получить QBE IL?
Первое, что Вам необходимо сделать – обзавестись самим QBE. Сделать это можно из git-репозитория ИСП РАН.
$ git clone https://compilers.ispras.ru/git/qbe.git $ cd qbe
Сборка полученных файлов осуществляется с помощью GNU_Make командой:
$ make && make install DESTDIR=/path/to/install
Результатом сборки является исполняемый файл qbe (qbe.exe), представляющий интерфейс командной строки к QBE, а также библиотека libqbe.a, предоставляющая программный интерфейс.
Источник: | ispras.ru
Как использовать QBE IL?
QBE предоставляет утилиту для работы с файлами на языке промежуточного представления:
$ qbe -h qbe [OPTIONS] {file.ssa, -}
-h prints this help -o file output to file -t <target> generate for a target among: amd64_sysv, arm64 -G {e,m} generate gas (e) or osx (m) asm -d <flags> dump debug information
Типичное использование утилиты заключается в компиляции файла с промежуточным представлением в файл на языке ассемблера:
$ qbe my-loop.il -o my-loop.s
Для компиляции ассемблерного файла в объектный или исполняемый файл можно использовать компиляторы GCC и Clang:
$ cc my-loop.s
Команды компиляции и запуска можно объединить в одну:
$ qbe my-loop.il | cc -xassembler - -o exe && ./exe
Источник: | ispras.ru