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

--- Comment #1 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
I think, instructions 40 and 44 are transposed between 

select_type_4a.f90.209r.asmcons:

(insn 40 38 43 6 (set (mem/f/c:SI (plus:SI (reg/f:SI 102 sfp)
                (const_int -4 [0xfffffffffffffffc])) [3 MEM[(struct
__class_poly_list_Node_type_p *)&node + 4B]+0 S4 A32])
        (reg/f:SI 140)) select_type_4a.f90:36 663 {*arm_movsi_vfp}
     (nil))
(insn 43 40 44 6 (set (reg/f:SI 139)
        (plus:SI (reg/f:SI 102 sfp)
            (const_int -8 [0xfffffffffffffff8]))) select_type_4a.f90:36 5
{*arm_addsi3}
     (nil))
(insn 44 43 45 6 (parallel [
            (set (reg:SI 0 r0)
                (mem/c:SI (reg/f:SI 139) [8 MEM[(struct
__class_poly_list_Node_type &)&node]+0 S4 A64]))
            (set (reg:SI 1 r1)
                (mem/c:SI (plus:SI (reg/f:SI 139)
                        (const_int 4 [0x4])) [8 MEM[(struct
__class_poly_list_Node_type &)&node]+4 S4 A32]))
        ]) select_type_4a.f90:36 420 {*ldm2_ia}
     (nil))

and select_type_4a.f90.212r.sched1:

(insn 44 38 40 6 (parallel [
            (set (reg:SI 0 r0)
                (mem/c:SI (reg/f:SI 139) [8 MEM[(struct
__class_poly_list_Node_type &)&node]+0 S4 A64]))
            (set (reg:SI 1 r1)
                (mem/c:SI (plus:SI (reg/f:SI 139)
                        (const_int 4 [0x4])) [8 MEM[(struct
__class_poly_list_Node_type &)&node]+4 S4 A32]))
        ]) select_type_4a.f90:36 420 {*ldm2_ia}
     (nil))
(insn 40 44 45 6 (set (mem/f/c:SI (plus:SI (reg/f:SI 102 sfp)
                (const_int -4 [0xfffffffffffffffc])) [3 MEM[(struct
__class_poly_list_Node_type_p *)&node + 4B]+0 S4 A32])
        (reg/f:SI 140)) select_type_4a.f90:36 663 {*arm_movsi_vfp}
     (nil))


but they use an alias to the same memory.

interesting, one names the memory MEM[...&node]+4
and the other names it MEM[...&node+4B]+0.

Reply via email to