Michael T. Richter wrote:
I've been eyeing LLVM[1 <http://llvm.org>] as interesting technology -- brief executive summary: a virtual machine suited as the back end of compiler output with optimised native code then coming from it as either JIT-based execution of the LLVM bytecode or as a further compilation step -- and couldn't help but immediately think of the possibility of one of the Haskell compiler projects providing an LLVM code generator. I think this would help in several areas:

    * it could make porting the compiler to other architectures --
      including oddball ones that would be too small to otherwise
      support -- easier;
    * it could help remove the nigh-ubiquitous reliance upon GCC as a
      back-end (while I think that GCC is a pretty good piece of
      software, I'm not sure it's really suited to its current role as
      the "do-everything" back end);
    * it could leverage some of the really interesting work that's going
      on in optimisation technology by letting one VM's optimiser do the
      work for any number of languages;
    * it could improve interaction between source code written in
multiple languages. Is this me opening up a Pandora's Box of ignorance here? Or is LLVM potentially interesting? (And were someone motivated into perhaps trying to make an LLVM back-end, where would one start to poke around in, say, the GHC codebase to even begin to implement this? And how insane would they be driven by the process?)

Apologies for the slow reply. Actually I think this is a pretty cool idea (with a disclaimer that I know very nearly nothing about LLVM). Provided there are no serious gotchas, what you need to do is write a new backend for GHC that translates Cmm to LLVM. This should be pretty straightforward: for example, the Cmm->C code generator is only 1000 lines of Haskell:

  http://darcs.haskell.org/ghc/compiler/cmm/PprC.hs

I hope LLVM lets you put data next to code, which is what GHC needs for its info tables. Also I hope it lets you fix global registers.

Cheers,
        Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to