Запустите оптимизатор и компилятор LLVM и выполните непосредственно из памяти

#llvm-ir

#llvm-ir

Вопрос:

Позвольте мне объяснить мой вопрос в 4 шага:

  1. LLVM написан на C . Можно ли разработать программу на C и статически связать исходный код оптимизатора и генератора кода LLVM?
  2. Непосредственно создайте C «IR class structure» в памяти (ссылка: https://llvm.org/docs/ProgrammersManual.html#important-and-useful-llvm-apis ), следовательно, минуя текстовый ИК-язык и интерпретатор ИК-языка.
  3. Пусть LLVM оптимизирует генерирует, выполняет машинный код из памяти, связывает из внешних библиотек и записывает в память (не в файл)?
  4. Непосредственно выполнить код, как это сделал бы JIT-компилятор?

Другими словами, я хочу начать с образа памяти, представляющего классы LLVM, и оптимизировать, скомпилировать и выполнить из памяти, без каких-либо промежуточных файлов. Можно ли это сделать?

Комментарии:

1. См. llvm.org/devmtg/2008-08/Begeman_EfficientJIT.pdf . И, кстати, запись в файлы с битовым кодом — это запись в память