This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/55941] [4.8 Regression] Strange copy of double (in struct) to stack


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rth at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-11 15:01:18 UTC ---
I'd hope that the subreg pass could be able to figure out something out of:
(insn 4 3 5 2 (set (reg:TI 63 [ x ])
        (const_int 0 [0])) pr55941.c:2 85 {*movti_internal_rex64}
     (nil))
(insn 5 4 6 2 (set (subreg:DF (reg:TI 63 [ x ]) 0)
        (reg:DF 64 [ x ])) pr55941.c:2 131 {*movdf_internal_rex64}
     (expr_list:REG_DEAD (reg:DF 64 [ x ])
        (nil)))
(insn 6 5 8 2 (set (subreg:DF (reg:TI 63 [ x ]) 8)
        (reg:DF 22 xmm1 [ x+8 ])) pr55941.c:2 131 {*movdf_internal_rex64}
     (expr_list:REG_DEAD (reg:DF 22 xmm1 [ x+8 ])
        (nil)))
(insn 8 6 9 2 (set (reg:DF 67 [ D.1730 ])
        (reg:DF 23 xmm2 [ y ])) pr55941.c:2 131 {*movdf_internal_rex64}
     (expr_list:REG_DEAD (reg:DF 23 xmm2 [ y ])
        (nil)))
(note 9 8 12 2 NOTE_INSN_FUNCTION_BEG)
(insn 12 9 17 2 (set (reg:DF 67 [ D.1730 ])
        (plus:DF (reg:DF 67 [ D.1730 ])
            (subreg:DF (reg:TI 63 [ x ]) 0))) pr55941.c:2 785
{*fop_df_comm_sse}
     (expr_list:REG_DEAD (reg:TI 63 [ x ])
        (nil)))
(all accesses to pseudo 63 in the listed insns), but it only drops the insn 6,
but doesn't figure out the only user uses the low part and thus propagate the
setter.  Or perhaps should forwprop propagate something like that?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]