diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-19 18:19:39 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-19 18:19:39 +0000 |
commit | e56043cd2c207982e812ce6fcecb7353dea58363 (patch) | |
tree | 01a6f37ad5a9ae6b18bdc20f052b04e19b4255c0 /gcc/print-tree.c | |
parent | 2e02a1a4548f2ee1ea519c88e68b20621ad16fcc (diff) | |
download | gcc-e56043cd2c207982e812ce6fcecb7353dea58363.tar.gz |
2010-09-19 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 164348, with some improvements
in gcc/melt-runtime.[ch]
2010-09-19 Basile Starynkevitch <basile@starynkevitch.net>
[[merged with trunk rev.164348, so improved MELT runtime!]]
* gcc/melt-runtime.h: improved comments.
(melt_debug_garbcoll, melt_debuggc_eprintf): Moved from melt-runtime.c.
(melt_obmag_string): New declaration.
(struct meltobject_st, struct meltclosure_st, struct
meltroutine_st, struct meltmixbigint_st, struct meltstring_st):
using GTY variable_size and @@MELTGTY@@ comment.
(melt_mark_special): added debug print.
* gcc/melt-runtime.c: Improved comments.
Include bversion.h, realmpfr.h, gimple-pretty-print.h.
(ggc_force_collect) Declared external.
(melt_forward_counter): Added.
(melt_obmag_string): New function.
(melt_alptr_1, melt_alptr_2, melt_break_alptr_1_at)
(melt_break_alptr_2_at, melt_break_alptr_1,melt_break_alptr_1)
(melt_allocate_young_gc_zone, melt_free_young_gc_zone): New.
(delete_special, meltgc_make_special): Improved debug printf and
use melt_break_alptr_1...
(ggc_alloc_*) macros defined for backport to GCC 4.5
(melt_forwarded_copy): Don't clear the new destination zone in old
GGC heap.
(meltgc_add_out_raw_len): Use ggc_alloc_atomic.
(meltgc_raw_new_mappointers, meltgc_raw_put_mappointers)
(meltgc_raw_remove_mappointers): Corrected length argument to
ggc_alloc_cleared_vec_entrypointermelt_st.
(melt_really_initialize): Call melt_allocate_young_gc_zone.
(melt_initialize): Set flag_plugin_added.
(melt_val2passflag): TODO_verify_loops only in GCC 4.5
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@164424 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/print-tree.c')
-rw-r--r-- | gcc/print-tree.c | 46 |
1 files changed, 41 insertions, 5 deletions
diff --git a/gcc/print-tree.c b/gcc/print-tree.c index 5ab844dc6d1..5ca762eecf2 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -25,12 +25,11 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" -#include "real.h" -#include "fixed-value.h" #include "ggc.h" #include "langhooks.h" #include "tree-iterator.h" #include "diagnostic.h" +#include "gimple-pretty-print.h" #include "tree-flow.h" #include "tree-pass.h" @@ -51,7 +50,7 @@ static struct bucket **table; Most nodes referred to by this one are printed recursively down to a depth of six. */ -void +DEBUG_FUNCTION void debug_tree (tree node) { table = XCNEWVEC (struct bucket *, HASH_SIZE); @@ -61,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. */ + +DEBUG_FUNCTION 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) @@ -861,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; @@ -980,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_EACH_VEC_ELT (tree, vec, ix, elt) + { + char temp[10]; + sprintf (temp, "elt %d", ix); + print_node (file, temp, elt, indent + 4); + } +} |