/*
- * 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.
*
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;
};
struct _dfs_edge_t {
- void *src, *tgt;
+ const void *src, *tgt;
dfs_node_t *s, *t;
dfs_edge_kind_t kind;
};
unsigned edges_classified : 1;
};
-static struct _dfs_node_t *_dfs_get_node(const struct _dfs_t *self, void *node)
+static struct _dfs_node_t *_dfs_get_node(const struct _dfs_t *self, const void *node)
{
struct _dfs_node_t templ;
memset(&templ, 0, sizeof(templ));
#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 struct _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);