Портирование компилятора с ассемблера x86 на LLVM

Итак, недавно, в попытке отточить свои навыки сборки, я написал ОЧЕНЬ простой компилятор для игрушечного языка на C++. Он выполняет один проход и напрямую передает код на этапе синтаксического анализа в несколько строковых потоков, каждый из которых представляет раздел кода (, т.е. один представляет section.bss, а другие представляют .dataи .text). После этого эти строковые потоки записываются в файл, и я использую NASM и gcc для их сборки и компоновки. Я знаю, что этот подход с одним проходом -ужасно неэффективен, но опять же, это было скорее упражнением в понимании этапа генерации кода -, чем что-либо еще. В любом случае, я хотел бы изменить свой код, чтобы напрямую создавать LLVM IL вместо необработанной сборки, опять же в качестве учебного упражнения. Есть ли какое-нибудь вводное руководство по LLVM IL? Или, что еще лучше, инструмент для определения эквивалентного IL-кода для строки сборки? Я посмотрел,и я нашел только полную спецификацию, которая НАМНОГО больше информации, чем мне нужно.

11
задан harold 30 April 2012 в 17:10
поделиться