PR22336 (was: Problem with tree-ssa-loop-ivopts.c:get_computation-cost)

Zdenek Dvorak rakdver@atrey.karlin.mff.cuni.cz
Tue Jul 12 11:04:00 GMT 2005


Hello,

> If no one is suggesting an alternative, tested on x86 and x86_64-linux
> where it restores bootstrap (at last :), ok to commit?

I think the patch is fine (although of course I cannot approve it).  The
more proper fix would be to never expand such expressions from ivopts;
I have a patch for this, but it needs more testing and benchmarking.

Zdenek

> We're down to 6 ACATS FAIL on x86_64 and 8 on x86:
> 
> http://gcc.gnu.org/ml/gcc-testresults/2005-07/msg00654.html
> http://gcc.gnu.org/ml/gcc-testresults/2005-07/msg00653.html
> 
> common:
> 18818: cd10002 (run) stream attributes
> 18819: cdd2a02 (run, works at -O0 everywhere) works with -O2 -fno-tree-sra
> 22333: c34007p c34007r c45282b (run) spurious discriminant CONSTRAINT_ERROR	
> 
> x86 only:
> 18659: c32001e c64105b c95086b (ICE x86, ppc, ia64, works on x86_64, pass everywhere at -O0) works with -O2 -fno-tree-sra
> 
> x86_64 only:
> 20548: c52103x (run) segfault at runtime on x86_64 and hppa
> 
> Laurent
> 
> 2005-07-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
> 	    Laurent GUERBY  <laurent@guerby.net>
> 
> 	PR tree-optimization/22336
> 	* function.c (record_block_change): Check for 
> 	cfun->ib_boundaries_block.
> 
> 
> Index: function.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/function.c,v
> retrieving revision 1.635
> diff -u -r1.635 function.c
> --- function.c  7 Jul 2005 21:04:31 -0000       1.635
> +++ function.c  10 Jul 2005 19:06:10 -0000
> @@ -5502,6 +5502,9 @@
>    if (!block)
>      return;
> 
> +  if(!cfun->ib_boundaries_block)
> +    return;
> +
>    last_block = VARRAY_TOP_TREE (cfun->ib_boundaries_block);
>    VARRAY_POP (cfun->ib_boundaries_block);
>    n = get_max_uid ();
> 
> 
> On Tue, 2005-07-05 at 10:31 +0200, Laurent GUERBY wrote:
> > This is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22212
> > and is the problem blocking Ada bootstrap on x86_64-linux,
> > it would be great to move forward on this.
> > 
> > Laurent
> > 
> > On Thu, 2005-06-30 at 18:18 -0400, Richard Kenner wrote:
> > > This function generates RTL from an expression to see how many RTL insns
> > > it is.  But this causes a problem compiling the Ada ACATS test cxa4006.
> > > 
> > > The problem is when part of the expression has a location.  In that
> > > case, record_block_change is called and that relies on
> > > cfun->ib_boundaries_block being set.  But it isn't because we aren't
> > > expanding stuff "for real".  A kludge would be to test that field, but
> > > what's the proper way?
> > > 
> > > Also, seq_cost really should be looking at next_real_insn, not NEXT_INSN,
> > > since any notes shouldn't be counted.
> > > 
> 



More information about the Gcc-patches mailing list