public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Biener <rguenther@suse.de>
To: Thomas Schwinge <thomas@codesourcery.com>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH][RFC] Remove RTL loop unswitching
Date: Wed, 07 May 2014 12:47:00 -0000	[thread overview]
Message-ID: <alpine.LSU.2.11.1405071445110.18709@zhemvz.fhfr.qr> (raw)
In-Reply-To: <87k39x3ghs.fsf@kepler.schwinge.homeip.net>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 4164 bytes --]

On Wed, 7 May 2014, Thomas Schwinge wrote:

> Hi!
> 
> On Tue, 15 Apr 2014 11:26:29 +0200 (CEST), Richard Biener <rguenther@suse.de> wrote:
> > This removes RTL loop unswitching
> 
> > 2014-04-15  Richard Biener  <rguenther@suse.de>
> > 
> > 	* Makefile.in (OBJS): Remove loop-unswitch.o.
> > 	* loop-unswitch.c: Delete.
> > 	* tree-pass.h (make_pass_rtl_unswitch): Remove.
> > 	* passes.def (pass_rtl_unswitch): Likewise.
> > 	* loop-init.c (gate_rtl_unswitch): Likewise.
> > 	(rtl_unswitch): Likewise.
> > 	(pass_data_rtl_unswitch): Likewise.
> > 	(pass_rtl_unswitch): Likewise.
> > 	(make_pass_rtl_unswitch): Likewise.
> > 	* rtl.h (reversed_condition): Likewise.
> > 	(compare_and_jump_seq): Likewise.
> > 	* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
> > 	and make static.
> > 	* loop-unroll.c (compare_and_jump_seq): Likewise.
> 
> I found some more; OK to commit?  Is a non-bootstrap build enough for
> this, or is a full bootstrap build and test needed?

That's enough.

Ok.

Thanks,
Richard.

> commit 8a703b1e7adc6001f665a12f93601382e3eea806
> Author: Thomas Schwinge <thomas@codesourcery.com>
> Date:   Wed May 7 13:01:47 2014 +0200
> 
>     More gcc/loop-unswitch.c cleanup.
>     
>     	gcc/
>     	* cfgloop.h (unswitch_loops): Remove.
>     	* doc/passes.texi: Remove references to loop-unswitch.c
>     	* timevar.def (TV_LOOP_UNSWITCH): Remove.
> 
> diff --git gcc/cfgloop.h gcc/cfgloop.h
> index ab8b809..62a656a 100644
> --- gcc/cfgloop.h
> +++ gcc/cfgloop.h
> @@ -711,8 +711,6 @@ extern void loop_optimizer_init (unsigned);
>  extern void loop_optimizer_finalize (void);
>  
>  /* Optimization passes.  */
> -extern void unswitch_loops (void);
> -
>  enum
>  {
>    UAP_PEEL = 1,		/* Enables loop peeling.  */
> diff --git gcc/doc/passes.texi gcc/doc/passes.texi
> index 2727b2c..fb064db 100644
> --- gcc/doc/passes.texi
> +++ gcc/doc/passes.texi
> @@ -474,10 +474,7 @@ merging and induction variable elimination.  The pass is implemented in
>  Loop unswitching.  This pass moves the conditional jumps that are invariant
>  out of the loops.  To achieve this, a duplicate of the loop is created for
>  each possible outcome of conditional jump(s).  The pass is implemented in
> -@file{tree-ssa-loop-unswitch.c}.  This pass should eventually replace the
> -RTL level loop unswitching in @file{loop-unswitch.c}, but currently
> -the RTL level pass is not completely redundant yet due to deficiencies
> -in tree level alias analysis.
> +@file{tree-ssa-loop-unswitch.c}.
>  
>  The optimizations also use various utility functions contained in
>  @file{tree-ssa-loop-manip.c}, @file{cfgloop.c}, @file{cfgloopanal.c} and
> @@ -793,8 +790,8 @@ The source files @file{cfgloopanal.c} and @file{cfgloopmanip.c} contain
>  generic loop analysis and manipulation code.  Initialization and finalization
>  of loop structures is handled by @file{loop-init.c}.
>  A loop invariant motion pass is implemented in @file{loop-invariant.c}.
> -Basic block level optimizations---unrolling, peeling and unswitching loops---
> -are implemented in @file{loop-unswitch.c} and @file{loop-unroll.c}.
> +Basic block level optimizations---unrolling, and peeling loops---
> +are implemented in @file{loop-unroll.c}.
>  Replacing of the exit condition of loops by special machine-dependent
>  instructions is handled by @file{loop-doloop.c}.
>  
> diff --git gcc/timevar.def gcc/timevar.def
> index 9faf98b..2db1943 100644
> --- gcc/timevar.def
> +++ gcc/timevar.def
> @@ -207,7 +207,6 @@ DEFTIMEVAR (TV_DSE2                  , "dead store elim2")
>  DEFTIMEVAR (TV_LOOP                  , "loop analysis")
>  DEFTIMEVAR (TV_LOOP_INIT	     , "loop init")
>  DEFTIMEVAR (TV_LOOP_MOVE_INVARIANTS  , "loop invariant motion")
> -DEFTIMEVAR (TV_LOOP_UNSWITCH         , "loop unswitching")
>  DEFTIMEVAR (TV_LOOP_UNROLL           , "loop unrolling")
>  DEFTIMEVAR (TV_LOOP_DOLOOP           , "loop doloop")
>  DEFTIMEVAR (TV_LOOP_FINI	     , "loop fini")
> 
> 
> Grüße,
>  Thomas
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend"orffer

      reply	other threads:[~2014-05-07 12:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-15  9:28 Richard Biener
2014-04-15 12:58 ` Richard Biener
2014-04-20  7:09 ` Jan Hubicka
2014-04-23  8:20   ` Richard Biener
2014-04-23 16:32     ` Jan Hubicka
2014-05-07 10:34 ` Thomas Schwinge
2014-05-07 12:45 ` Thomas Schwinge
2014-05-07 12:47   ` Richard Biener [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LSU.2.11.1405071445110.18709@zhemvz.fhfr.qr \
    --to=rguenther@suse.de \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=thomas@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).