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



--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2012-10-25 00:49:09 
UTC ---

LRA generates



(gdb) call debug_rtx (insn)

(insn 6 20 7 2 (set (reg/f:SI 0 ax [orig:65 gomp_tls_data.ts.work_share ] [65])

        (mem/f/j/c:SI (plus:SI (reg:SI 2 cx [68])

                (reg:DI 0 ax [64])) [0 gomp_tls_data.ts.work_share+0 S4 A32]))

/tmp/x.i:23 65 {*movsi_internal}

     (expr_list:REG_DEAD (reg:SI 2 cx [68])

        (expr_list:REG_DEAD (reg:DI 0 ax [64])

            (nil))))





from



(insn 6 5 7 2 (set (reg/f:SI 65 [ gomp_tls_data.ts.work_share ])

        (mem/f/j/c:SI (plus:DI (plus:DI (zero_extend:DI (unspec:SI [

                                (const_int 0 [0])

                            ] UNSPEC_TP))

                    (reg:DI 64))

                (const_int 4 [0x4])) [0 gomp_tls_data.ts.work_share+0 S4 A32])) 

/tmp/x.i:23 65 {*movsi_internal}

     (expr_list:REG_DEAD (reg:DI 64)

        (nil)))



It fails to properly handle zero_extend.

Reply via email to