LLVMは、はるかに動いているターゲットです。
GHCは、複数のバージョンのLLVMをサポートしようとするといくつかの問題を抱えています。 これについてのghc-devメーリングリストにはアクティブなdiscussionがあります。
現在、ghcのllvmバックエンドは、Haskellがcmm言語に翻訳された後です(これは、ほとんどSTG言語の特定のレジスタでC言語拡張されていると思われます)。冗長な最適化が行われているため、コンパイルが遅くなります。
また、現在のAFAIKでは、LLVMプロジェクトではポータブルプラットフォームの優先付けが優先されず、一部の開発者はそれを明確に表現しています。is a compiler IR and not a form of portable assembly language
あなたが1つの意図目標のために書くLLVM IRは、別の意図された目標に対して全く役に立たないかもしれません。比較のために、C--ウェブサイトは実際にポータブルアセンブリとしてそれを参照します。 「携帯可能なアセンブリ言語であればもっと幸せになれます...」という言葉はtheir websiteです。このWebサイトには、ポータブルのインプリメンテーションのガベージコレクションと例外処理を容易にするランタイムインターフェイスも含まれています。
C-とJavaバイトコード、そしてLLVM IRとバックエンドの共通の共通点として共通している、すべてのフロントエンドの移植可能な共通基盤と考えることができます複数のターゲットに共通する低レベルの最適化の統合を容易にします。 LLVM IRはまた、LLVMプロジェクトがこれらの低レベルの最適化を多く実装するという追加のボーナスを提供します。言い換えれば、LLVM IRは実際にはC--より高いレベルと見なすことができます。たとえば、LLVM IRはC--のように異なるものがあります。すべてがちょうどビットベクトルです。
あなたはブログを入手する必要があります –
そのような長い引用符の場合は、引用オプションを使用する必要があります。 – Unknown
編集はブログからペーストされたことを示すようです。 – ShreevatsaR