1
我有些麻煩纏繞着LLVM的實際情況...... 我是否有權假定它可以用於在運行時在C++程序中解析數學表達式?用於解析數學表達式的LLVM
現在,在運行時,我得到了數學表達式並構建了一個C程序,通過對gcc進行系統調用即時編譯它。然後我動態加載由gcc生成的.so,並提取我的eval函數...
我想用簡單一些的東西來取代這個工作流程,甚至更快一些...... LLVM能幫我嗎?有任何資源讓我開始?
我有些麻煩纏繞着LLVM的實際情況...... 我是否有權假定它可以用於在運行時在C++程序中解析數學表達式?用於解析數學表達式的LLVM
現在,在運行時,我得到了數學表達式並構建了一個C程序,通過對gcc進行系統調用即時編譯它。然後我動態加載由gcc生成的.so,並提取我的eval函數...
我想用簡單一些的東西來取代這個工作流程,甚至更快一些...... LLVM能幫我嗎?有任何資源讓我開始?
您正在描述使用LLVM作爲JIT編譯器,這是絕對有可能的。如果您生成LLVM IR代碼(在內存中)並將其交給庫,它將爲您生成機器代碼(仍在內存中)。然後,您可以運行該代碼,只要你喜歡。
如果要從C代碼生成LLVM IR,您還可以鏈接clang
作爲庫。
Here是我在this answer找到的PDF,它有一些如何使用LLVM作爲JIT的例子。