cleanup: Remove duplicate MIN/MAX macros.
[libfirm] / ir / ana / dfs.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5
6 /**
7  * @file
8  * @author  Sebastian Hack
9  * @date    20.04.2007
10  * @brief
11  *
12  * Primitive depth-first search on the CFG.
13  */
14 #ifndef FIRM_ANA_DFS_H
15 #define FIRM_ANA_DFS_H
16
17 #include "absgraph.h"
18
19 typedef struct dfs_t      dfs_t;
20 typedef struct dfs_node_t dfs_node_t;
21 typedef struct dfs_edge_t dfs_edge_t;
22
23 typedef enum {
24         DFS_EDGE_ANC,
25         DFS_EDGE_FWD,
26         DFS_EDGE_CROSS,
27         DFS_EDGE_BACK
28 } dfs_edge_kind_t;
29
30 extern dfs_edge_kind_t dfs_get_edge_kind(const dfs_t *dfs, const void *src, const void *tgt);
31
32 extern dfs_t *dfs_new(const absgraph_t *graph_impl, void *graph);
33 extern void dfs_free(dfs_t *dfs);
34 extern void dfs_dump(const dfs_t *dfs, FILE *file);
35
36 #endif /* FIRM_ANA_DFS_H */