This is the mail archive of the gcc@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]

debug_reload output


Hi,

I would like to be able to redirect the output of de debug_reload routine
to something else than stderr, e.g., the greg dump file...

So I'd like to suggest the following trivial patch be applied.

Thanks,
					Christian

Tue Oct 14 10:34:11 1997  Christian Iseli  <Christian.Iseli@lslsun.epfl.ch>

	* reload.c (debug_reload): pass output stream as parameter instead
 	of forcing stderr.

*** reload.c.orig	Wed Aug 27 02:49:59 1997
--- reload.c	Fri Sep 26 13:46:58 1997
*************** static char *reg_class_names[] = REG_CLA
*** 6110,6192 ****
  /* This function is used to print the variables set by 'find_reloads' */
  
  void
! debug_reload ()
  {
    int r;
    char *prefix;
  
    for (r = 0; r < n_reloads; r++)
      {
!       fprintf (stderr, "Reload %d: ", r);
  
        if (reload_in[r] != 0)
  	{
! 	  fprintf (stderr, "reload_in (%s) = ",
  		   GET_MODE_NAME (reload_inmode[r]));
! 	  print_inline_rtx (stderr, reload_in[r], 24);
! 	  fprintf (stderr, "\n\t");
  	}
  
        if (reload_out[r] != 0)
  	{
! 	  fprintf (stderr, "reload_out (%s) = ",
  		   GET_MODE_NAME (reload_outmode[r]));
! 	  print_inline_rtx (stderr, reload_out[r], 24);
! 	  fprintf (stderr, "\n\t");
  	}
  
!       fprintf (stderr, "%s, ", reg_class_names[(int) reload_reg_class[r]]);
  
!       fprintf (stderr, "%s (opnum = %d)",
  	       reload_when_needed_name[(int) reload_when_needed[r]],
  	       reload_opnum[r]);
  
        if (reload_optional[r])
! 	fprintf (stderr, ", optional");
  
        if (reload_inc[r] != 0)
! 	fprintf (stderr, ", inc by %d", reload_inc[r]);
  
        if (reload_nocombine[r])
! 	fprintf (stderr, ", can't combine");
  
        if (reload_secondary_p[r])
! 	fprintf (stderr, ", secondary_reload_p");
  
        if (reload_in_reg[r] != 0)
  	{
! 	  fprintf (stderr, "\n\treload_in_reg: ");
! 	  print_inline_rtx (stderr, reload_in_reg[r], 24);
  	}
  
        if (reload_reg_rtx[r] != 0)
  	{
! 	  fprintf (stderr, "\n\treload_reg_rtx: ");
! 	  print_inline_rtx (stderr, reload_reg_rtx[r], 24);
  	}
  
        prefix = "\n\t";
        if (reload_secondary_in_reload[r] != -1)
  	{
! 	  fprintf (stderr, "%ssecondary_in_reload = %d",
  		   prefix, reload_secondary_in_reload[r]);
  	  prefix = ", ";
  	}
  
        if (reload_secondary_out_reload[r] != -1)
! 	fprintf (stderr, "%ssecondary_out_reload = %d\n",
  		 prefix, reload_secondary_out_reload[r]);
  
        prefix = "\n\t";
        if (reload_secondary_in_icode[r] != CODE_FOR_nothing)
  	{
! 	  fprintf (stderr, "%ssecondary_in_icode = %s", prefix, insn_name[r]);
  	  prefix = ", ";
  	}
  
        if (reload_secondary_out_icode[r] != CODE_FOR_nothing)
! 	fprintf (stderr, "%ssecondary_out_icode = %s", prefix, insn_name[r]);
  
!       fprintf (stderr, "\n");
      }
  }
--- 6110,6192 ----
  /* This function is used to print the variables set by 'find_reloads' */
  
  void
! debug_reload (FILE *f)
  {
    int r;
    char *prefix;
  
    for (r = 0; r < n_reloads; r++)
      {
!       fprintf (f, "Reload %d: ", r);
  
        if (reload_in[r] != 0)
  	{
! 	  fprintf (f, "reload_in (%s) = ",
  		   GET_MODE_NAME (reload_inmode[r]));
! 	  print_inline_rtx (f, reload_in[r], 24);
! 	  fprintf (f, "\n\t");
  	}
  
        if (reload_out[r] != 0)
  	{
! 	  fprintf (f, "reload_out (%s) = ",
  		   GET_MODE_NAME (reload_outmode[r]));
! 	  print_inline_rtx (f, reload_out[r], 24);
! 	  fprintf (f, "\n\t");
  	}
  
!       fprintf (f, "%s, ", reg_class_names[(int) reload_reg_class[r]]);
  
!       fprintf (f, "%s (opnum = %d)",
  	       reload_when_needed_name[(int) reload_when_needed[r]],
  	       reload_opnum[r]);
  
        if (reload_optional[r])
! 	fprintf (f, ", optional");
  
        if (reload_inc[r] != 0)
! 	fprintf (f, ", inc by %d", reload_inc[r]);
  
        if (reload_nocombine[r])
! 	fprintf (f, ", can't combine");
  
        if (reload_secondary_p[r])
! 	fprintf (f, ", secondary_reload_p");
  
        if (reload_in_reg[r] != 0)
  	{
! 	  fprintf (f, "\n\treload_in_reg: ");
! 	  print_inline_rtx (f, reload_in_reg[r], 24);
  	}
  
        if (reload_reg_rtx[r] != 0)
  	{
! 	  fprintf (f, "\n\treload_reg_rtx: ");
! 	  print_inline_rtx (f, reload_reg_rtx[r], 24);
  	}
  
        prefix = "\n\t";
        if (reload_secondary_in_reload[r] != -1)
  	{
! 	  fprintf (f, "%ssecondary_in_reload = %d",
  		   prefix, reload_secondary_in_reload[r]);
  	  prefix = ", ";
  	}
  
        if (reload_secondary_out_reload[r] != -1)
! 	fprintf (f, "%ssecondary_out_reload = %d\n",
  		 prefix, reload_secondary_out_reload[r]);
  
        prefix = "\n\t";
        if (reload_secondary_in_icode[r] != CODE_FOR_nothing)
  	{
! 	  fprintf (f, "%ssecondary_in_icode = %s", prefix, insn_name[r]);
  	  prefix = ", ";
  	}
  
        if (reload_secondary_out_icode[r] != CODE_FOR_nothing)
! 	fprintf (f, "%ssecondary_out_icode = %s", prefix, insn_name[r]);
  
!       fprintf (f, "\n");
      }
  }


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