REGRESSION in 3.2.1-pre on mips-irix6 (and elsewhere) compiling execute/20011219-1.c

Graham Stott graham.stott@btinternet.com
Wed Nov 13 11:31:00 GMT 2002


Jan,

Jan Hubicka wrote:
>>
>>--On Wednesday, November 13, 2002 02:11:26 AM -0500 "Kaveh R. Ghazi" 
>><ghazi@caip.rutgers.edu> wrote:
>>
>>
>>>Sometime in the last day or so, I'm getting a new regression from the
>>>gcc-3.2.1-pre testsuite on mips-irix6 when compiling
>>>execute/20011219-1.c.
>>
>>Jan, Graham -- I'd bet that this is fallout from your PR8502 patch.
>>
>>Would you please take a look?
> 
> I will do.  I tought it is failing in ppc, so tried it to reproduce on
> ppc croos that of course failed.  Another try.
> However the patch just prevents optimization to happen, so it is
> probably latent bug somewhere else :)
> 
> Honza
> 
>>-- 
>>Mark Mitchell                mark@codesourcery.com
>>CodeSourcery, LLC            http://www.codesourcery.com
> 
> 

Oh what a twisty maze our cfg jumptable tidying up cost is.

I'm wandering if it's caused by a deadjump table not getting deleted
perhaps we can refine the new test to be

   rtx label;

   ....

   if (reload_completed
       && (label = JUMP_LABEL (insn))
       && LABEL_NUSES (label) > LABEL_PRESERVE_P (label)
       && (table = NEXT_INSN (label)) != NULL_RTX
       && GET_CODE (table) == JUMP_INSN
       && (GET_CODE (PATTERN (table)) == ADDR_VEC
           || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC))
     return false;

This should allow a dead jump table to get deleted post reload
and also prevent a jump table that's referenced from being deleted.


I'll try and reproduce the problem on an mips cross compiler and
see my idea fixes the problem.


Graham




More information about the Gcc mailing list