rename type entity into ir_entity
[libfirm] / ir / ana2 / pto_comp.h
1 /* -*- c -*- */
2
3 /*
4    Project:     libFIRM
5    File name:   ir/ana/pto_comp.h
6    Purpose:     Main Implementation of PTO
7    Author:      Florian
8    Modified by:
9    Created:     Sat Nov 13 19:35:27 CET 2004
10    CVS-ID:      $Id$
11    Copyright:   (c) 1999-2004 Universität Karlsruhe
12    Licence:     This file is protected by the GPL -  GNU GENERAL PUBLIC LICENSE.
13 */
14
15
16 # ifndef _PTO_COMP_
17 # define _PTO_COMP_
18
19 # include "pto.h"
20 # include "irnode.h"
21 # include "qset.h"
22
23 /* ===================================================
24    Global Defines:
25    =================================================== */
26
27 /* ===================================================
28  Global Data Types:
29  =================================================== */
30 typedef struct pto_str {
31   qset_t *values;
32 } pto_t;
33
34 typedef struct alloc_pto_str {
35   int dummy;
36   pto_t **ptos;                 /* all names */
37   pto_t *curr_pto;              /* name for current ctx */
38 } alloc_pto_t;
39
40 struct pto_env_str;             /* forward decl only */
41
42 /* ===================================================
43    Global Prototypes:
44    =================================================== */
45 /* Main loop: Initialise the graph for the given ctx_idx and iterate over it */
46 void pto_graph (ir_graph*, int, struct pto_env_str*);
47
48 /* Set the PTO value for the given node */
49 void set_node_pto (ir_node*, pto_t*);
50 /*Get the PTO value for the given non-alloc node */
51 pto_t *get_node_pto (ir_node*);
52
53 /* Set the PTO value for the given alloc node */
54 void set_alloc_pto (ir_node*, alloc_pto_t*);
55
56 /*Get the current PTO value for the given alloc node */
57 pto_t *get_alloc_pto (ir_node*);
58
59
60 /* ===================================================
61    Global Variables:
62    =================================================== */
63
64
65 # endif /* not defined _PTO_COMP_ */
66
67
68 \f
69 /*
70   $Log$
71   Revision 1.3  2004/12/20 17:34:35  liekweg
72   fix recursion handling
73
74   Revision 1.2  2004/11/24 14:53:55  liekweg
75   Bugfixes
76
77   Revision 1.1  2004/11/18 16:37:34  liekweg
78   rewritten
79
80
81 */