繁体   English   中英

二进制不起作用,IR 没有任何特征分叉调用

[英]Binary doesn't work and IR doesn't have any characteristic forking calls

我试图使用 libgomp 运行带有 clang 10.0.0 的 openmp 代码。

这是我使用 libomp 运行代码所做的(我也需要查看 LLVM-IR)

clang -Xclang -cc1 file.c -emit-llvm -S -fopenmp=libomp
clang -fopenmp=libomp file.ll

在这里,二进制文件按预期工作(并行)并且 IR 具有特征@__kmpc_fork_call function。

当我尝试使用 libgomp 进行相同操作时

clang -Xclang -cc1 file.c -emit-llvm -S -fopenmp=libgomp
clang -fopenmp=libgomp file.ll

在这种情况下,二进制文件既不能按预期工作(只有一个线程运行),IR 也没有任何特征分叉调用。 我在这里做错了吗?

AFAIK,遗憾的是,到目前为止还没有真正支持此功能。 Clang (12.0) 的最新版本显然不会生成 GOMP function 调用,而它使用自己的 OpenMP 运行时。

有关详细信息,请参阅此报告的错误 开发人员说:

我认为-fopenmp=libgomp根本不起作用。 [...] -fopenmp=libgomp就像您在没有-fopenmp的情况下进行编译一样。 [...] Clang 仅使用libomp接口,不依赖libgomp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM