我怎样才能更好地理解GCC中某些指令的工作流程?[关闭]

How I can have a better understanding of the workflow for some directive in GCC? [closed]

提问人:matteo cocciniglia 提问时间:11/9/2023 最后编辑:Jonathan Lefflermatteo cocciniglia 更新时间:11/10/2023 访问量:74

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

12天前关闭。

我目前正在做一个项目,我需要更好地了解 GOMP 指令的 GCC 工作流程,我也想对源代码进行一些更改。 是否有最佳实践? 我应该重新编译整个 GCC 来做到这一点吗?

我已经搜索了如何构建我的 GCC,但仅仅为了更改一些更改而这样做感觉太过分了。

C GCC 编译器优化 GNU libgomp

评论


答:

1赞 Joseph Tate 11/9/2023 #1

如果你看一下这里的openmp文档,似乎GOMP使用makefile和编译指示向gcc编译器提供信息并注释其行为方式,而不是实际重写GCC的源代码。我不是专家,所以如果我离开了,请原谅我......这是我看到的一个例子:

#include <std.io>
#include <omp.h>

int main (void) {
    omp_set_nested(1);
    omp_set_dynamic(0);
    #pragma omp parallel
    {
        //should print whatever OMP_NUM_THREADS was set to.
        printf ("Inner: num_thds=%d\n", omp_get_num_threads());
    }
    #pragma omp barrier
    return 0;
}

您是否正在尝试使用 GOMP 将线程卸载到另一台设备?或者您只想在本地运行多线程?您具体想将 GOMP 用于什么?

这是我找到的另一个有用的资源......将 OpenMP 与 C 一起使用

评论

1赞 matteo 11/10/2023
谢谢你的回答!我不是要使用该库,而是要了解该库的某些部分究竟是如何工作的,然后将我的代码注入其中。这就是为什么我感到困惑的原因,如果我必须构建整个 GCC 还是有其他解决方案