Move current_ir_graph from ir_graph to ir_cons
[libfirm] / ir / tr / compound_path_t.h
1 /*
2  * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
3  *
4  * This file is part of libFirm.
5  *
6  * This file may be distributed and/or modified under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation and appearing in the file LICENSE.GPL included in the
9  * packaging of this file.
10  *
11  * Licensees holding valid libFirm Professional Edition licenses may use
12  * this file in accordance with the libFirm Commercial License.
13  * Agreement provided with the Software.
14  *
15  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE.
18  */
19
20 /*
21  * @file
22  */
23 #ifndef FIRM_TR_COMPOUND_PATH_T_H
24 #define FIRM_TR_COMPOUND_PATH_T_H
25
26 #include "firm_types.h"
27 #include "firm_common.h"
28 #include "compound_path.h"
29
30 /** A path in a compound graph. */
31 struct compound_graph_path {
32         firm_kind kind;       /**< The dynamic type tag for compound graph path. */
33         ir_type  *tp;          /**< The type this path belongs to. */
34         size_t    len;              /**< The length of the path. */
35         struct tuple {
36                 long       index;    /**< Array index.  To compute position of array elements */
37                 ir_entity *node;    /**< The accessed entity. */
38         } list[1];            /**< List of entity/index tuple of length len to express the
39                                    access path. */
40 };
41
42 #endif