diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eada5df2d2d743a029262b342db0d1680f5c5872..e2410c3d32f3a1cf12c49aa8166a4e929264b4cf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-04-01 Andrew Pinski <pinskia@physics.uc.edu> + + * rtlanal.c (find_reg_note): Manually + unswitch the loop. + 2004-04-01 Mark Mitchell <mark@codesourcery.com> * genemit.c (gen_split): Change prototype of generated code. diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 3f3a4289d6364e766d6d47979a5d995f5f84dc5c..c66cc9adc8cb63ea1132a54af6919d9d47d46cdd 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1911,10 +1911,16 @@ find_reg_note (rtx insn, enum reg_note kind, rtx datum) /* Ignore anything that is not an INSN, JUMP_INSN or CALL_INSN. */ if (! INSN_P (insn)) return 0; + if (datum == 0) + { + for (link = REG_NOTES (insn); link; link = XEXP (link, 1)) + if (REG_NOTE_KIND (link) == kind) + return link; + return 0; + } for (link = REG_NOTES (insn); link; link = XEXP (link, 1)) - if (REG_NOTE_KIND (link) == kind - && (datum == 0 || datum == XEXP (link, 0))) + if (REG_NOTE_KIND (link) == kind && datum == XEXP (link, 0)) return link; return 0; }