3 * File name: ir/ir/firmstat.h
4 * Purpose: Statistics for Firm.
8 * Copyright: (c) 2004 Universität Karlsruhe
9 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
16 #ifdef FIRM_STATISTICS
19 STAT_OPT_STG = 0, /**< straightening optimization */
20 STAT_OPT_IFSIM = 1, /**< if simplification */
21 STAT_OPT_ALGSIM = 2, /**< algebraic simplification */
22 STAT_OPT_PHI = 3, /**< Phi optmization */
23 STAT_OPT_WAW = 4, /**< Write-After-Write optimization */
24 STAT_OPT_WAR = 5, /**< Write-After-Read optimization */
25 STAT_OPT_TUPLE = 6, /**< Tuple optimization */
26 STAT_OPT_ID = 7, /**< ID optimization */
27 STAT_OPT_CONST_EVAL = 8, /**< constant evaluation */
34 * initialize the statistics module.
39 * Finish the statistics .
41 void stat_finish(void);
44 * A new IR op is registered.
46 void stat_new_ir_op(const ir_op *op);
51 void stat_free_ir_op(const ir_op *op);
54 * A new node is created.
56 void stat_new_node(const ir_node *node);
59 * A node is changed into a Id node
61 void stat_turn_into_id(const ir_node *node);
64 * A new graph was created
66 void stat_new_graph(const ir_graph *irg);
69 * A walk over a graph is initiated
71 void stat_irg_walk(const ir_graph *irg, void *pre, void *post);
74 * A walk over the graph's blocks is initiated
76 void stat_irg_block_walk(const ir_graph *irg, const ir_node *node, void *pre, void *post);
79 * Some nodes were optimized into some others due to an optimization
81 void stat_merge_nodes(
82 ir_node **new_node_array, int new_num_entries,
83 ir_node **old_node_array, int old_num_entries,
90 #define stat_new_ir_op(op)
91 #define stat_free_ir_op(op)
92 #define stat_new_node(node)
93 #define stat_turn_into_id(node)
94 #define stat_new_graph(irg)
95 #define stat_irg_walk(irg, pre, post)
96 #define stat_irg_block_walk(irg, node, pre, post)
97 #define stat_merge_nodes(new_node_array, new_num_entries, old_node_array, old_num_entries, opt)
101 #endif /* _FIRMSTAT_H_ */