This is the mail archive of the gcc-regression@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: 4 GCC regressions, 2 new, with your patch on 2002-05-02T18:01:59Z.


> > With your recent patch, GCC has some regression test failures, which
> > used to pass.  There are 2 new failures, and 2
> > failures that existed before and after that patch; 0 failures
> > have been fixed.
> > 
> > The new failures are:
> > powerpc-eabisim gcc.sum gcc.c-torture/execute/20011219-1.c
> > native gcc.sum gcc.c-torture/execute/20011219-1.c

Hi,
the problem is that elliminable tablejump is not elliminated anymore
and later, killed by merge_blocks in wrong way.  The attached
patch restrict merge_blocks to simplejumps.  This should not lose valid
optimizations as the jump will get converted to simplejump by other
optimization.

Bootstrapped/regtested i386 mainline

Honza

Fri May  3 11:12:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
	* cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
	jump is simplejump.

Index: cfgcleanup.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cfgcleanup.c,v
retrieving revision 1.49
diff -c -3 -p -r1.49 cfgcleanup.c
*** cfgcleanup.c	1 May 2002 20:20:19 -0000	1.49
--- cfgcleanup.c	3 May 2002 09:04:01 -0000
*************** try_optimize_cfg (mode)
*** 1684,1690 ****
  		     /* If the jump insn has side effects,
  			we can't kill the edge.  */
  		     && (GET_CODE (b->end) != JUMP_INSN
! 			 || onlyjump_p (b->end))
  		     && merge_blocks (s, b, c, mode))
  		changed_here = true;
  
--- 1684,1690 ----
  		     /* If the jump insn has side effects,
  			we can't kill the edge.  */
  		     && (GET_CODE (b->end) != JUMP_INSN
! 			 || simplejump_p (b->end))
  		     && merge_blocks (s, b, c, mode))
  		changed_here = true;
  


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