Commit b042534c by Jason Merrill Committed by Jason Merrill

print-tree.c (debug_vec_tree): New fn.

	* print-tree.c (debug_vec_tree): New fn.
	(print_vec_tree): New fn.
	* tree.h: Declare them.
	* gdbinit.in (ptv): New command.

	* print-tree.c (print_node) [TREE_VEC]: Print elements normally.

	* gdbinit.in (pdd): New command.

From-SVN: r159941
parent fb9c3174
2010-05-27 Jason Merrill <jason@redhat.com>
* print-tree.c (debug_vec_tree): New fn.
(print_vec_tree): New fn.
* tree.h: Declare them.
* gdbinit.in (pvt): New command.
* print-tree.c (print_node) [TREE_VEC]: Print elements normally.
* gdbinit.in (pdd): New command.
2010-05-27 Jan Hubicka <jh@suse.cz>
* ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
......
......@@ -122,6 +122,22 @@ document ptn
Print the name of the type-node that is $.
end
define pvt
set debug_vec_tree ($)
end
document pvt
Print the VEC(tree) that is in $.
end
define pdd
set debug_dwarf_die ($)
end
document pdd
Print the dw_die_ref that is in $.
end
define prc
output (enum rtx_code) $.code
echo \ (
......
......@@ -60,6 +60,20 @@ debug_tree (tree node)
putc ('\n', stderr);
}
/* Print the vector of trees VEC on standard error, for debugging.
Most nodes referred to by this one are printed recursively
down to a depth of six. */
void
debug_vec_tree (VEC(tree,gc) *vec)
{
table = XCNEWVEC (struct bucket *, HASH_SIZE);
print_vec_tree (stderr, "", vec, 0);
free (table);
table = 0;
putc ('\n', stderr);
}
/* Print PREFIX and ADDR to FILE. */
void
dump_addr (FILE *file, const char *prefix, const void *addr)
......@@ -860,8 +874,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
{
char temp[10];
sprintf (temp, "elt %d", i);
indent_to (file, indent + 4);
print_node_brief (file, temp, TREE_VEC_ELT (node, i), 0);
print_node (file, temp, TREE_VEC_ELT (node, i), indent + 4);
}
break;
......@@ -979,3 +992,27 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
fprintf (file, ">");
}
/* Print the tree vector VEC in full on file FILE, preceded by PREFIX,
starting in column INDENT. */
void
print_vec_tree (FILE *file, const char *prefix, VEC(tree,gc) *vec, int indent)
{
tree elt;
unsigned ix;
/* Indent to the specified column, since this is the long form. */
indent_to (file, indent);
/* Print the slot this node is in, and its code, and address. */
fprintf (file, "%s <VEC", prefix);
dump_addr (file, " ", vec);
for (ix = 0; VEC_iterate (tree, vec, ix, elt); ++ix)
{
char temp[10];
sprintf (temp, "elt %d", ix);
print_node (file, temp, elt, indent + 4);
}
}
......@@ -5120,9 +5120,11 @@ extern void print_rtl (FILE *, const_rtx);
/* In print-tree.c */
extern void debug_tree (tree);
extern void debug_vec_tree (VEC(tree,gc) *);
#ifdef BUFSIZ
extern void dump_addr (FILE*, const char *, const void *);
extern void print_node (FILE *, const char *, tree, int);
extern void print_vec_tree (FILE *, const char *, VEC(tree,gc) *, int);
extern void print_node_brief (FILE *, const char *, const_tree, int);
extern void indent_to (FILE *, int);
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment