Commit ecf3151a by Bernd Schmidt Committed by Bernd Schmidt

Better spill failure messages.

From-SVN: r31026
parent 7cfc1daa
1999-12-19 Bernd Schmidt <bernds@cygnus.co.uk>
* reload1.c (spill_failure): Take class of failed reload as argument
and print it. Caller changed.
Sun Dec 19 07:50:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> Sun Dec 19 07:50:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* rs6000.h (SUBTARGET_DEFAULT): New macro. * rs6000.h (SUBTARGET_DEFAULT): New macro.
......
...@@ -375,7 +375,7 @@ static void find_reload_regs PROTO((struct insn_chain *, FILE *)); ...@@ -375,7 +375,7 @@ static void find_reload_regs PROTO((struct insn_chain *, FILE *));
static void select_reload_regs PROTO((FILE *)); static void select_reload_regs PROTO((FILE *));
static void delete_caller_save_insns PROTO((void)); static void delete_caller_save_insns PROTO((void));
static void spill_failure PROTO((rtx)); static void spill_failure PROTO((rtx, enum reg_class));
static void count_spilled_pseudo PROTO((int, int, int)); static void count_spilled_pseudo PROTO((int, int, int));
static void delete_dead_insn PROTO((rtx)); static void delete_dead_insn PROTO((rtx));
static void alter_reg PROTO((int, int)); static void alter_reg PROTO((int, int));
...@@ -1720,7 +1720,7 @@ find_reload_regs (chain, dumpfile) ...@@ -1720,7 +1720,7 @@ find_reload_regs (chain, dumpfile)
&& rld[r].regno == -1) && rld[r].regno == -1)
if (! find_reg (chain, i, dumpfile)) if (! find_reg (chain, i, dumpfile))
{ {
spill_failure (chain->insn); spill_failure (chain->insn, rld[r].class);
failure = 1; failure = 1;
return; return;
} }
...@@ -1787,13 +1787,20 @@ delete_caller_save_insns () ...@@ -1787,13 +1787,20 @@ delete_caller_save_insns ()
INSN should be one of the insns which needed this particular spill reg. */ INSN should be one of the insns which needed this particular spill reg. */
static void static void
spill_failure (insn) spill_failure (insn, class)
rtx insn; rtx insn;
enum reg_class class;
{ {
static const char *const reg_class_names[] = REG_CLASS_NAMES;
if (asm_noperands (PATTERN (insn)) >= 0) if (asm_noperands (PATTERN (insn)) >= 0)
error_for_asm (insn, "`asm' needs too many reloads"); error_for_asm (insn, "Can't find a register in class `%s' while reloading `asm'.",
reg_class_names[class]);
else else
fatal_insn ("Unable to find a register to spill.", insn); {
error ("Unable to find a register to spill in class `%s'.",
reg_class_names[class]);
fatal_insn ("This is the insn:", insn);
}
} }
/* Delete an unneeded INSN and any previous insns who sole purpose is loading /* Delete an unneeded INSN and any previous insns who sole purpose is loading
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment