GHCのbackend
3つある
前までは4つあった
NCG
(-fasm)
defaultのbackend
パフォーマンス的に最も良い
LLVM IR
(-fllvm)
NCG
が対応していないtargetに対して使用される
unregisterised via-C backend
C言語にcompileし、gccなどを介してObject Codeを出力する
必要なツールが少なく、GHCを別マシンに移植する時に便利
他2つに比べてパフォーマンスが悪い(?)
registerised via-C backend
(-fvia-C)
最古のcode generatorで、
ghc-7.0.0
で非推奨化された
参考
GHCのバックエンドについて | 雑記帳
4.11. GHCのバックエンド
3つのbackendaについて
ghc7.6.2の時の翻訳
https://downloads.haskell.org/~ghc/7.8.3/docs/html/users_guide/code-generators.html
https://andreaspk.github.io/posts/2019-08-25-Opinion%20piece%20on%20GHC%20backends.html
https://www.semanticscholar.org/paper/An-llVM-backend-for-GHC-Terei-Chakravarty/17754503dc6907d8ba9399b300bc566ce3a7ad3f
https://blog.llvm.org/2010/05/glasgow-haskell-compiler-and-llvm.html