http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44141
--- Comment #15 from Venkataramanan <venkataramanan.kumar at amd dot com> 2012-04-01 07:55:24 UTC --- Hi Uros, I had a look at reload pass. I have an RTL sequence that look like this. (insn 32 31 33 2 (set (subreg:V4SF (reg:V2DF 284) 0) <== psuedo reguster (unspec:V4SF [ (mem/c:V4SF (plus:DI (reg/f:DI 20 frame) (const_int -568 [0xfffffffffffffdc8])) [3 MEM[(real(kind=8)[26] *)&dsroo + 120B]+0 S16 A64]) ] UNSPEC_MOVU)) test.f90:16 1106 {*sse_movups} (nil)) (insn 33 32 371 2 (set (reg:V2DF 285) <= pseudo register (div:V2DF (reg:V2DF 284) <== pseudo register (mem/c:V2DF (plus:DI (reg/f:DI 20 frame) (const_int -576 [0xfffffffffffffdc0])) [3 MEM[(real(kind=8)[26] *)&dsroo + 112B]+0 S16 A128]))) test.f90:16 1146 {sse2_divv2df3} (nil)) Now reload examines the first RTL. (insn 32 31 33 2 (set (subreg:V4SF (reg:V2DF 284) 0) <== psuedo reguster (unspec:V4SF [ (mem/c:V4SF (plus:DI (reg/f:DI 20 frame) (const_int -568 [0xfffffffffffffdc8])) [3 MEM[(real(kind=8)[26] *)&dsroo + 120B]+0 S16 A64]) ] UNSPEC_MOVU)) test.f90:16 1106 {*sse_movups} (nil)) This did not get an Hard register and so at reload it chooses xmm0 and generates an output reload as follows. (insn 393 0 0 (set (reg:V2DF 284) (reg:V2DF 21 xmm0)) -1 There is possiblity of reload inheritenace and we can avoid input reload for the next RTL insn 33 (insn 33 32 371 2 (set (reg:V2DF 285) (div:V2DF (reg:V2DF 284) (mem/c:V2DF (plus:DI (reg/f:DI 20 frame) (const_int -576 [0xfffffffffffffdc0])) [3 MEM[(real(kind=8)[26] *)&dsroo + 112B]+0 S16 A128]))) test.f90:16 1146 {sse2_divv2df3} (nil)) But It is not happening and input reload gets generated again before this RTL as follows: (insn 395 0 0 (set (reg:V2DF 21 xmm0) (reg:V2DF 284) Also another outpout reload gets emitted after the insn 33 for its output reload as (insn 394 0 0 (set (reg:V2DF 285) (reg:V2DF 21 xmm0)) -1. But I am not sure If this computation prevented input reload inheritence in the insn 33 . I suspect emit_reload_insns is not preserving output reloads in insn32 for further inheritence insn33. Please povide your opinion.