X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Fdfs_t.h;h=4468ac71700ac0d7dec9127474f690fb9ce64b9e;hb=d32deaaaf39ca256be208269c9a933c211439feb;hp=9fb26bf97ecc16cbb685408b29a31dd8b4ead9de;hpb=ca84eb318328b3bd580c7ce2591745f83c6605e0;p=libfirm diff --git a/ir/ana/dfs_t.h b/ir/ana/dfs_t.h index 9fb26bf97..4468ac717 100644 --- a/ir/ana/dfs_t.h +++ b/ir/ana/dfs_t.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -22,36 +22,35 @@ * @author Sebastian Hack * @date 21.04.2007 * @version $Id$ - * @summary + * @brief * * depth first search internal stuff. */ #ifndef FIRM_ANA_DFS_T_H #define FIRM_ANA_DFS_T_H -#include "firm_config.h" #include "hashptr.h" #include "absgraph.h" #include "obst.h" #include "dfs.h" -struct _dfs_node_t { +struct dfs_node_t { int visited; - void *node; - void *ancestor; + const void *node; + const void *ancestor; int pre_num; int max_pre_num; - int post_num; - int level; + int post_num; + int level; }; -struct _dfs_edge_t { - void *src, *tgt; +struct dfs_edge_t { + const void *src, *tgt; dfs_node_t *s, *t; dfs_edge_kind_t kind; }; -struct _dfs_t { +struct dfs_t { void *graph; const absgraph_t *graph_impl; struct obstack obst; @@ -67,20 +66,20 @@ struct _dfs_t { unsigned edges_classified : 1; }; -static struct _dfs_node_t *_dfs_get_node(const struct _dfs_t *self, void *node) +static dfs_node_t *_dfs_get_node(const dfs_t *self, const void *node) { - struct _dfs_node_t templ; + dfs_node_t templ; memset(&templ, 0, sizeof(templ)); templ.node = node; - return set_insert(self->nodes, &templ, sizeof(templ), HASH_PTR(node)); + return (dfs_node_t*) set_insert(self->nodes, &templ, sizeof(templ), HASH_PTR(node)); } #define _dfs_int_is_ancestor(n, m) ((m)->pre_num >= (n)->pre_num && (m)->pre_num <= (n)->max_pre_num) -static INLINE int _dfs_is_ancestor(const struct _dfs_t *dfs, void *a, void *b) +static inline int _dfs_is_ancestor(const dfs_t *dfs, const void *a, const void *b) { - struct _dfs_node_t *n = _dfs_get_node(dfs, a); - struct _dfs_node_t *m = _dfs_get_node(dfs, b); + dfs_node_t *n = _dfs_get_node(dfs, a); + dfs_node_t *m = _dfs_get_node(dfs, b); return _dfs_int_is_ancestor(n, m); }