LLVM Backend status

Hi! I'm new to Haskell and I'm very interested in using it as a base layer for my application. I need to generate the LLVM-IR code from ghc compiler, so I've got 2 questuions to you: 1) Is the LLVM Backend actively developed or should I be afraid it will be discontinued or broken? 2) How can I generate the LLVM IR (or bc) files from the compiler? I see that durign compilation with -fllvm -v3 flags the bc files are created but they are immidietly (after usage) deleted - Is it possible to tell the compiler not to delete them?

B B, Thu 2013-06-27 @ 20:55:57+0200:
2) How can I generate the LLVM IR (or bc) files from the compiler? I see that durign compilation with -fllvm -v3 flags the bc files are created but they are immidietly (after usage) deleted - Is it possible to tell the compiler not to delete them?
You can use the `-keep-llvm-files` option for this.

B B wrote:
1) Is the LLVM Backend actively developed or should I be afraid it will be discontinued or broken?
My understanding is that it is being actively developed. Currently for numerical code, the LLVM backend performs better than the native codegen. I also think that the LLVM backend is the only option for ARM.
2) How can I generate the LLVM IR (or bc) files from the compiler? I see that durign compilation with -fllvm -v3 flags the bc files are created but they are immidietly (after usage) deleted - Is it possible to tell the compiler not to delete them?
As someone else stated, use `-keep-llvm-files` but be aware that GHC uses a custom calling convention so calling into GHC generated LLVM code is non-trivial. HTH, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/

Erik de Castro Lopo wrote:
B B wrote:
1) Is the LLVM Backend actively developed or should I be afraid it will be discontinued or broken?
My understanding is that it is being actively developed. Currently for numerical code, the LLVM backend performs better than the native codegen. I also think that the LLVM backend is the only option for ARM.
And there was a lareg set of patches for the LLVM backend applied just now: http://www.haskell.org/pipermail/ghc-commits/2013-June/002324.html and the following 10 or so commit. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/

Great!
Its very very nice to hear that!
Has Haskell somewhere a technical documentation focused on LLVM usage? (for
exampel about GHC's custom calling convention)
2013/6/28 Erik de Castro Lopo
Erik de Castro Lopo wrote:
B B wrote:
1) Is the LLVM Backend actively developed or should I be afraid it will be discontinued or broken?
My understanding is that it is being actively developed. Currently for numerical code, the LLVM backend performs better than the native codegen. I also think that the LLVM backend is the only option for ARM.
And there was a lareg set of patches for the LLVM backend applied just now:
http://www.haskell.org/pipermail/ghc-commits/2013-June/002324.html
and the following 10 or so commit.
Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

B B wrote:
Great! Its very very nice to hear that!
Has Haskell somewhere a technical documentation focused on LLVM usage? (for exampel about GHC's custom calling convention)
Root page of the compiler comentary is here: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler with info about the LLVM backend here: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM It seems the custom calling convention may only be documented in the code. Cheers, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
participants (3)
-
B B
-
Erik de Castro Lopo
-
Taylor Hedberg