gcc-8-20180225: "go" breaks building OpenMP

Siegmar Gross siegmar.gross@informatik.hs-fulda.de
Fri Mar 9 16:28:00 GMT 2018


Hi Thomas,

OpenMP/OpenACC support isn't necessary for Objective-C/C++ or Go. It's
enough if it is available for C/C++ and Fortran, but it would be interesting
to build the compiler for Objective-C/C++ and Go.


Kind regards and thank you very much for your help in advance

Siegmar


Am 09.03.2018 um 17:15 schrieb Thomas Schwinge:
> Hi!
> 
> To close the loop:
> 
> On Fri, 9 Mar 2018 09:32:11 +0100, Siegmar Gross <siegmar.gross@informatik.hs-fulda.de> wrote:
>> Am 09.03.2018 um 08:44 schrieb Jakub Jelinek:
>>> On Fri, Mar 09, 2018 at 07:56:38AM +0100, Siegmar Gross wrote:
>>>> some days ago I've installed gcc-8-20180225 with accelerator support on my
>>>> "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.  Yesterday I
>>>> tried to add the languages objc, obj-c++, and go to my installation.
>>>> Unfortunately, I lost the OpenMP support.  Adding the languages
>>>> step-by-step, I found out that "go" is responsible for the problem.
> 
> (OpenACC/OpenMP usage in Objective-C and Objective-C++ code might
> somewhat work, or require not too much effort to get implemented, for
> these front ends are, as far as I remember, mostly implemented on top of
> the C and C++ front ends, but that would be completely untested, to the
> best of my knowledge.  And certainly no attention has been paid so far
> for any specialities of these C/C++ "dialects".)
> 
>>> Why are you doing it at all?
>>> In the OpenMP/OpenACC offloading compiler, you only need the LTO "frontend",
>>> and libraries built for C, C++ and Fortran as those are the languages
>>> supported by OpenMP/OpenACC.
> 
> Specifically, these are the *only* languages supported per the current
> OpenACC/OpenMP standards.  That's not a hard limitation though: one could
> add support for other languages to the OpenACC/OpenMP standards.
> 
> There currently isn't code offloading support in GCC for any other
> languages; offloading currently is available only via OpenACC/OpenMP.
> Other languages maybe might support code offloading via different
> mechanisms than the source code pragmas used for OpenACC/OpenMP.  These
> different mechanisms could then be mapped to the existing offloading
> support in GCC, extending that as needed.
> 
> For example, one could add logic to GCC to analyze any language's code in
> its common intermediate representation in GCC, and automatically figure
> out which computations make sense to distribute to SMP CPUs (see
> "-ftree-parallelize-loops"), or to offload to a GPU etc.  This is,
> however, a totally non-trivial amount of work.  :-) (This relates to the
> poor support in GCC for the OpenACC kernels construct, compared to the
> much more mature support for the OpenACC parallel and OpenMP target
> constructs.)
> 
> We're available for contracting on all such things, if I may add that
> here.
> 
>>> You don't need anything else.  And, Go doesn't
>>> support NVPTX at all.  Ada probably doesn't either.
>>
>> You are right. I'm using C and OpenMP/OpenACC for CPUs and accelerators, but a
>> colleague of mine wants to use the other languages, so that I tried to build
>> them as well.
> 
> 
> Grüße
>   Thomas



More information about the Gcc mailing list