http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55093



H.J. Lu <hjl.tools at gmail dot com> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

  Attachment #28541|0                           |1

        is obsolete|                            |



--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> 2012-10-29 00:10:37 
UTC ---

Created attachment 28552

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28552

A smaller testcase



LRA failed to handle



(insn 34 32 35 4 (parallel [

            (set (reg:SI 79)

                (plus:SI (subreg:SI (reg/f:DI 16 argp) 0)

                    (const_int 4 [0x4])))

            (clobber (reg:CC 17 flags))

        ]) x.ii:63 247 {*addsi_1}

     (expr_list:REG_UNUSED (reg:CC 17 flags)

        (expr_list:REG_EQUIV (plus:SI (subreg:SI (reg/f:DI 16 argp) 0)

                (const_int 4 [0x4]))

            (nil))))



The old reload eliminates argp:



(insn 34 49 35 4 (parallel [

            (set (reg:SI 4 si [79])

                (plus:SI (reg:SI 4 si [79])

                    (const_int 20 [0x14])))

            (clobber (reg:CC 17 flags))

        ]) x.ii:63 247 {*addsi_1}

     (expr_list:REG_EQUIV (plus:SI (subreg:SI (plus:DI (reg/f:DI 7 sp) 

                    (const_int 16 [0x10])) 0)

            (const_int 4 [0x4]))

        (nil)))



while LRA keeps:



(insn 34 32 35 4 (parallel [

            (set (reg:SI 4 si [79])

                (plus:SI (reg:SI 16 argp)

                    (const_int 20 [0x14])))

            (clobber (reg:CC 17 flags))

        ]) x.ii:63 247 {*addsi_1}

     (expr_list:REG_UNUSED (reg:CC 17 flags)

        (expr_list:REG_EQUIV (plus:SI (subreg:SI (reg/f:DI 16 argp) 0)

                (const_int 4 [0x4]))

            (nil))))

Reply via email to