This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: cfgcleanup bugfix installed


> 
>  > From: Andreas Tobler <toa at pop dot agri dot ch> 
>  > 
>  > > > Andreas
>  > > >
>  > > > P.S. solaris-2.6 I'll verify on monday.
>  > > I've got sucesfull bootstrap at ultra here, so it should work.
> 
> I'm still getting a similar failure on sparc-sun-solaris2.7:
> 
> stage1/xgcc -Bstage1/ -B/usr/local/sparc-sun-solaris2.7/bin/ -c
> -DIN_GCC -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
> -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long
> -DHAVE_CONFIG_H -I. -I. -I../../egcs-CVS20011027/gcc
> -I../../egcs-CVS20011027/gcc/. -I../../egcs-CVS20011027/gcc/config
> -I../../egcs-CVS20011027/gcc/../include
> ../../egcs-CVS20011027/gcc/calls.c -o calls.o
> calls.c: In function `save_fixed_argument_area':
> calls.c:961: Internal compiler error in ?, at sched-rgn.c:2942
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
> make[2]: *** [calls.o] Error 1
> 
> If you need a .i file let me know.
I am just testing following fix.  The problem is that function in question
swaps meaning of a and b in the middle and I do the setting too early :(

It solves similar problems for me.  Having preprocessed file can be nice,
as I can't reproduce it on my bootstrap.

Index: cfgcleanup.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cfgcleanup.c,v
retrieving revision 1.13
diff -c -3 -p -r1.13 cfgcleanup.c
*** cfgcleanup.c	2001/10/27 10:17:44	1.13
--- cfgcleanup.c	2001/10/27 18:18:06
*************** merge_blocks_move_predecessor_nojumps (a
*** 334,340 ****
    /* Scramble the insn chain.  */
    if (a->end != PREV_INSN (b->head))
      reorder_insns_nobb (a->head, a->end, PREV_INSN (b->head));
-   BB_SET_FLAG (a, BB_UPDATE_LIFE);
  
    if (rtl_dump_file)
      {
--- 334,339 ----
*************** merge_blocks_move_predecessor_nojumps (a
*** 350,355 ****
--- 349,355 ----
    index = a->index;
    a->index = b->index;
    b->index = index;
+   BB_SET_FLAG (a, BB_UPDATE_LIFE);
  
    /* Now blocks A and B are contiguous.  Merge them.  */
    merge_blocks_nomove (a, b);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]