- PVSM.RU - https://www.pvsm.ru -
Сегодня сотрудник Microsoft анонсировал [1] проект
LLILC [2] — новый проект для трансляции MSIL в байткод LLVM, предназначенный пока главным образом для инфраструктуры
CoreCLR [3]. В ближайшее время он может быть использован для JIT-компиляции, а в дальнейшем и для формирования прекомпилированных сборок (Ahead-of-Time) средствами .NET Native.
Несмотря на то, что в CoreCLR уже есть свой JIT, планируется расширить поддержку различных платформ за счёт LLVM. Новый JIT использует тот же набор внутренних API, что и RyuJIT и бесшовно его заменяет. Таким образом новый JIT позволит .NET-коду выполняться на всех поддерживаемых LLVM-платформах, на которые можно портировать CoreCLR.
На текущий момент реализация позволяет скомпилировать порядка 90% методов CoreCLR и откатиться к RyuJIT в остальных случаях, при этом при запуске на платформе Windows уже проходят поставляемые с CoreCLR тесты. Это связано так же с тем, что LLVM для нормальной поддержки CLR нуждается в некотором, допиливании (которое будет проводиться их же силами), без которого невозможно сделать
Состояние проекта на текущий момент напоминает уровень поддержки LLVM в Mono, где так же потребовались
патчи на LLVM [5] и так же удаётся скомпилировать лишь часть методов (в Mono происходит откат к обычному бакэнду компиляции в случаях наличия конструкций try/catch и вызовов методов интерфейса).
Автор: kekekeks
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/88803
Ссылки в тексте:
[1] анонсировал: http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-April/084459.html
[2] Image: https://github.com/dotnet/llilc/wiki
[3] Image: https://github.com/dotnet/coreclr
[4] Точную: http://en.wikipedia.org/wiki/Tracing_garbage_collection#Precise_vs._conservative_and_internal_pointers
[5] Image: https://github.com/mono/llvm
[6] Источник: http://habrahabr.ru/post/255695/
Нажмите здесь для печати.