]> gcc.gnu.org Git - gcc.git/commitdiff
loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
authorRichard Henderson <rth@redhat.com>
Mon, 22 Jul 2002 00:26:03 +0000 (17:26 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 22 Jul 2002 00:26:03 +0000 (17:26 -0700)
        * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
        * loop.c (strength_reduce): Update.
        * toplev.c (rest_of_compilation): Do unrolling in the first
        loop pass, not the second.

From-SVN: r55634

gcc/ChangeLog
gcc/loop.c
gcc/loop.h
gcc/toplev.c

index a852ef736ae424d7ed3d1e2fcafebf99be583c1c..d1959cc5a3d552d57875c7394477d72dc6a9c70e 100644 (file)
@@ -1,3 +1,10 @@
+2002-07-21  Richard Henderson  <rth@redhat.com>
+
+       * loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
+       * loop.c (strength_reduce): Update.
+       * toplev.c (rest_of_compilation): Do unrolling in the first
+       loop pass, not the second.
+
 2002-07-21  Richard Henderson  <rth@redhat.com>
 
        * emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL
index c943c6d8905ef26d0d3220f883348e1e32b6651b..1b8afd50ddcc6ab7b0e5c2ae0be1c148e0f90659 100644 (file)
@@ -5320,7 +5320,7 @@ strength_reduce (loop, flags)
      collected.  Always unroll loops that would be as small or smaller
      unrolled than when rolled.  */
   if ((flags & LOOP_UNROLL)
-      || (!(flags & LOOP_FIRST_PASS)
+      || ((flags & LOOP_AUTO_UNROLL)
          && loop_info->n_iterations > 0
          && unrolled_insn_copies <= insn_count))
     unroll_loop (loop, insn_count, 1);
index 631352fee6d23861b3642e57c18ea713e84d9c7a..13b629311d4676e5b2e3b3337895dee45d6106f4 100644 (file)
@@ -28,7 +28,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #define LOOP_UNROLL 1
 #define LOOP_BCT 2
 #define LOOP_PREFETCH 4
-#define LOOP_FIRST_PASS 8
+#define LOOP_AUTO_UNROLL 8
 
 /* Get the loop info pointer of a loop.  */
 #define LOOP_INFO(LOOP) ((struct loop_info *) (LOOP)->aux)
index f9ebc17aefcfaf81743f3395fc529988885f4706..cfb21e45076985708b3862df14936c021d786c8f 100644 (file)
@@ -1,4 +1,3 @@
-
 /* Top level of GNU C compiler
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
    1999, 2000, 2001, 2002 Free Software Foundation, Inc.
@@ -2878,6 +2877,8 @@ rest_of_compilation (decl)
 
   if (optimize > 0 && flag_loop_optimize)
     {
+      int do_unroll, do_prefetch;
+
       timevar_push (TV_LOOP);
       delete_dead_jumptables ();
       cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
@@ -2885,12 +2886,15 @@ rest_of_compilation (decl)
       /* CFG is no longer maintained up-to-date.  */
       free_bb_for_insn ();
 
+      do_unroll = flag_unroll_loops ? LOOP_UNROLL : LOOP_AUTO_UNROLL;
+      do_prefetch = flag_prefetch_loop_arrays ? LOOP_PREFETCH : 0;
       if (flag_rerun_loop_opt)
        {
          cleanup_barriers ();
 
          /* We only want to perform unrolling once.  */
-         loop_optimize (insns, rtl_dump_file, LOOP_FIRST_PASS);
+         loop_optimize (insns, rtl_dump_file, do_unroll);
+         do_unroll = 0;
 
          /* The first call to loop_optimize makes some instructions
             trivially dead.  We delete those instructions now in the
@@ -2903,9 +2907,7 @@ rest_of_compilation (decl)
          reg_scan (insns, max_reg_num (), 1);
        }
       cleanup_barriers ();
-      loop_optimize (insns, rtl_dump_file,
-                    (flag_unroll_loops ? LOOP_UNROLL : 0) | LOOP_BCT
-                    | (flag_prefetch_loop_arrays ? LOOP_PREFETCH : 0));
+      loop_optimize (insns, rtl_dump_file, do_unroll | LOOP_BCT | do_prefetch);
 
       /* Loop can create trivially dead instructions.  */
       delete_trivially_dead_insns (insns, max_reg_num ());
This page took 0.117712 seconds and 5 git commands to generate.