3 * File name: ir/ir/ircgcons.h
4 * Purpose: Construction and removal of interprocedural representation
5 * (explicit interprocedural dependencies).
6 * Author: Hubert Schmid
10 * Copyright: (c) 2002-2003 Universität Karlsruhe
11 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
13 #ifndef _FIRM_IR_ICGCONS_H_
14 #define _FIRM_IR_ICGCONS_H_
16 #include "firm_types.h"
18 /** The state of the interprocedural view.
20 * This value indicates the state of the interprocedural view.
23 ip_view_no, /**< The interprocedural view is not constructed. There are no
24 view specific nodes (EndReg, Filter, Break ...) in any graph. */
25 ip_view_valid, /**< The interprocedural view is valid. */
26 ip_view_invalid /**< The interprocedural view is invalid. Specific nodes are
27 all still in the representation, but the graph is no more complete. */
30 /** Return the current state of the interprocedural view. */
31 ip_view_state get_irp_ip_view_state(void);
32 /** Set the state of the interprocedural view to invalid. */
33 void set_irp_ip_view_invalid(void);
35 /** Construction of the interprocedural view.
37 * Construction of the interprocedural view. A prior analysis must have set
38 * all possible callees in the corresponding fields of Call nodes. Sets
39 * ip_view_valid in irp.
41 * @arg free_methods_arr: An array of all free methods, i.e., methods that
42 * are external visible. These methods get an 'Unknown'
44 * @arg arr_len The number of free methods. */
45 void cg_construct(int arr_len, ir_entity *free_methods_arr[]);
48 /** Deconstruction of the interprocedural view. Reduces memory consumption of
49 the ir. Sets ip_view_no in irp. */
50 void cg_destruct(void);
52 #endif /* _FIRM_IR_ICGCONS_H_ */