Ответ зависит от ваших целей.Почему вы хотите перевести C # в LLVM?
VMKit был разработан как среда для построения реализаций виртуальных машин.Я полагаю, что в какой-то момент у него была некоторая поддержка для CLR, но эта поддержка с тех пор застаивалась в пользу его реализации JVM.Его целью является создание виртуальной машины с нуля.
Mono-llvm - это проект, который заменяет моно JIT-бэкэнд на LLVM-бэкэнд.Его цель - повысить производительность кода JITed на Mono.
Если ваша цель - использовать Mono с более высокой производительностью, хорошим выбором будет mono-llvm.
Если вы хотите собратьцелая виртуальная машина с нуля, тогда VMKit может работать.
Если вы просто хотите реализовать опережающий компилятор, который создает исполняемые файлы без зависимостей CLR, вы можете просто загрузить библиотеки ядра LLVM из:
http://llvm.org/
По сути, он преобразует CIL в текстовое представление LLVM IR, а затем использует API-интерфейсы LLVM для компиляции его в машинный код.
Я не знаюНе знаю, сгенерирует ли LLVM объектные файлы для вас.Возможно, вам придется создавать их самостоятельно, но это довольно просто.По сути, это просто вставка машинного кода в структуру данных, создание таблиц строк, разделов и символов, а затем сериализация всего на диск.