This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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++;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]