r238389 - [omp] Re-work Clang's handling of -fopenmp and undo r237769.

İsmail Dönmez ismail at donmez.ws
Sat May 30 00:04:14 PDT 2015


On Fri, May 29, 2015 at 10:53 PM, Chandler Carruth <chandlerc at google.com> wrote:
> On Fri, May 29, 2015 at 11:40 AM İsmail Dönmez <ismail at donmez.ws> wrote:
>>
>> On Fri, May 29, 2015 at 9:32 PM, Richard Smith <richard at metafoo.co.uk>
>> wrote:
>> > On Fri, May 29, 2015 at 5:56 AM, İsmail Dönmez <ismail at donmez.ws> wrote:
>> >>
>> >> On Thu, May 28, 2015 at 11:48 PM, Chandler Carruth
>> >> <chandlerc at gmail.com>
>> >> wrote:
>> >> > On Thu, May 28, 2015 at 5:09 AM İsmail Dönmez <ismail at donmez.ws>
>> >> > wrote:
>> >> >>
>> >> >> Hi,
>> >> >>
>> >> >> On Thu, May 28, 2015 at 4:52 AM, Chandler Carruth
>> >> >> <chandlerc at gmail.com>
>> >> >> wrote:
>> >> >> > Author: chandlerc
>> >> >> > Date: Wed May 27 20:52:38 2015
>> >> >> > New Revision: 238389
>> >> >> >
>> >> >> > URL: http://llvm.org/viewvc/llvm-project?rev=238389&view=rev
>> >> >> > Log:
>> >> >> > [omp] Re-work Clang's handling of -fopenmp and undo r237769.
>> >> >>
>> >> >>
>> >> >> This seems to break openmp tests with
>> >> >> -DCLANG_DEFAULT_OPENMP_RUNTIME=libiomp5 see:
>> >> >
>> >> >
>> >> > Yea, I wanted to have test coverage of the default, but it doesn't
>> >> > work
>> >> > well
>> >> > when the default is overridden.
>> >> >
>> >> > I looked into how to actually have test coverage of the default and
>> >> > track
>> >> > which default was selected, but its really hard and complex. Yuck.
>> >> >
>> >> > I'll look for a way to get at least *some* coverage of the default
>> >> > without
>> >> > making it break folks that are overriding it. Sorry for the trouble.
>> >>
>> >> Tests pass now but there is still one grave problem. With
>> >> CLANG_DEFAULT_OPENMP_RUNTIME=libiomp5 if you do:
>> >>
>> >> λ clang -fopenmp=libgomp omp_hello.c
>> >> λ ./a.out
>> >> Hello World from thread = 0
>> >> Number of threads = 1
>> >>
>> >> No OpenMP, lets go back to defaults:
>> >>
>> >> λ clang -fopenmp=libiomp5 omp_hello.c
>> >> λ ./a.out
>> >> Hello World from thread = 0
>> >> Hello World from thread = 4
>> >> Hello World from thread = 3
>> >> Hello World from thread = 2
>> >> Hello World from thread = 6
>> >> Hello World from thread = 1
>> >> Hello World from thread = 5
>> >> Hello World from thread = 7
>> >> Number of threads = 8
>> >
>> >
>> > OK, and what's the one grave problem?
>>
>> tl;dr clang -fopenmp=libgomp compiles and links to libgomp but doesn't
>> enable OpenMP.
>
>
> I think that is actually the best behavior we can provide.
>
> Clang doesn't support emitting code compatible with libgomp. There is
> currently no support for actually enabling OpenMP in Clang and using
> libgomp.

Oh thats news to me. Thanks!




More information about the cfe-commits mailing list