4 * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
6 * This file is part of libFirm.
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.
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.
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
24 * @brief Compute rough approximations of pointer types
26 * @date Mon 18 Oct 2004
29 # ifndef FIRM_ANA2_TYPALISE_H
30 # define FIRM_ANA2_TYPALISE_H
38 Data Types and Structures
40 typedef enum typalise_kind_enum {
41 type_invalid = 0, /* invalid (only set at deletion time) */
42 type_exact = 1, /* this and only this type (res.type) */
43 type_types = 2, /* these types (res.types) */
44 type_type = 3 /* this type and sub types (res.type) */
47 typedef struct typalise
51 ir_type *type; /* for kind == kind_exact and kind == kind_type */
52 lset_t *types; /* for kind == kind_types */
61 Given a set of graphs and a typalise_t, return the method (s) in
62 the set that are supported by the typalise_t. Also, deallocates
65 lset_t *filter_for_ta (lset_t*, typalise_t*);
68 For the given ptr, do a quick check about what (class) types may be
71 typalise_t *typalise (ir_node*);
74 Initialise the Typalise module
76 void typalise_init (void);
83 Revision 1.4 2006/01/13 21:54:03 beck
84 renamed all types 'type' to 'ir_type'
86 Revision 1.3 2005/03/22 13:56:09 liekweg
87 "small" fix for exception b/d
89 Revision 1.2 2004/10/21 11:11:21 liekweg
92 Revision 1.1 2004/10/21 11:09:37 liekweg
93 Moved memwalk stuf into irmemwalk
94 Moved lset stuff into lset
95 Moved typalise stuff into typalise