2016-04-22 10 views
0

Beim Kompilieren eines cpp-Programms mit OMP-Direktiven mit LLVM Clang ++ 4.9.2 Ich sehe versteckte Funktion @ .omp_outlined. wurde im Bitcode generiert. Ich frage mich, was ist diese versteckte Funktion und wenn es möglich ist, es zu vermeiden.omp_outlined in omp-Programm kompiliert mit LLVM

+0

Es gibt keinen Klang 4.9.2. Die neueste veröffentlichte Version ist 3.8 –

Antwort

4

Nein, Sie können die Generierung von umrissenem Code in Clang nicht verhindern. Den Code für parallele Regionen in seine eigene Funktion einzuordnen, ist, wie OpenMP von Clang und vielen anderen Compilern implementiert wird, einschließlich GCC, Intel und MSVC. Weitere Details zur Implementierung von GCC finden Sie unter here und here. Clang folgt mehr oder weniger der gleichen Methode.

Der einzige OpenMP-Compiler, der OpenMP-parallele Regionen nicht explizit umreißt, ist meines Wissens der von PGI. Es führt einige Stapelrahmen-Magie aus, um mehreren Threads zu ermöglichen, Teile des Funktionscodes auszuführen.