Una questione in pratica è che LLVM è stato molto più di un obiettivo mobile.
GHC ha avuto qualche problema nel tentativo di supportare più versioni di LLVM. C'è uno discussion attivo sulla mailing list ghc-dev su questo.
Btw, attualmente il back-end di llvm in ghc è dopo che Haskell è stato tradotto in linguaggio cmm (che credo sia per lo più solo C-- esteso con alcuni registri dal linguaggio STG), e grazie a quanto sopra - difficoltà affrontate, vengono eseguite ottimizzazioni ridondanti che rallentano la compilazione.
Inoltre, storicamente, e attualmente AFAIK, il progetto LLVM non ha la priorità di fornire una piattaforma portatile, e alcuni sviluppatori hanno fatto un punto di articolazione che è is a compiler IR and not a form of portable assembly language.
L'IR LLVM che si scrive per un target intenend potrebbe non essere affatto utile per un target diverso. Per fare un confronto, il sito Web C-- in realtà si riferisce ad esso come assemblaggio portatile. "Saresti molto più felice con un linguaggio di assemblaggio portatile che potrebbe essere ..." è una citazione da their website. Quel sito web menziona anche un'interfaccia runtime per facilitare l'implementazione della raccolta dati inutili e la gestione delle eccezioni.
Quindi si potrebbe pensare a C-- come un terreno comune portatile per tutti i front-end che ha un po 'più in comune con il codice byte CIL e Java e LLVM IR come un terreno espressivo comune per tutti i tuoi backend ciò facilita l'unificazione delle ottimizzazioni a basso livello comuni a più obiettivi. LLVM IR offre inoltre il vantaggio aggiuntivo che il progetto LLVM implementerà molti di questi bassi livelli di ottimizzazione. Detto questo, in qualche modo LLVM IR potrebbe effettivamente essere considerato un livello più alto di C--, ad esempio LLVM IR ha tipi diversi dove come in C-- tutto è solo bit vettori.
è necessario ottenere un blog –
È necessario utilizzare l'opzione di preventivo per le citazioni lunghe del genere. – Unknown
La modifica sembra mostrare che * era * incollato da un blog. – ShreevatsaR