我一直在玩 Clang 和 Open64 并使用 OpenMP 库。我对这三个人不知所措! 我想知道是否有人可以帮助我找到 #pragma 指令扩展到的内容。我所知道的是,C文件中的 #pragma 指令将扩展为几行代码。我希望有人能告诉我在哪里可以找到它。我确信Clang和Open64编译器有汇编输出和不同的中间表示。但由于这没用,我想知道遇到指令时扩展的确切代码。
让我重新解释一下我的问题。
我知道OpenMP #pragma指令已扩展为某些代码行(或者我错了)。我希望有人能告诉我在编译器的来源或OpenMP的来源中我应该在哪里找到它?
让我举个例子。 考虑一下这段代码:
#pragma omp parallel
{
printf("Hello world! %d", omp_get_thread_num());
}
据我所知,它将被转换为类似的东西(或更复杂的东西):
f1();
{
printf("Hello world! %d", omp_get_thread_num());
}
f2();
我想知道f1()和f2()方法是什么。
如果我错了告诉我。如果你知道我应该在代码中找到什么,请告诉我。
感谢。