Remove obsolete loopinfo invalidation
[libfirm] / ir / ana / dfs_t.h
index 255a4b9..4468ac7 100644 (file)
@@ -1,39 +1,56 @@
-/**
- * @file   dfs_t.h
- * @date   21.04.2007
- * @author Sebastian Hack
+/*
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
- * depth first search internal stuff.
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
  *
- * Copyright (C) 2007 Universitaet Karlsruhe
- * Released under the GPL
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
  */
 
-#ifndef _DFS_T_H
-#define _DFS_T_H
+/**
+ * @file    dfs_t.h
+ * @author  Sebastian Hack
+ * @date    21.04.2007
+ * @version $Id$
+ * @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 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;
@@ -49,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);
 }
 
@@ -73,4 +90,4 @@ static INLINE int _dfs_is_ancestor(const struct _dfs_t *dfs, void *a, void *b)
 #define dfs_get_post_num_node(dfs, num) ((dfs)->post_order[num]->node)
 #define dfs_is_ancestor(dfs, n, m)      _dfs_is_ancestor((n), (m))
 
-#endif /* _DFS_T_H */
+#endif /* FIRM_ANA_DFS_T_H */