libFirm
trouts.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1995-2011 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 
26 #ifndef FIRM_ANA_TROUTS_H
27 #define FIRM_ANA_TROUTS_H
28 
29 #include "firm_types.h"
30 #include "irgraph.h"
31 
32 #include "begin.h"
33 
46 FIRM_API size_t get_entity_n_accesses(const ir_entity *entity);
48 FIRM_API ir_node *get_entity_access(const ir_entity *entity, size_t pos);
49 
52 FIRM_API size_t get_entity_n_references(const ir_entity *entity);
55 FIRM_API ir_node *get_entity_reference(const ir_entity *entity, size_t pos);
56 
58 FIRM_API size_t get_type_n_allocs(const ir_type *type);
60 FIRM_API ir_node *get_type_alloc(const ir_type *type, size_t pos);
61 
63 FIRM_API size_t get_type_n_casts(const ir_type *type);
65 FIRM_API ir_node *get_type_cast(const ir_type *type, size_t pos);
67 FIRM_API size_t get_class_n_upcasts(const ir_type *clss);
69 FIRM_API size_t get_class_n_downcasts(const ir_type *clss);
70 
72 FIRM_API size_t get_type_n_pointertypes_to(const ir_type *type);
74 FIRM_API ir_type *get_type_pointertype_to(const ir_type *type, size_t pos);
75 
77 FIRM_API size_t get_type_n_arraytypes_of(const ir_type *type);
79 FIRM_API ir_type *get_type_arraytype_of(const ir_type *type, size_t pos);
80 
103 FIRM_API void compute_trouts(void);
104 
106 FIRM_API void free_trouts(void);
107 
110 #include "end.h"
111 
112 #endif