GHC LLVM report
July 16, 2010
Недавно David и Manuel опубликовали черновик-отчет (13 страниц) об особенностях реализации кодогенератора llvm. Из интересного хочу отметить затронутые темы:
- отражены стадии (и их разновидности) компиляции кода из haskell в бинарник для нужной архитектуры
- backends (реализации) кодогенерации:
- unregisterised C backend
- registerised C backend
- native code generator (NCG)
- LLVM
- требования к интерфейсам этих реализаций. То есть необходимая информация, которая должна передаваться от ghc к кодогенератору.
- стадия Cmm, подмножество C--, располагается прямо перед стадией кодогенерации
- ну и самое интересное: технические детали интеграции LLVM в свете предыдущих пунктов