add license info to ana2
[libfirm] / ir / ana2 / pto_comp.h
1 /* -*- c -*- */
2
3 /*
4  * Copyrigth (C) 1995-2007 University of Karlsruhe.  All right reserved.
5  *
6  * This file is part of libFirm.
7  *
8  * This file may be distributed and/or modified under the terms of the
9  * GNU General Public License version 2 as published by the Free Software
10  * Foundation and appearing in the file LICENSE.GPL included in the
11  * packaging of this file.
12  *
13  * Licensees holding valid libFirm Professional Edition licenses may use
14  * this file in accordance with the libFirm Commercial License.
15  * Agreement provided with the Software.
16  *
17  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE.
20  */
21
22 /**
23  * @file
24  * @brief    Main Implementation of PTO
25  * @author   Florian
26  * @date     Sat Nov 13 19:35:27 CET 2004
27  * @version  $Id$
28  */
29 # ifndef FIRM_ANA2_PTO_COMP_H
30 # define FIRM_ANA2_PTO_COMP_H
31
32 # include "pto.h"
33 # include "irnode.h"
34 # include "qset.h"
35
36 /* ===================================================
37    Global Defines:
38    =================================================== */
39
40 /* ===================================================
41  Global Data Types:
42  =================================================== */
43 typedef struct pto_str {
44   qset_t *values;
45 } pto_t;
46
47 typedef struct alloc_pto_str {
48   int dummy;
49   pto_t **ptos;                 /* all names */
50   pto_t *curr_pto;              /* name for current ctx */
51 } alloc_pto_t;
52
53 struct pto_env_str;             /* forward decl only */
54
55 /* ===================================================
56    Global Prototypes:
57    =================================================== */
58 /* Main loop: Initialise the graph for the given ctx_idx and iterate over it */
59 void pto_graph (ir_graph*, int, struct pto_env_str*);
60
61 /* Set the PTO value for the given node */
62 void set_node_pto (ir_node*, pto_t*);
63 /*Get the PTO value for the given non-alloc node */
64 pto_t *get_node_pto (ir_node*);
65
66 /* Set the PTO value for the given alloc node */
67 void set_alloc_pto (ir_node*, alloc_pto_t*);
68
69 /*Get the current PTO value for the given alloc node */
70 pto_t *get_alloc_pto (ir_node*);
71
72
73 /* ===================================================
74    Global Variables:
75    =================================================== */
76
77
78 # endif
79
80
81 \f
82 /*
83   $Log$
84   Revision 1.3  2004/12/20 17:34:35  liekweg
85   fix recursion handling
86
87   Revision 1.2  2004/11/24 14:53:55  liekweg
88   Bugfixes
89
90   Revision 1.1  2004/11/18 16:37:34  liekweg
91   rewritten
92
93
94 */