From 3900dc09bc97e0b8a1dd4653d85072d825a1318f Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Thu, 11 Mar 1999 12:44:27 +0000 Subject: [PATCH] reload.1c (delete_address_reloads_1): Check for reloads of CURRENT_INSN even if it sets DST. * reload.1c (delete_address_reloads_1): Check for reloads of CURRENT_INSN even if it sets DST. From-SVN: r25701 --- gcc/ChangeLog | 5 +++++ gcc/reload1.c | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e45036623d..1b1aa77ca2e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Mar 11 20:37:59 1999 J"orn Rennecke + + * reload.1c (delete_address_reloads_1): Check for reloads of + CURRENT_INSN even if it sets DST. + Thu Mar 11 10:29:50 1999 Jason Merrill * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset. diff --git a/gcc/reload1.c b/gcc/reload1.c index 910961408cd..9d133257464 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -8135,10 +8135,9 @@ delete_address_reloads_1 (dead_insn, x, current_insn) } if (GET_CODE (i2) == JUMP_INSN) break; - if (reg_set_p (dst, PATTERN (i2))) - break; /* If DST is still live at CURRENT_INSN, check if it is used for - any reload. */ + any reload. Note that even if CURRENT_INSN sets DST, we still + have to check the reloads. */ if (i2 == current_insn) { for (j = n_reloads - 1; j >= 0; j--) @@ -8151,6 +8150,8 @@ delete_address_reloads_1 (dead_insn, x, current_insn) spill_hard_reg. There is no easy way to tell this, so we have to scan till the end of the basic block. */ } + if (reg_set_p (dst, PATTERN (i2))) + break; } } delete_address_reloads_1 (prev, SET_SRC (set), current_insn); -- 2.30.2