This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: middle-end/6180: Infinite loop in cc1 during dbr pass
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: rth at redhat dot com (Richard Henderson)
- Cc: gcc-bugs at gcc dot gnu dot org, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Sat, 6 Apr 2002 15:12:23 -0500 (EST)
- Subject: Re: middle-end/6180: Infinite loop in cc1 during dbr pass
> On Fri, Apr 05, 2002 at 02:54:08PM -0500, John David Anglin wrote:
> > Do we actually need to call reposition_prologue_and_epilogue_notes
> > at this point?
My conclusion is that we can't reposition prologue and epilogue notes
at this point in dbr_schedule because the above function can't handle
sequences. Further, the exact end and start of the prologue and
epilogue, respectively, is indeterminant. Thus, I propose that the
notes not be repositioned.
I have confirmed that the enclosed patch fixes the compilation problem
of nm.c under hppa-linux. I have bootstrapped and checked that there
are no regressions with this patch under hppa-linux and
hppa2.0w-hp-hpux11.11.
The compilation failure of nm.c is a regression from 3.0.x. OK for
trunk and 3.1 branch?
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
2002-04-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
* reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
Index: reorg.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/reorg.c,v
retrieving revision 1.70
diff -u -3 -p -r1.70 reorg.c
--- reorg.c 31 Mar 2002 18:45:21 -0000 1.70
+++ reorg.c 6 Apr 2002 02:18:27 -0000
@@ -3686,10 +3686,6 @@ dbr_schedule (first, file)
/* It is not clear why the line below is needed, but it does seem to be. */
unfilled_firstobj = (rtx *) obstack_alloc (&unfilled_slots_obstack, 0);
- /* Reposition the prologue and epilogue notes in case we moved the
- prologue/epilogue insns. */
- reposition_prologue_and_epilogue_notes (first);
-
if (file)
{
int i, j, need_comma;