9137bc43c0a1d09ae80490ae4a7dc8472413569e
[libfirm] / ir / ana / irdom_t.h
1 /*
2  * Project:     libFIRM
3  * File name:   ir/ana/irdom_t.h
4  * Purpose:     Construct and access dominator tree -- private datastructures.
5  * Author:      Goetz Lindenmaier
6  * Modified by:
7  * Created:     2.2002
8  * CVS-ID:      $Id$
9  * Copyright:   (c) 2002-2003 Universität Karlsruhe
10  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
11  */
12
13
14 /**
15  * @file irdom_t.h
16  *
17  * Dominator information private datastructures.
18  *
19  * @author Goetz Lindenmaier
20  *
21  */
22
23
24 # ifndef _IRDOM_T_H_
25 # define _IRDOM_T_H_
26
27 #include "irdom.h"
28
29 /** For dominator information */
30 typedef struct dom_info {
31   struct ir_node *idom;                 /**< immediate CFG dominator */
32   struct ir_node *next;                 /**< The next node in the dominated
33                                            list of @c idom. */
34   struct ir_node *first;                /**< The first node in the list of nodes
35                                            this nodes dominates immediately. */
36   int tree_pre_num;                     /**< The pre-order number from a dfs walk
37                                            over the dominator tree. */
38   int max_subtree_pre_num;              /**< The largest tree pre num found in the
39                                            dominator subtree of this node. */
40   int pre_num;                          /**< pre-order graph-walk number */
41   int dom_depth;                        /**< depth in dominator-tree */
42 } dom_info;
43
44 #endif /* _IRDOM_T_H_ */