From: Hans-Peter Nilsson Date: Thu, 13 Jan 2005 01:18:58 +0000 (+0000) Subject: re PR target/18329 (mmix-knuth-mmixware testsuite failure: execute/920501-7.c, execut... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0149f412ec522ac2257390a0033ca29941f72858;p=gcc.git re PR target/18329 (mmix-knuth-mmixware testsuite failure: execute/920501-7.c, execute/comp-goto-2.c) PR target/18329 PR target/18330 * reload1.c (delete_output_reload): Don't delete an output reload if the pseudo lives longer than a single basic block. Adjust and improve wording of comment. From-SVN: r93250 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b612dafd8ef..d0846592770 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-01-13 Hans-Peter Nilsson + + PR target/18329 + PR target/18330 + * reload1.c (delete_output_reload): Don't delete an output reload + if the pseudo lives longer than a single basic block. Adjust and + improve wording of comment. + 2005-01-12 Andrew Pinski PR target/19334 diff --git a/gcc/reload1.c b/gcc/reload1.c index 64020507aa6..71c1afadd54 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -7624,13 +7624,13 @@ delete_output_reload (rtx insn, int j, int last_reload_reg) /* If the pseudo-reg we are reloading is no longer referenced anywhere between the store into it and here, - and no jumps or labels intervene, then the value can get - here through the reload reg alone. + and we're within the same basic block, then the value can only + pass through the reload reg and end up here. Otherwise, give up--return. */ for (i1 = NEXT_INSN (output_reload_insn); i1 != insn; i1 = NEXT_INSN (i1)) { - if (LABEL_P (i1) || JUMP_P (i1)) + if (NOTE_INSN_BASIC_BLOCK_P (i1)) return; if ((NONJUMP_INSN_P (i1) || CALL_P (i1)) && reg_mentioned_p (reg, PATTERN (i1)))