[patch, driver] Ignore -ftree-parallelize-loops={0,1}
Tom de Vries
Tom_deVries@mentor.com
Fri Apr 8 11:39:00 GMT 2016
On 08/04/16 12:35, Thomas Schwinge wrote:
> Hi!
>
> Ping.
>
> On Thu, 17 Mar 2016 17:24:48 +0100, I wrote:
>> On Tue, 14 Jul 2015 10:36:25 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
>>> On 14/07/15 06:54, Jeff Law wrote:
>>>> On 07/13/2015 04:58 AM, Tom de Vries wrote:
>>>>> On 07/07/15 09:53, Tom de Vries wrote:
>>>>>> currently, we have these spec strings in gcc/gcc.c involving
>>>>>> ftree-parallelize-loops:
>>>>>> ...
>>>>>> %{fopenacc|fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}
>>>>>>
>>>>>>
>>>>>>
>>>>>> %{fopenacc|fopenmp|ftree-parallelize-loops=*:-pthread}"
>>>>>> ...
>>>>>>
>>>>>> Actually, ftree-parallelize-loops={0,1} means that no parallelization is
>>>>>> done, but these spec strings still get activated for these values.
>>>>>>
>>>>>>
>>>>>> Attached patch fixes that, by introducing a spec function gt (short for
>>>>>> greather than), and using it in the spec lines.
>>
>>> Committed the patch using the gt function, as attached (formatting
>>> fixed, ChangeLog entry added).
>>
>>> Ignore -ftree-parallelize-loops={0,1} using gt
>>>
>>> 2015-07-14 Tom de Vries <tom@codesourcery.com>
>>>
>>> * gcc.c (greater_than_spec_func): Declare forward.
>>> (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
>>> -ftree-parallelize-loops={0,1}.
>>> (static_spec_functions): Add greater_than_spec_func function with name
>>> "gt".
>>> (greater_than_spec_func): New function.
>>
>> I recently noticed that this change failed to update the instances of
>> ftree-parallelize-loops in other spec strings. I can't easily test my
>> proposed changes, but I just mechanically changed
>> "ftree-parallelize-loops=*" to "%:gt(%{ftree-parallelize-loops=*:%*} 1)"
>> (which is the spelling to use after Jakub's "[PATCH] Fix driver handling
>> of multiple -ftree-parallelize-loops=<n> options (PR driver/69805)",
>> <http://news.gmane.org/find-root.php?message_id=%3C20160216152439.GT3017%40tucnak.redhat.com%3E>).
>> OK to commit?
>>
Hi Thomas,
I've looked at the patch, it looks good to me.
I think it can be committed as obvious.
Thanks,
- Tom
>> commit df7d7943ae64f6df74d360e71f7c495c78647fda
>> Author: Thomas Schwinge <thomas@codesourcery.com>
>> Date: Thu Mar 17 17:17:36 2016 +0100
>>
>> Complete changes to "Ignore -ftree-parallelize-loops={0,1} using gt"
>>
>> Apply the r225764 and r233573 changes to all relevant spec strings.
>>
>> gcc/
>> * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
>> -ftree-parallelize-loops={0,1}.
>> * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
>> * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
>> * config/ia64/hpux.h (LIB_SPEC): Likewise.
>> * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
>> * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
>> ---
>> gcc/config/arc/arc.h | 3 ++-
>> gcc/config/darwin.h | 2 +-
>> gcc/config/i386/mingw32.h | 2 +-
>> gcc/config/ia64/hpux.h | 2 +-
>> gcc/config/pa/pa-hpux11.h | 2 +-
>> gcc/config/pa/pa64-hpux.h | 12 ++++++------
>> 6 files changed, 12 insertions(+), 11 deletions(-)
>>
>> diff --git gcc/config/arc/arc.h gcc/config/arc/arc.h
>> index 21c049f..1c2a38d 100644
>> --- gcc/config/arc/arc.h
>> +++ gcc/config/arc/arc.h
>> @@ -188,7 +188,8 @@ along with GCC; see the file COPYING3. If not see
>> %(linker) %l " LINK_PIE_SPEC "%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}\
>> %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
>> %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\
>> - %{fopenacc|fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
>> + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> + %:include(libgomp.spec)%(link_gomp)}\
>> %(mflib)\
>> %{fprofile-arcs|fprofile-generate|coverage:-lgcov}\
>> %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\
>> diff --git gcc/config/darwin.h gcc/config/darwin.h
>> index 9f686d3..c9981b8 100644
>> --- gcc/config/darwin.h
>> +++ gcc/config/darwin.h
>> @@ -177,7 +177,7 @@ extern GTY(()) int darwin_ms_struct;
>> %{o*}%{!o:-o a.out} \
>> %{!nostdlib:%{!nostartfiles:%S}} \
>> %{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
>> - %{fopenacc|fopenmp|ftree-parallelize-loops=*: \
>> + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1): \
>> %{static|static-libgcc|static-libstdc++|static-libgfortran: libgomp.a%s; : -lgomp } } \
>> %{fgnu-tm: \
>> %{static|static-libgcc|static-libstdc++|static-libgfortran: libitm.a%s; : -litm } } \
>> diff --git gcc/config/i386/mingw32.h gcc/config/i386/mingw32.h
>> index 4ac5f68..e048189 100644
>> --- gcc/config/i386/mingw32.h
>> +++ gcc/config/i386/mingw32.h
>> @@ -207,7 +207,7 @@ do { \
>>
>> /* mingw32 uses the -mthreads option to enable thread support. */
>> #undef GOMP_SELF_SPECS
>> -#define GOMP_SELF_SPECS "%{fopenacc|fopenmp|ftree-parallelize-loops=*: " \
>> +#define GOMP_SELF_SPECS "%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1): " \
>> "-mthreads -pthread}"
>> #undef GTM_SELF_SPECS
>> #define GTM_SELF_SPECS "%{fgnu-tm:-mthreads -pthread}"
>> diff --git gcc/config/ia64/hpux.h gcc/config/ia64/hpux.h
>> index 8b90c99..008c4f6 100644
>> --- gcc/config/ia64/hpux.h
>> +++ gcc/config/ia64/hpux.h
>> @@ -92,7 +92,7 @@ do { \
>> #undef LIB_SPEC
>> #define LIB_SPEC \
>> "%{!shared: \
>> - %{mt|pthread:%{fopenacc|fopenmp|ftree-parallelize-loops=*:-lrt} -lpthread} \
>> + %{mt|pthread:%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):-lrt} -lpthread} \
>> %{p:%{!mlp64:-L/usr/lib/hpux32/libp} \
>> %{mlp64:-L/usr/lib/hpux64/libp} -lprof} \
>> %{pg:%{!mlp64:-L/usr/lib/hpux32/libp} \
>> diff --git gcc/config/pa/pa-hpux11.h gcc/config/pa/pa-hpux11.h
>> index 3e5207a..600b677 100644
>> --- gcc/config/pa/pa-hpux11.h
>> +++ gcc/config/pa/pa-hpux11.h
>> @@ -147,7 +147,7 @@ along with GCC; see the file COPYING3. If not see
>> #undef LIB_SPEC
>> #define LIB_SPEC \
>> "%{!shared:\
>> - %{fopenacc|fopenmp|ftree-parallelize-loops=*:\
>> + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> %{static:-a archive_shared} -lrt %{static:-a archive}}\
>> %{mt|pthread:-lpthread} -lc\
>> %{static:%{!nolibdld:-a archive_shared -ldld -a archive -lc}\
>> diff --git gcc/config/pa/pa64-hpux.h gcc/config/pa/pa64-hpux.h
>> index a5ccb4a..279406a 100644
>> --- gcc/config/pa/pa64-hpux.h
>> +++ gcc/config/pa/pa64-hpux.h
>> @@ -58,21 +58,21 @@ along with GCC; see the file COPYING3. If not see
>> #if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_GNU_LD)
>> #define LIB_SPEC \
>> "%{!shared:\
>> - %{!p:%{!pg:%{fopenacc|fopenmp|ftree-parallelize-loops=*:\
>> + %{!p:%{!pg:%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> %{static:-a shared} -lrt %{static:-a archive}}\
>> %{mt|pthread:-lpthread} -lc\
>> %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
>> %{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
>> %{p:%{!pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
>> -lprof %{static:-a archive}\
>> - %{fopenacc|fopenmp|ftree-parallelize-loops=*:\
>> + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> %{static:-a shared} -lrt %{static:-a archive}}\
>> %{mt|pthread:-lpthread} -lc\
>> %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
>> %{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
>> %{pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
>> -lgprof %{static:-a archive}\
>> - %{fopenacc|fopenmp|ftree-parallelize-loops=*:\
>> + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> %{static:-a shared} -lrt %{static:-a archive}}\
>> %{mt|pthread:-lpthread} -lc\
>> %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
>> @@ -81,21 +81,21 @@ along with GCC; see the file COPYING3. If not see
>> #else
>> #define LIB_SPEC \
>> "%{!shared:\
>> - %{!p:%{!pg:%{fopenacc|fopenmp|ftree-parallelize-loops=*:\
>> + %{!p:%{!pg:%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> %{static:-a shared} -lrt %{static:-a archive}}\
>> %{mt|pthread:-lpthread} -lc\
>> %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
>> %{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
>> %{p:%{!pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
>> -lprof %{static:-a archive}\
>> - %{fopenacc|fopenmp|ftree-parallelize-loops=*:\
>> + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> %{static:-a shared} -lrt %{static:-a archive}}\
>> %{mt|pthread:-lpthread} -lc\
>> %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
>> %{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
>> %{pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
>> -lgprof %{static:-a archive}\
>> - %{fopenacc|fopenmp|ftree-parallelize-loops=*:\
>> + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
>> %{static:-a shared} -lrt %{static:-a archive}}\
>> %{mt|pthread:-lpthread} -lc\
>> %{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
>
>
> GrüÃe
> Thomas
>
More information about the Gcc-patches
mailing list