This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
debug_reload output
- To: egcs at cygnus dot com
- Subject: debug_reload output
- From: chris at lslsun dot epfl dot ch (Christian Iseli)
- Date: Tue, 14 Oct 1997 10:39:05 +0200
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");
}
}