2012-03-06 34 views
1

我使用llvm-gcc爲Openmp程序生成了一個.ll文件(用c編寫)。
然後使用選擇(版本3.0)
但是當我嘗試使用LLI或LLVM-LD,收到以下錯誤,執行優化.ll文件,優化
在LLVM-3.0中執行Openmp程序

 LLVM ERROR: Program used external function 'GOMP_parallel_start' which could not be resolved! 

這裏是我遵循的步驟,

$ llvm-gcc -emit-llvm loop11.c -fopenmp -o loop.ll -S 
    $ opt -O3 loop.ll -o loop.opt.ll -S 
    $ lli loop.opt.ll 
    LLVM ERROR: Program used external function 'GOMP_parallel_start' which could not be resolved! 

請幫我解決這個問題。
在此先感謝。

回答

3

在這種情況下,您必須鏈接/加載OpenMP運行時libgomp。

+0

我嘗試鏈接OpenMP運行庫libgomp [[$ llvm-ld -l =「/ usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/libgomp.a」op.bc ]]得到相同的錯誤。 – shashikiran 2012-03-07 04:16:09

+2

只有當您使用llvm-ld生成本機代碼時,這纔會起作用。您可以將libgomp編譯爲LLVM IR並將其鏈接,或將* libgomp.so加載到lli的進程中。另外,確保LLVM編譯時支持libffi。 – 2012-03-07 06:47:42