X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gcc%2Fgraphds.h;h=bc35479461f1afa78204125dbf70e04c9655712c;hb=02c7d30f1d406527d99cf295f09e4cdbbbdbb150;hp=2aad4b00a7394022a631c8e738460fd80f33191f;hpb=66f97d31f233e10870728947731db603b5dc0c9c;p=platform%2Fupstream%2Fgcc.git diff --git a/gcc/graphds.h b/gcc/graphds.h index 2aad4b0..bc354794 100644 --- a/gcc/graphds.h +++ b/gcc/graphds.h @@ -1,12 +1,12 @@ /* Graph representation. - Copyright (C) 2007 + Copyright (C) 2007, 2008 Free Software Foundation, Inc. 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,16 +15,15 @@ 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 +. */ /* Structure representing edge of a graph. */ -struct edge +struct graph_edge { int src, dest; /* Source and destination. */ - struct edge *pred_next, *succ_next; + struct graph_edge *pred_next, *succ_next; /* Next edge in predecessor and successor lists. */ void *data; /* Data attached to the edge. */ }; @@ -33,7 +32,7 @@ struct edge struct vertex { - struct edge *pred, *succ; + struct graph_edge *pred, *succ; /* Lists of predecessors and successors. */ int component; /* Number of dfs restarts before reaching the vertex. */ @@ -48,16 +47,17 @@ struct graph int n_vertices; /* Number of vertices. */ struct vertex *vertices; /* The vertices. */ + htab_t indices; /* Fast lookup for indices. */ }; struct graph *new_graph (int); void dump_graph (FILE *, struct graph *); -struct edge *add_edge (struct graph *, int, int); +struct graph_edge *add_edge (struct graph *, int, int); void identify_vertices (struct graph *, int, int); int graphds_dfs (struct graph *, int *, int, VEC (int, heap) **, bool, bitmap); int graphds_scc (struct graph *, bitmap); void graphds_domtree (struct graph *, int, int *, int *, int *); -typedef void (*graphds_edge_callback) (struct graph *, struct edge *); +typedef void (*graphds_edge_callback) (struct graph *, struct graph_edge *); void for_each_edge (struct graph *, graphds_edge_callback); void free_graph (struct graph *g);