Voglio sapere se c'è qualsiasi funzione/metodo LLVM per aggiungere OpenMP costruisce in LLVM IR. Llvm-3.0 supporta ancora le direttive OpenMP?LLVM OpenMP supporto
5
A
risposta
2
OpenMP è un'estensione linguaggio di alto livello. Quindi, è il front-end C/C++/FORTRAN che dovrebbe ridurre il pragma nelle necessarie chiamate di runtime e alterazioni del codice.
Io non vedo come OpenMP può essere "ha aggiunto" per LLVM IR. Se hai bisogno del compilatore C/C++/FORTRAN che supporta i prugmi OpenMP ed emetti LLVM IR - prova dragonegg.
Nel recente thread ml [(LLVMdev) Supporto OpenMP per LLVM/jan2012] (http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-January/046823.html), utilizzo di intrinseche proposte. "Le persone interessate alla parallelizzazione automatica sono probabilmente più interessate a trasformare un semplice loop LLVM-IR in LLVM-IR con estensioni OpenMP." – osgx
@osgx: se stiamo parlando di rappresentazione indipendente libreria di runtime chiamata a OMP, allora sì, intrinseche speciale è un modo naturale. Il codice di Autopar in teoria potrebbe produrre il codice omp-aware. Quindi, molto probabilmente la domanda originale deve essere chiarita in che modo "LLVM può ancora supportare le direttive OpenMP" :) –
Giusto. Fondamentalmente ciò che l'abbassamento di openmp avviene è un insieme di chiamate di libreria per le varie direttive openmp (così come alcune modifiche di cfg), non c'è nulla di specifico che sia necessario nell'IR per openmp. Se vuoi essere in grado di notare le direttive OpenMP e ricostruire a un livello più alto le trasformazioni di loop allora potresti volere un supporto IR, ma non sono sicuro che sarebbe necessario. – echristo