store_motion query

Steven Bosscher stevenb.gcc@gmail.com
Wed May 21 21:42:00 GMT 2008


xf. http://gcc.gnu.org/ml/gcc/2008-05/msg00274.html

> Why is store_motion doing this?
>
> STORE_MOTION  delete insn in BB 2:
>       (insn 8 7 27 2 dj.c:10 (parallel [
>                         (set (mem/s/j:HI (reg/v/f:HI 26 [ s ]) [0 <variable>.buf+0 S2 A8])
>                             (ashift:HI (reg/v:HI 27 [ n ])
>                                 (subreg:QI (reg/v:HI 27 [ n ]) 0)))
>                         (clobber (scratch:HI))
>                     ]) 223 {ashlhi3_i} (expr_list:REG_DEAD (reg/v:HI 27 [ n ])
>                     (nil)))
> STORE MOTION  replaced with insn:
>       (insn 27 8 9 2 dj.c:10 (set (reg:HI 29 [ <variable>.buf ])
> >                     (ashift:HI (reg/v:HI 27 [ n ])
>                         (subreg:QI (reg/v:HI 27 [ n ]) 0))) -1 (expr_list:REG_DEAD (reg/v:HI 27 [ n ])
>                     (nil)))

This insn is generated by gen_move_insn in gcse.c:replace_store_insn().

Maybe that should be emit_move_insn()?

Gr.
Steven



More information about the Gcc mailing list