OSDN Git Service

* tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
[pf3gnuchains/gcc-fork.git] / gcc / tracer.c
index 9b88766..5d3aaf4 100644 (file)
@@ -1,6 +1,6 @@
 /* The tracer pass for the GNU compiler.
    Contributed by Jan Hubicka, SuSE Labs.
-   Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -16,8 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with GCC; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 /* This pass performs the tail duplication needed for superblock formation.
    For more information see:
@@ -65,7 +65,7 @@ static int branch_ratio_cutoff;
 /* Return true if BB has been seen - it is connected to some trace
    already.  */
 
-#define seen(bb) (bb->rbi->visited || bb->rbi->next)
+#define seen(bb) (bb->il.rtl->visited || bb->aux)
 
 /* Return true if we should ignore the basic block for purposes of tracing.  */
 static bool
@@ -292,8 +292,8 @@ tail_duplicate (void)
                fprintf (dump_file, "Duplicated %i as %i [%i]\n",
                         old->index, bb2->index, bb2->frequency);
            }
-         bb->rbi->next = bb2;
-         bb2->rbi->visited = 1;
+         bb->aux = bb2;
+         bb2->il.rtl->visited = 1;
          bb = bb2;
          /* In case the trace became infrequent, stop duplicating.  */
          if (ignore_bb_p (bb))
@@ -321,35 +321,35 @@ tail_duplicate (void)
 static void
 layout_superblocks (void)
 {
-  basic_block end = EDGE_SUCC (ENTRY_BLOCK_PTR, 0)->dest;
-  basic_block bb = EDGE_SUCC (ENTRY_BLOCK_PTR, 0)->dest->next_bb;
+  basic_block end = single_succ (ENTRY_BLOCK_PTR);
+  basic_block bb = end->next_bb;
 
   while (bb != EXIT_BLOCK_PTR)
     {
       edge_iterator ei;
       edge e, best = NULL;
-      while (end->rbi->next)
-       end = end->rbi->next;
+      while (end->aux)
+       end = end->aux;
 
       FOR_EACH_EDGE (e, ei, end->succs)
        if (e->dest != EXIT_BLOCK_PTR
-           && e->dest != EDGE_SUCC (ENTRY_BLOCK_PTR, 0)->dest
-           && !e->dest->rbi->visited
+           && e->dest != single_succ (ENTRY_BLOCK_PTR)
+           && !e->dest->il.rtl->visited
            && (!best || EDGE_FREQUENCY (e) > EDGE_FREQUENCY (best)))
          best = e;
 
       if (best)
        {
-         end->rbi->next = best->dest;
-         best->dest->rbi->visited = 1;
+         end->aux = best->dest;
+         best->dest->il.rtl->visited = 1;
        }
       else
        for (; bb != EXIT_BLOCK_PTR; bb = bb->next_bb)
          {
-           if (!bb->rbi->visited)
+           if (!bb->il.rtl->visited)
              {
-               end->rbi->next = bb;
-               bb->rbi->visited = 1;
+               end->aux = bb;
+               bb->il.rtl->visited = 1;
                break;
              }
          }