Added new header
[libfirm] / ir / ana / dfs.h
1 /**
2  * @file   dfs.h
3  * @date   20.04.2007
4  * @author Sebastian Hack
5  *
6  * Primitive depth-first search on the CFG.
7  *
8  * Copyright (C) 2007 Universitaet Karlsruhe
9  * Released under the GPL
10  */
11
12 #ifndef _DFS_H
13 #define _DFS_H
14
15 #include "absgraph.h"
16
17 typedef struct _dfs_t      dfs_t;
18 typedef struct _dfs_node_t dfs_node_t;
19 typedef struct _dfs_edge_t dfs_edge_t;
20
21 typedef enum {
22         DFS_EDGE_ANC,
23         DFS_EDGE_FWD,
24         DFS_EDGE_CROSS,
25         DFS_EDGE_BACK
26 } dfs_edge_kind_t;
27
28 extern dfs_edge_kind_t dfs_get_edge_kind(const dfs_t *dfs, void *src, void *tgt);
29
30 extern dfs_t *dfs_new(const absgraph_t *graph_impl, void *graph);
31 extern void dfs_free(dfs_t *dfs);
32 extern void dfs_dump(const dfs_t *dfs, FILE *file);
33
34 #endif /* _DFS_H */