OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* config/sh/elf.h (LIB_SPEC): Define.
[pf3gnuchains/gcc-fork.git]
/
gcc
/
reload1.c
diff --git
a/gcc/reload1.c
b/gcc/reload1.c
index
40098b3
..
da354a7
100644
(file)
--- a/
gcc/reload1.c
+++ b/
gcc/reload1.c
@@
-675,10
+675,8
@@
has_nonexceptional_receiver (void)
/* Now see if there's a reachable block with an exceptional incoming
edge. */
FOR_EACH_BB (bb)
/* Now see if there's a reachable block with an exceptional incoming
edge. */
FOR_EACH_BB (bb)
- if (bb->flags & BB_REACHABLE)
- FOR_EACH_EDGE (e, ei, bb->preds)
- if (e->flags & EDGE_ABNORMAL)
- return true;
+ if (bb->flags & BB_REACHABLE && bb_has_abnormal_pred (bb))
+ return true;
/* No exceptional block reached exit unexceptionally. */
return false;
/* No exceptional block reached exit unexceptionally. */
return false;
@@
-2091,7
+2089,7
@@
static void
spill_failure (rtx insn, enum reg_class rclass)
{
if (asm_noperands (PATTERN (insn)) >= 0)
spill_failure (rtx insn, enum reg_class rclass)
{
if (asm_noperands (PATTERN (insn)) >= 0)
- error_for_asm (insn, "can't find a register in class %qs while "
+ error_for_asm (insn, "can
%
't find a register in class %qs while "
"reloading %<asm%>",
reg_class_names[rclass]);
else
"reloading %<asm%>",
reg_class_names[rclass]);
else
@@
-2114,7
+2112,7
@@
spill_failure (rtx insn, enum reg_class rclass)
static void
delete_dead_insn (rtx insn)
{
static void
delete_dead_insn (rtx insn)
{
- rtx prev = prev_
real
_insn (insn);
+ rtx prev = prev_
active
_insn (insn);
rtx prev_dest;
/* If the previous insn sets a register that dies in our insn, delete it
rtx prev_dest;
/* If the previous insn sets a register that dies in our insn, delete it
@@
-6027,7
+6025,9
@@
failed_reload (rtx insn, int r)
static int
set_reload_reg (int i, int r)
{
static int
set_reload_reg (int i, int r)
{
- int regno;
+ /* regno is 'set but not used' if HARD_REGNO_MODE_OK doesn't use its first
+ parameter. */
+ int regno ATTRIBUTE_UNUSED;
rtx reg = spill_reg_rtx[i];
if (reg == 0 || GET_MODE (reg) != rld[r].mode)
rtx reg = spill_reg_rtx[i];
if (reg == 0 || GET_MODE (reg) != rld[r].mode)
@@
-7500,8
+7500,8
@@
emit_input_reload_insns (struct insn_chain *chain, struct reload *rl,
|| (reg_equiv_constant
[REGNO (SUBREG_REG (oldequiv))] != 0)))
|| (CONSTANT_P (oldequiv)
|| (reg_equiv_constant
[REGNO (SUBREG_REG (oldequiv))] != 0)))
|| (CONSTANT_P (oldequiv)
- && (
PREFERRED_RELOAD_CLASS
(oldequiv,
- REGNO_REG_CLASS (REGNO (reloadreg)))
+ && (
targetm.preferred_reload_class
(oldequiv,
+
REGNO_REG_CLASS (REGNO (reloadreg)))
== NO_REGS)))
real_oldequiv = rl->in;
gen_reload (reloadreg, real_oldequiv, rl->opnum,
== NO_REGS)))
real_oldequiv = rl->in;
gen_reload (reloadreg, real_oldequiv, rl->opnum,
@@
-8615,7
+8615,7
@@
gen_reload (rtx out, rtx in, int opnum, enum reload_type type)
return insn;
}
return insn;
}
- fatal_insn ("
F
ailure trying to reload:", set);
+ fatal_insn ("
f
ailure trying to reload:", set);
}
/* If IN is a simple operand, use gen_move_insn. */
else if (OBJECT_P (in) || GET_CODE (in) == SUBREG)
}
/* If IN is a simple operand, use gen_move_insn. */
else if (OBJECT_P (in) || GET_CODE (in) == SUBREG)
@@
-9161,9
+9161,7
@@
fixup_abnormal_edges (void)
BB_END (bb) = insn;
insn = NEXT_INSN (insn);
BB_END (bb) = insn;
insn = NEXT_INSN (insn);
- FOR_EACH_EDGE (e, ei, bb->succs)
- if (e->flags & EDGE_FALLTHRU)
- break;
+ e = find_fallthru_edge (bb->succs);
while (insn && insn != stop)
{
while (insn && insn != stop)
{