Patch: enabling 1st insn scheduling for sh4.
Vladimir Makarov
vmakarov@redhat.com
Wed Mar 3 23:40:00 GMT 2004
DJ Delorie wrote:
>Sorry for the delay. Here's 22.life, from the call to the insn after
>which gets mis-scheduled. In 23.sched the sequence is 1202, 1207,
>1203, 1204.
>
>
>(call_insn:HI 1202 1201 1203 126 ../../../../../../devo/newlib/libc/stdio/vfprintf.c:1257 (parallel [
> (set (reg:SI 0 r0)
> (call (mem:SI (reg/f:SI 553) [0 S4 A32])
> (const_int 8 [0x8])))
> (use (reg:PSI 151 ))
> (clobber (reg:SI 146 pr))
> ]) 170 {call_valuei} (insn_list 1196 (insn_list 1197 (insn_list 1198 (insn_list 1199 (insn_list 1200 (insn_list 1201 (nil)))))))
> (expr_list:REG_DEAD (reg:SI 4 r4 [ data ])
> (expr_list:REG_DEAD (reg:SF 68 fr4 [ value ])
> (expr_list:REG_DEAD (reg:SI 5 r5 [ mode ])
> (expr_list:REG_DEAD (reg:SI 6 r6 [ ndigits ])
> (expr_list:REG_DEAD (reg:SI 7 r7 [ decpt ])
> (expr_list:REG_DEAD (reg:PSI 151 )
> (expr_list:REG_DEAD (reg/f:SI 553)
> (expr_list:REG_UNUSED (reg:SI 146 pr)
> (nil)))))))))
> (expr_list (use (reg:SI 7 r7 [ decpt ]))
> (expr_list (use (reg:SI 6 r6 [ ndigits ]))
> (expr_list (use (reg:SI 5 r5 [ mode ]))
> (expr_list (use (reg:SF 68 fr4 [ value ]))
> (expr_list (use (reg:SI 4 r4 [ data ]))
> (nil)))))))
>
>(insn:HI 1203 1202 1204 126 ../../../../../../devo/newlib/libc/stdio/vfprintf.c:1257 (set (reg/f:SI 15 r15)
> (plus:SI (reg/f:SI 15 r15)
> (const_int 8 [0x8]))) 23 {*addsi3_compact} (nil)
> (nil))
>
>(insn:HI 1204 1203 1206 126 ../../../../../../devo/newlib/libc/stdio/vfprintf.c:1257 (set (reg/v/f:SI 538 [ digits ])
> (reg:SI 0 r0)) 123 {movsi_ie} (insn_list 1202 (nil))
> (expr_list:REG_DEAD (reg:SI 0 r0)
> (nil)))
>
>(note:HI 1206 1204 1207 126 ("../../../../../../devo/newlib/libc/stdio/vfprintf.c") 1269)
>
>(insn:HI 1207 1206 1208 126 ../../../../../../devo/newlib/libc/stdio/vfprintf.c:1269 (set (reg:SI 147 t)
> (eq:SI (reg/v:SI 163 [ ch ])
> (const_int 103 [0x67]))) 1 {cmpeqsi_t} (nil)
> (nil))
>
>
Thanks, DJ. I tought about a solution. I think that insn changing
stack pointer is more preferable than one using it (because in the
second case there is bigger probability that insn which is not really a
part of call sequence will be a part of the schedule group). So the
patch should insert the insn changing the stack pointer into the
schedule group.
I could write the patch and submit it on Friday. In this case somebody
should review it. If you prefer to write the patch yourself, I review
and approve it as soon as I get it. What do you prefer?
Vlad
More information about the Gcc-patches
mailing list