2 * This file is part of libFirm.
3 * Copyright (C) 2012 University of Karlsruhe.
8 * @brief Statistics for Firm. Dumping patterns.
11 #ifndef FIRM_STAT_PATTERN_DMP_H
12 #define FIRM_STAT_PATTERN_DMP_H
16 typedef struct pattern_dumper_t pattern_dumper_t;
19 * Starts a new pattern.
21 void pattern_dump_new_pattern(pattern_dumper_t *self, counter_t *cnt);
24 * Finish the current pattern.
26 void pattern_dump_finish_pattern(pattern_dumper_t *self);
31 void pattern_dump_node(pattern_dumper_t *self, unsigned id, unsigned op_code, unsigned mode_code, void *attr);
36 void pattern_dump_ref(pattern_dumper_t *self, unsigned id);
41 * @param tgt The target ID
42 * @param src The source ID
43 * @param pos The edge position
44 * @param mode_code The mode_code of the edge
46 void pattern_dump_edge(pattern_dumper_t *self, unsigned tgt, unsigned src, unsigned pos, unsigned mode_code);
49 * Start the children dumper.
51 void pattern_start_children(pattern_dumper_t *self, unsigned id);
54 * Finish the children dumper.
56 void pattern_finish_children(pattern_dumper_t *self, unsigned id);
59 * Finish the dumper, destroys the dumper object
61 void pattern_end(pattern_dumper_t *self);
64 * Pattern dumper factory for text dumper.
66 pattern_dumper_t *new_text_dumper(void);
69 * Pattern dumper factory for vcg dumper.
71 * @param vcg_name name of the VCG file
72 * @param max_pattern maximum number of pattern to be dumped
74 pattern_dumper_t *new_vcg_dumper(const char *vcg_name, unsigned max_pattern);
76 #endif /* FIRM_STAT_PATTERN_DMP_H */