This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: REGRESSION in 3.2.1-pre on mips-irix6 (and elsewhere) compilingexecute/20011219-1.c


All,

Graham Stott wrote:
Jan,

I've reproduced the problem on a mips-sgi-irix6.5 cross.

Ok now to do some digging.

Graham


Can those people with access to failing targets please try the following
patch.

I'm going to do a i686-pc-linux-gnu bootstrap over night as an minimal
sanity check.

The problem is the DEAD jumptable should have been deleted but wasn't
because the label had an incorrect NUSES so the delete_dead_jumptables
thought it was still used.

Rebuilding the NUSES field of all label_refs at the end of life analysis
and immediately prior to the purging dead jumptables we allow the
delete_dead_jumptables routine to purge all the dead jump tables.

We are going to take a performance hit with this patch but I'm not
sure how significant it'll be.

Comments.

Graham

ChangeLog

      * flow.c(life_analysis): Update LABEL_NUSES before purging
      dead jumptables.

----------------------------------------------------------------
Index: flow.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/flow.c,v
retrieving revision 1.505.2.4.4.1
diff -c -p -r1.505.2.4.4.1 flow.c
*** flow.c      19 Aug 2002 18:59:31 -0000      1.505.2.4.4.1
--- flow.c      13 Nov 2002 23:48:30 -0000
*************** life_analysis (f, file, flags)
*** 499,504 ****
--- 499,507 ----
        }
    }
  #endif
+
+   rebuild_jump_labels (get_insns ());
+
    /* Removing dead insns should've made jumptables really dead.  */
    delete_dead_jumptables ();
  }
----------------------------------------------------------------------


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