This is the mail archive of the gcc-patches@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]

[will committ] i686 bootstrap failure in revision 110699: looping in (fwd)


I almost forgot to send it to gcc-patches@.

-- Pinski

> > On Wed, 2006-02-08 at 12:28 -0500, Andrew Pinski wrote:
> > > > 
> > > > I've build in a unified (symlink) tree, with sourceware stuff checked 
> > > > out via cvs from date/time D2006.02.07.17.00.00
> > > 
> > > I am reducing this failure and will file a bug report.
> > > 
> > 
> > This failure is actually a latent bug elsewhere in marking statements
> > annotations with volatile ops
> > 
> > PRE doesn't touch statements that contain volatile operations because
> > operand_equal_p claims two volatile operands are different, even if they
> > look the same (which is the underlying cause of your infinite loop.  We
> > keep thinking we've generated new values because the hash lookup never
> > finds the old ones because operand_equal_p returns false)
> > 
> > All the other statements related to your volatile expressions have
> > stmt_ann (stmt)->has_volatile_ops set to 1.
> > 
> > yet
> > 
> > (gdb) p ann->has_volatile_ops
> > $18 = 0
> > :(
> 
> I have a patch which is testing right now and I will apply it as pre-approved
> (by Diego) once it has finishing testing. 
> 
> Thanks,
> Andrew Pinski
> 
> 
> ChangeLog:
> 
> 	* tree-flow-inline.h (var_can_have_subvars): 
> 	Volatile variables should not have subvariables.
> 
> 
> 
> --%--multipart-mixed-boundary-1.25496.1139429690--%
> Content-Type: text/plain
> Content-Transfer-Encoding: 7bit
> Content-Description: ASCII C program text
> Content-Disposition: attachment; filename="fixvolatile.diff.txt"
> 
> Index: tree-flow-inline.h
> ===================================================================
> --- tree-flow-inline.h	(revision 110761)
> +++ tree-flow-inline.h	(working copy)
> @@ -1463,6 +1463,11 @@ get_subvar_at (tree var, unsigned HOST_W
>  static inline bool
>  var_can_have_subvars (tree v)
>  {
> +
> +  /* Volatile variables should never have subvars.  */
> +  if (TREE_THIS_VOLATILE (v))
> +    return false;
> +
>    /* Non decls or memory tags can never have subvars.  */
>    if (!DECL_P (v) || MTAG_P (v))
>      return false;
> 
> --%--multipart-mixed-boundary-1.25496.1139429690--%--
> 


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