> OK. AFAICS there is nothing glaring in the RTL you posted so you'll have to > put a watchpoint and find out who has set reg_rtx for this particular reload.
reg_rtx gets set due to a call to choose_reload_regs which in turn calls allocate_reload_reg to set reg_rtx. Also, just to confirm if I am on the right track, shouldnt the bit for reg #1 (i.e $c1) be set in live_throughout in the insn chain for insn #91 ( reproduced below for convenience ) ? (call_insn:HI 91 270 92 5 cor_h.c:129 (parallel [ (set (reg:SI 1 $c1) (call (mem:SI (symbol_ref:SI ("DotProductWithoutShift") [flags 0x41] <function_decl 0x401f7d00 DotProductWithoutShift>) [0 S4 A32]) (const_int 0 [0x0]))) (use (const_int 0 [0x0])) (clobber (reg:SI 31 $link)) ]) 42 {*call_value_direct} (expr_list:REG_DEAD (reg:SI 4 $c4) (expr_list:REG_DEAD (reg:SI 3 $c3 [ ivtmp.103 ]) (expr_list:REG_DEAD (reg:SI 2 $c2 [ h ]) (nil)))) (expr_list:REG_DEP_TRUE (use (reg:SI 4 $c4)) (expr_list:REG_DEP_TRUE (use (reg:SI 3 $c3 [ ivtmp.103 ])) (expr_list:REG_DEP_TRUE (use (reg:SI 2 $c2 [ h ])) (expr_list:REG_DEP_TRUE (use (reg:SI 1 $c1 [ ivtmp.101 ])) (nil)))))) TIA, Pranav