This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch: enabling 1st insn scheduling for sh4.


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]