在LLVM-3.0中执行Openmp程序

在LLVM-3.0中执行Openmp程序,llvm,openmp,llvm-gcc,llvm-3.0,Llvm,Openmp,Llvm Gcc,Llvm 3.0,我使用llvm gcc为Openmp程序生成了一个.ll文件(用c编写)。 然后使用opt(3.0版)进行优化 但是当我尝试使用lli或llvm ld执行优化的.ll文件时,会出现以下错误, LLVM ERROR: Program used external function 'GOMP_parallel_start' which could not be resolved! 这是我遵循的步骤 $ llvm-gcc -emit-llvm loop11.c -fopenmp

我使用llvm gcc为Openmp程序生成了一个.ll文件(用c编写)。
然后使用opt(3.0版)进行优化
但是当我尝试使用lli或llvm ld执行优化的.ll文件时,会出现以下错误,

        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!
请帮我解决这个问题。

提前感谢。

在这种情况下,您必须链接/加载OpenMP运行时libgomp。

我尝试链接OpenMP运行时libgomp,[[$llvm ld-l=“/usr/lib/i386 linux gnu/gcc/i686 linux gnu/4.5.2/libgomp.a”op.bc]]获取相同的错误。仅当您使用llvm ld生成本机代码时,此操作才有效。您可以将libgomp编译成LLVMIR并将其链接到,或者将libgomp.so加载到lli的进程中。另外,请确保LLVM是使用libffi支持编译的。