3 GCC regressions, 3 new, with your patch on 2002-03-05T18:05:20Z.

Jan Hubicka jh@suse.cz
Wed Mar 6 02:44:00 GMT 2002


> With your recent patch, GCC has some regression test failures, which
> used to pass.  There are 3 new failures, and 0
> failures that existed before and after that patch; 0 failures
> have been fixed.
> 
> The new failures are:
> powerpc-eabisim gcc.sum gcc.c-torture/compile/920410-2.c,
> native g++.sum g++.dg/opt/mmx1.C
> native gcc.sum gcc.c-torture/compile/920410-2.c,

These are fixed by attached patch I have in cfg-branch for a while
Basically estimate_bb_frequencies reload probabilities from REG_PROB
and fails for reversed conditionals.  THis is no longer needed as all
REG_PROB notes are constructed by combine_probability that already does
that properly.

I've installed the attached patch as obvious to avoid common crashes with
-funroll-all-loops.

Wed Mar  6 11:27:50 CET 2002  Jan Hubicka  <jh@suse.cz>
	* predict.c (estimate_bb_frequencies): Do not reload the
	frequencies from notes.

*** predict.c	Tue Jan 22 15:33:32 2002
--- /home/hubicka/egcs/gcc/predict.c	Thu Jan 24 22:09:43 2002
*************** estimate_bb_frequencies (loops)
*** 897,916 ****
  	    for (e = BASIC_BLOCK (i)->succ; e; e = e->succ_next)
  	      e->probability = (REG_BR_PROB_BASE + nedges / 2) / nedges;
  	}
-       else
- 	{
- 	  probability = INTVAL (XEXP (find_reg_note (last_insn,
- 						     REG_BR_PROB, 0), 0));
- 	  fallthru = BASIC_BLOCK (i)->succ;
- 	  if (!fallthru->flags & EDGE_FALLTHRU)
- 	    fallthru = fallthru->succ_next;
- 	  branch = BASIC_BLOCK (i)->succ;
- 	  if (branch->flags & EDGE_FALLTHRU)
- 	    branch = branch->succ_next;
- 
- 	  branch->probability = probability;
- 	  fallthru->probability = REG_BR_PROB_BASE - probability;
- 	}
      }
  
    ENTRY_BLOCK_PTR->succ->probability = REG_BR_PROB_BASE;
--- 1156,1161 ----



More information about the Gcc-regression mailing list