On Thu, 2020-01-23 at 20:05 +0100, Richard Biener wrote:
> On January 23, 2020 7:22:02 PM GMT+01:00, Jakub Jelinek <ja...@redhat.com> 
> wrote:
> > Hi!
> > 
> > The following testcase is miscompiled, because the postreload pass
> > changes:
> > -(insn 14 13 23 2 (parallel [
> > -            (set (reg:DI 1 dx [94])
> > -                (plus:DI (reg:DI 1 dx [95])
> > -                    (reg:DI 5 di [92])))
> > -            (clobber (reg:CC 17 flags))
> > -        ]) "pr93402.c":8:30 186 {*adddi_1}
> > -     (expr_list:REG_EQUAL (plus:DI (reg:DI 5 di [92])
> > -            (const_int 111111111111 [0x19debd01c7]))
> > -        (nil)))
> > -(insn 23 14 25 2 (set (reg:SI 0 ax)
> > +(insn 23 13 25 2 (set (reg:SI 0 ax)
> >         (const_int 0 [0])) "pr93402.c":10:1 67 {*movsi_internal}
> >      (nil))
> > (insn 25 23 26 2 (use (reg:SI 0 ax)) "pr93402.c":10:1 -1
> >      (nil))
> > -(insn 26 25 35 2 (use (reg:DI 1 dx)) "pr93402.c":10:1 -1
> > +(insn 26 25 35 2 (use (plus:DI (reg:DI 1 dx [95])
> > +            (reg:DI 5 di [92]))) "pr93402.c":10:1 -1
> >      (nil))
> > A USE insn is not a normal insn and verify_changes called from
> > apply_change_group is happy about any changes into it.
> > The following patch avoids this optimization if we were to change
> > the USE operand (this routine only changes a reg into (plus reg reg2)).
> > 
> > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk and
> > later for release branches?
> 
> Ok. Looks like the same thing Richard fixed for autoinc. 
Yup.  I suppose we still need the naked clobber/use insns and that
there's more of these problems lurking in the weeks.

jeff
> 

Reply via email to