2013-01-31 35 views
1

我有些麻煩纏繞着LLVM的實際情況...... 我是否有權假定它可以用於在運行時在C++程序中解析數學表達式?用於解析數學表達式的LLVM

現在,在運行時,我得到了數學表達式並構建了一個C程序,通過對gcc進行系統調用即時編譯它。然後我動態加載由gcc生成的.so,並提取我的eval函數...

我想用簡單一些的東西來取代這個工作流程,甚至更快一些...... LLVM能幫我嗎?有任何資源讓我開始?

回答

1

您正在描述使用LLVM作爲JIT編譯器,這是絕對有可能的。如果您生成LLVM IR代碼(在內存中)並將其交給庫,它將爲您生成機器代碼(仍在內存中)。然後,您可以運行該代碼,只要你喜歡。

如果要從C代碼生成LLVM IR,您還可以鏈接clang作爲庫。

Here是我在this answer找到的PDF,它有一些如何使用LLVM作爲JIT的例子。