OSDN Git Service

2010-04-30 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / graphds.c
index 1496e09..4ee71df 100644 (file)
@@ -6,7 +6,7 @@ This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
+Software Foundation; either version 3, or (at your option) any later
 version.
 
 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -15,9 +15,8 @@ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
 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, 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
@@ -34,7 +33,7 @@ void
 dump_graph (FILE *f, struct graph *g)
 {
   int i;
-  struct edge *e;
+  struct graph_edge *e;
 
   for (i = 0; i < g->n_vertices; i++)
     {
@@ -69,10 +68,10 @@ new_graph (int n_vertices)
 
 /* Adds an edge from F to T to graph G.  The new edge is returned.  */
 
-struct edge *
+struct graph_edge *
 add_edge (struct graph *g, int f, int t)
 {
-  struct edge *e = XNEW (struct edge);
+  struct graph_edge *e = XNEW (struct graph_edge);
   struct vertex *vf = &g->vertices[f], *vt = &g->vertices[t];
 
 
@@ -95,7 +94,7 @@ identify_vertices (struct graph *g, int v, int u)
 {
   struct vertex *vv = &g->vertices[v];
   struct vertex *uu = &g->vertices[u];
-  struct edge *e, *next;
+  struct graph_edge *e, *next;
 
   for (e = uu->succ; e; e = next)
     {
@@ -122,7 +121,7 @@ identify_vertices (struct graph *g, int v, int u)
    direction given by FORWARD.  */
 
 static inline int
-dfs_edge_src (struct edge *e, bool forward)
+dfs_edge_src (struct graph_edge *e, bool forward)
 {
   return forward ? e->src : e->dest;
 }
@@ -131,7 +130,7 @@ dfs_edge_src (struct edge *e, bool forward)
    the direction given by FORWARD.  */
 
 static inline int
-dfs_edge_dest (struct edge *e, bool forward)
+dfs_edge_dest (struct graph_edge *e, bool forward)
 {
   return forward ? e->dest : e->src;
 }
@@ -139,8 +138,8 @@ dfs_edge_dest (struct edge *e, bool forward)
 /* Helper function for graphds_dfs.  Returns the first edge after E (including
    E), in the graph direction given by FORWARD, that belongs to SUBGRAPH.  */
 
-static inline struct edge *
-foll_in_subgraph (struct edge *e, bool forward, bitmap subgraph)
+static inline struct graph_edge *
+foll_in_subgraph (struct graph_edge *e, bool forward, bitmap subgraph)
 {
   int d;
 
@@ -162,10 +161,10 @@ foll_in_subgraph (struct edge *e, bool forward, bitmap subgraph)
 /* Helper function for graphds_dfs.  Select the first edge from V in G, in the
    direction given by FORWARD, that belongs to SUBGRAPH.  */
 
-static inline struct edge *
+static inline struct graph_edge *
 dfs_fst_edge (struct graph *g, int v, bool forward, bitmap subgraph)
 {
-  struct edge *e;
+  struct graph_edge *e;
 
   e = (forward ? g->vertices[v].succ : g->vertices[v].pred);
   return foll_in_subgraph (e, forward, subgraph);
@@ -174,8 +173,8 @@ dfs_fst_edge (struct graph *g, int v, bool forward, bitmap subgraph)
 /* Helper function for graphds_dfs.  Returns the next edge after E, in the
    graph direction given by FORWARD, that belongs to SUBGRAPH.  */
 
-static inline struct edge *
-dfs_next_edge (struct edge *e, bool forward, bitmap subgraph)
+static inline struct graph_edge *
+dfs_next_edge (struct graph_edge *e, bool forward, bitmap subgraph)
 {
   return foll_in_subgraph (forward ? e->succ_next : e->pred_next,
                           forward, subgraph);
@@ -192,8 +191,8 @@ graphds_dfs (struct graph *g, int *qs, int nq, VEC (int, heap) **qt,
             bool forward, bitmap subgraph)
 {
   int i, tick = 0, v, comp = 0, top;
-  struct edge *e;
-  struct edge **stack = XNEWVEC (struct edge *, g->n_vertices);
+  struct graph_edge *e;
+  struct graph_edge **stack = XNEWVEC (struct graph_edge *, g->n_vertices);
   bitmap_iterator bi;
   unsigned av;
 
@@ -267,7 +266,7 @@ graphds_dfs (struct graph *g, int *qs, int nq, VEC (int, heap) **qt,
    numbers assigned by the previous pass.  If SUBGRAPH is not NULL, it
    specifies the subgraph of G whose strongly connected components we want
    to determine.
-   
+
    After running this function, v->component is the number of the strongly
    connected component for each vertex of G.  Returns the number of the
    sccs of G.  */
@@ -314,7 +313,7 @@ graphds_scc (struct graph *g, bitmap subgraph)
 void
 for_each_edge (struct graph *g, graphds_edge_callback callback)
 {
-  struct edge *e;
+  struct graph_edge *e;
   int i;
 
   for (i = 0; i < g->n_vertices; i++)
@@ -327,7 +326,7 @@ for_each_edge (struct graph *g, graphds_edge_callback callback)
 void
 free_graph (struct graph *g)
 {
-  struct edge *e, *n;
+  struct graph_edge *e, *n;
   struct vertex *v;
   int i;
 
@@ -406,11 +405,11 @@ graphds_domtree (struct graph *g, int entry,
   int *marks = XCNEWVEC (int, g->n_vertices);
   int mark = 1, i, v, idom;
   bool changed = true;
-  struct edge *e;
+  struct graph_edge *e;
 
   /* We use a slight modification of the standard iterative algorithm, as
      described in
-     
+
      K. D. Cooper, T. J. Harvey and K. Kennedy: A Simple, Fast Dominance
        Algorithm