如何使用GHC编译器将* .hs编译为llvm ir(* .ll)?

时间:2015-02-17 18:17:36

标签: haskell llvm ghc

我试过

ghc -fllvm -pgmlo -pgmlc -ddump-llvm src.hs

ghc -fllvm -pgmlo -pgmlc -keep-llvm-files src.hs

opt和llc(3.5.1版本)在PATH中

但是在执行命令后我没有找到任何llvm ir。

2 个答案:

答案 0 :(得分:8)

可能GHC没有重新编译你的程序,因为自你上次运行GHC以来程序没有改变。这似乎可能是因为-pgmlo -pgmlc意味着"使用-pgmlc作为LLVM优化器"哪个不行。跑吧

ghc -fllvm -keep-llvm-files -fforce-recomp src.hs

(或手动修改src.hs并重新编译)。

答案 1 :(得分:2)

1)-pgm[letter] - 如果您只编译成C代码,则使用此命令(如果您编译时没有-fllvm标志,则使用此命令)

2)-keep-llvm-files - 在当前目录中找到.ll文件,否则尝试在/ tmp目录中找到它们(我在某处看到了这个bug)

3)ghc仅适用于llvm 3.5