d270fea3716e0c50ad2c4469f730d01f8a8f4aaf
[libfirm] / ir / stat / pattern_dmp.h
1 #ifndef _PATTERN_DMP_H_
2 #define _PATTERN_DMP_H_
3
4 #include "counter.h"
5
6 typedef struct _pattern_dumper_t pattern_dumper_t;
7
8 /**
9  * starts a new pattern
10  */
11 void pattern_dump_new_pattern(pattern_dumper_t *self, counter_t *cnt);
12
13 /**
14  * Finishes current pattern
15  */
16 void pattern_dump_finish_pattern(pattern_dumper_t *self);
17
18 /**
19  * Dumps a node
20  */
21 void pattern_dump_node(pattern_dumper_t *self, unsigned id, unsigned op_code, unsigned mode_code, void *attr);
22
23 /**
24  * Dump a ref
25  */
26 void pattern_dump_ref(pattern_dumper_t *self, unsigned id);
27
28 /**
29  * Dump an edge
30  */
31 void pattern_dump_edge(pattern_dumper_t *self, unsigned id, unsigned parent, unsigned position);
32
33 /**
34  * Start children dumper
35  */
36 void pattern_start_children(pattern_dumper_t *self, unsigned id);
37
38 /**
39  * finishes childred dumper
40  */
41 void pattern_finish_children(pattern_dumper_t *self, unsigned id);
42
43 /**
44  * finishes dumper, destroyes the dumper object
45  */
46 void pattern_end(pattern_dumper_t *self);
47
48 /**
49  * pattern dumper factory for text dumper
50  */
51 pattern_dumper_t *new_text_dumper(void);
52
53 /**
54  * pattern dumper factory for vcg dumper
55  *
56  * @param vcg_name    name of the VCG file
57  * @param max_pattern maximum number of pattern to be dumped
58  */
59 pattern_dumper_t *new_vcg_dumper(const char *vcg_name, unsigned max_pattern);
60
61 #endif /* _PATTERN_DMP_H_ */