On Fri, 2017-01-06 at 10:25 -0700, Jeff Law wrote:
> On 01/06/2017 09:43 AM, David Malcolm wrote:
> > On Fri, 2017-01-06 at 17:25 +0100, Jakub Jelinek wrote:
> > > On Thu, Jan 05, 2017 at 03:20:26PM -0500, David Malcolm wrote:
> > > > +  /* Handle "reuse_rtx".  */
> > > > +  if (strcmp (code_name, "reuse_rtx") == 0)
> > > > +    {
> > > > +      read_name (&name);
> > > > +      long idx = atoi (name.string);
> > > > +      /* Look it up by ID.  */
> > > > +      gcc_assert (idx < m_reuse_rtx_by_id.length ());
> > > > +      return_rtx = m_reuse_rtx_by_id[idx];
> > > > +      return return_rtx;
> > > > +    }
> > > 
> > > This broke bootstrap on i686-linux (and other ILP32 hosts),
> > > because
> > > vec.h length () returns unsigned.
> > 
> > Sorry about the breakage.
> > 
> > I'm not able to approve the patch, but the fix looks to me like it
> > would be covered under the "obvious" rule.
> Can't the code string be "-1" for an insn that hasn't passed through 
> recog yet?  You can probably get those in a dump at various times.

This is a different kind of ID, for handling identity of SCRATCH
instances within a dump; see the discussion here:
  https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01801.html

They're all non-negative (see class rtx_reuse_manager, though I see now
that I used an "int" rather than an "unsigned" for them - but they
start at zero and go up).

Reply via email to