This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch, driver] Ignore -ftree-parallelize-loops={0,1}


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?
> 
> 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

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]