diff options
author | Richard Guenther <rguenther@suse.de> | 2011-05-02 11:12:26 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-05-02 11:12:26 +0000 |
commit | f070a9d10839a9580c48d4880457719418e67492 (patch) | |
tree | 324bf0bbe73902a540d1ead9830393415b981925 /gcc/tree.c | |
parent | 65bdd626be50b5af2a7e984bf2c6de9d42728db7 (diff) | |
download | gcc-f070a9d10839a9580c48d4880457719418e67492.zip gcc-f070a9d10839a9580c48d4880457719418e67492.tar.gz gcc-f070a9d10839a9580c48d4880457719418e67492.tar.bz2 |
tree.c (tree_code_counts): New global array.
2011-05-02 Richard Guenther <rguenther@suse.de>
* tree.c (tree_code_counts): New global array.
(record_node_allocation_statistics): Count individual tree codes.
(dump_tree_statistics): Dump individual code stats.
From-SVN: r173244
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -124,6 +124,7 @@ extern int _obstack_allocated_p (struct obstack *h, void *obj); #ifdef GATHER_STATISTICS /* Statistics-gathering stuff. */ +static int tree_code_counts[MAX_TREE_CODES]; int tree_node_counts[(int) all_kinds]; int tree_node_sizes[(int) all_kinds]; @@ -809,6 +810,7 @@ record_node_allocation_statistics (enum tree_code code ATTRIBUTE_UNUSED, gcc_unreachable (); } + tree_code_counts[(int) code]++; tree_node_counts[(int) kind]++; tree_node_sizes[(int) kind] += length; #endif @@ -6188,6 +6190,7 @@ type_hash_canon (unsigned int hashcode, tree type) if (t1 != 0) { #ifdef GATHER_STATISTICS + tree_code_counts[(int) TREE_CODE (type)]--; tree_node_counts[(int) t_kind]--; tree_node_sizes[(int) t_kind] -= sizeof (struct tree_type); #endif @@ -8497,6 +8500,11 @@ dump_tree_statistics (void) fprintf (stderr, "---------------------------------------\n"); fprintf (stderr, "%-20s %7d %10d\n", "Total", total_nodes, total_bytes); fprintf (stderr, "---------------------------------------\n"); + fprintf (stderr, "Code Nodes\n"); + fprintf (stderr, "----------------------------\n"); + for (i = 0; i < (int) MAX_TREE_CODES; i++) + fprintf (stderr, "%-20s %7d\n", tree_code_name[i], tree_code_counts[i]); + fprintf (stderr, "----------------------------\n"); ssanames_print_statistics (); phinodes_print_statistics (); #else |