This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
pretty-ipa merge 9: dump_eh_tree improvements
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 29 Mar 2009 00:41:18 +0100
- Subject: pretty-ipa merge 9: dump_eh_tree improvements
Hi,
I implemented dump_eh_tree just in very limited way I needed to debug
inliner issues. THis patch makes dump more informative so I can debug
cleanup issues too ;)
Bootstrapped/regtested x86_64-linux, will commit it as obvious.
Honza
* except.c (dump_eh_tree): Dump all datastructures.
Index: except.c
===================================================================
*** except.c (revision 145204)
--- except.c (working copy)
*************** dump_eh_tree (FILE *out, struct function
*** 3825,3831 ****
fprintf (out, " tree_label:");
print_generic_expr (out, i->tree_label, 0);
}
! fprintf (out, "\n");
/* If there are sub-regions, process them. */
if (i->inner)
i = i->inner, depth++;
--- 4098,4151 ----
fprintf (out, " tree_label:");
print_generic_expr (out, i->tree_label, 0);
}
! switch (i->type)
! {
! case ERT_CLEANUP:
! if (i->u.cleanup.prev_try)
! fprintf (out, " prev try:%i", i->u.cleanup.prev_try->region_number);
! break;
!
! case ERT_TRY:
! {
! struct eh_region *c;
! fprintf (out, " catch regions:");
! for (c = i->u.eh_try.eh_catch; c ; c = c->u.eh_catch.next_catch)
! fprintf (out, " %i", c->region_number);
! }
! break;
!
! case ERT_CATCH:
! if (i->u.eh_catch.prev_catch)
! fprintf (out, " prev: %i",
! i->u.eh_catch.prev_catch->region_number);
! if (i->u.eh_catch.next_catch)
! fprintf (out, " next %i",
! i->u.eh_catch.next_catch->region_number);
! break;
!
! case ERT_ALLOWED_EXCEPTIONS:
! fprintf (out, "filter :%i types:", i->u.allowed.filter);
! print_generic_expr (out, i->u.allowed.type_list, 0);
! break;
!
! case ERT_THROW:
! fprintf (out, "type:");
! print_generic_expr (out, i->u.eh_throw.type, 0);
! break;
!
! case ERT_MUST_NOT_THROW:
! break;
!
! case ERT_UNKNOWN:
! break;
! }
! if (i->aka)
! {
! fprintf (out, " also known as:");
! dump_bitmap (out, i->aka);
! }
! else
! fprintf (out, "\n");
/* If there are sub-regions, process them. */
if (i->inner)
i = i->inner, depth++;