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

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-08-03
          Component|middle-end                  |rtl-optimization
     Ever confirmed|0                           |1

--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> ---
Before the patch, register allocator used to leave self-assignments (e.g. insn
20) in the insn stream. Post-reload vzeroupper insertion mode-swithing pass
depends on these instructions. Self-assignments are later removed by subsequent
passes.

...
(insn 6 19 20 2 (parallel [
            (set (reg:SI 0 ax [orig:88 _5 ] [88])
                (unspec_volatile:SI [
                        (mem/v:SI (reg/v/f:DI 5 di [orig:90 l ] [90]) [-1  S4
A32])
                        (const_int 32773 [0x8005])
                    ] UNSPECV_XCHG))
            (set (mem/v:SI (reg/v/f:DI 5 di [orig:90 l ] [90]) [-1  S4 A32])
                (plus:SI (mem/v:SI (reg/v/f:DI 5 di [orig:90 l ] [90]) [-1  S4
A32])
                    (reg:SI 0 ax [orig:88 _5 ] [88])))
            (clobber (reg:CC 17 flags))
        ]) /home/uros/gcc-svn/trunk/libgo/runtime/sema.goc:345 4933
{atomic_fetch_addsi}
     (nil))
(insn 20 6 7 2 (set (reg:SI 0 ax [orig:88 _5 ] [88])
        (reg:SI 0 ax [orig:88 _5 ] [88]))
/home/uros/gcc-svn/trunk/libgo/runtime/sema.goc:345 82 {*movsi_internal}
     (nil))
...

Can we have these self-assignments back?

Reply via email to