moved firmext code into the backend dir
[libfirm] / ir / be / grgen / base.h
1 #ifndef _EXT_GRS_BASE_H_
2 #define _EXT_GRS_BASE_H_
3
4
5
6 #include "common.h"
7
8
9 /**
10  * Activates the /ext/grs module.
11  * Must be called once \b before init_firm()
12  * if the ext/grs module of Firm should be used.
13  *
14  * @remark Call this function \b before init_firm()
15  */
16 void ext_grs_activate(void);
17
18 /** Finalize the /ext/grs module. */
19 void ext_grs_finalize(void);
20
21 /**
22  * get an ir_op by its name
23  */
24 ir_op *ext_grs_lookup_op(char *op_name);
25
26 /**
27  * get an ir_mode by its name
28  * */
29 ir_mode *ext_grs_lookup_mode(char *name);
30
31 /**
32  * announce that firm op o1 inherits from firm op o2
33  */
34 void ext_grs_appoint_heir(ir_op *o1, ir_op *o2);
35
36 /**
37  * Setup internal inheritance related data strucutres.
38  * @note        must be called after one or more invocations of
39  *                      ext_grs_appoint_heir()
40  */
41 void ext_grs_inheritance_mature(void);
42
43 /**
44  *  Enables subgraph matching for a given ir graph.\
45  */
46
47 void ext_grs_enable_irg(ir_graph *irg);
48 /**
49  *  Disables subgraph matching for a given irg, several internal
50  *  data structures will be freed (needed if there is not enough
51  *  memory to keep the data for all present ir graphs simultaneously.
52  */
53 void ext_grs_disable_irg(ir_graph *irg);
54
55
56 #endif /* _EXT_GRS_BASE_H_ */