aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-05-02 11:12:26 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-05-02 11:12:26 +0000
commitf070a9d10839a9580c48d4880457719418e67492 (patch)
tree324bf0bbe73902a540d1ead9830393415b981925
parent65bdd626be50b5af2a7e984bf2c6de9d42728db7 (diff)
downloadgcc-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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ffdef91..5a89d63 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
2011-05-01 Jan Hubicka <jh@suse.cz>
* ipa-inline.c (caller_growth_limits): Fix thinko when
diff --git a/gcc/tree.c b/gcc/tree.c
index ba90df8..522bab1 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -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