定制Cabal库(我认为?)
也许这只是描述我的问题。
我正在开发一个Haskell库。 但是库的一部分是用C语言编写的,而另一部分是用原始LLVM编写的。 要真正让GHC吐出我想要的代码,我必须遵循这个过程:
ghc -emit-llvm
。 clang -emit-llvm
.ll
文件。 我添加了我在原始LLVM中手写的库的一部分,并将它们llvm-link
到一个.ll
文件中。 opt
上链接的文件。 这个过程(当然有适当的优化设置)似乎是我可以从C中内联代码的唯一方式,从而消除了函数调用开销。 由于这些C函数中的很多都非常小,所以这很重要。
无论如何,我希望能够分发图书馆,并让用户尽可能无痛地使用它,同时仍然从上述过程中获得优化。 我知道这会比普通的图书馆更痛苦(例如,你不得不通过LLVM编译),但尽可能无痛苦的是我寻求的建议。
任何指导将不胜感激,我不期望一步一步的答案,因为我认为这将是复杂的,但只是一些想法会有所帮助。
链接地址: http://www.djcxy.com/p/43221.html