https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116058

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So from what I can tell is happening is
recog_level2 (in rtl-ssa/changes.cc)
calls recog:
      icode = ::recog (pat, rtl, &num_clobbers);


num_clobbers is greater than 0 and then we remove the clobbers inside the
PARALLEL:
      if (GET_CODE (pat) == PARALLEL)
        {
          oldlen = XVECLEN (pat, 0);
          newvec = rtvec_alloc (num_clobbers + oldlen);
          for (int i = 0; i < oldlen; ++i)
            RTVEC_ELT (newvec, i) = XVECEXP (pat, 0, i);
        }


BUT add_clobbers does not handle the case where the clobbers was inside the
PARALLEL.

I am trying to understand why there is a difference understanding in
num_clobbers between recog and add_clobbers now.

Reply via email to