* Instruction scheduling
@ 2007-02-17 11:45 P. Pavan Kumar
2007-02-20 20:24 ` Ian Lance Taylor
0 siblings, 1 reply; 2+ messages in thread
From: P. Pavan Kumar @ 2007-02-17 11:45 UTC (permalink / raw)
To: gcc-help
Dear sir,
I want to know details of instruction scheduling pass of GCC,
How sched_deps.c file computes dependencies between instructions.
Is there any reference papers to understand instruction scheduling.
I want to know how depencendencies , priorities, cost and reservations are
computing. How stalls are computing?
Please help me
when I use "-fsched-verbose=10" option the dump file contails the following
output.
;; ======================================================
;; -- basic block 0 from 34 to 39 -- after reload
;; ======================================================
;; --------------- forward dependences: ------------
;; --- Region Dependences --- b 0 bb 0
;; insn code bb dep prio cost reservation
;; ---- ---- -- --- ---- ---- -----------
;; 34 29 0 0 6 1 pentium-firstuv : 39 38 35
;; 35 35 0 1 5 1 pentium-firstuv : 39 38 41
43 7
;; 7 35 0 1 3 1 pentium-firstuv : 39 38 44
;; 43 35 0 1 3 1 pentium-firstuv : 39 38 44
;; 44 140 0 2 2 1 pentium-firstuv : 39 42
;; 41 35 0 1 2 1 pentium-firstuv : 39 38 42
;; 42 140 0 2 1 1 pentium-firstuv : 39 28
;; 28 -1 0 1 0 0 nothing : 39
;; 38 32 0 5 0 1 pentium-firstuv : 39
;; 39 364 0 9 0 0 nothing :
;; Ready list after queue_to_ready: 34
;; Ready list after ready_sort: 34
;; Ready list (t = 0): 34
;; 0--> 34 [--sp]=bp :pentium-firstuv
;; dependences resolved: insn 35 into queue with cost=1
;; Ready-->Q: insn 35: queued for 1 cycles.
;; Ready list (t = 0):
;; Second chance
;; Q-->Ready: insn 35: moving to ready without stalls
;; Ready list after queue_to_ready: 35
;; Ready list after ready_sort: 35
;; Ready list (t = 1): 35
;; 1--> 35 bp=sp :pentium-firstuv
;; dependences resolved: insn 41 into queue with cost=2
;; Ready-->Q: insn 41: queued for 2 cycles.
;; dependences resolved: insn 43 into queue with cost=2
;; Ready-->Q: insn 43: queued for 2 cycles.
;; dependences resolved: insn 7 into queue with cost=2
;; Ready-->Q: insn 7: queued for 2 cycles.
;; Ready list (t = 1):
;; Second chance
;; Q-->Ready: insn 7: moving to ready with 1 stalls
;; Q-->Ready: insn 43: moving to ready with 1 stalls
;; Q-->Ready: insn 41: moving to ready with 1 stalls
;; Ready list after queue_to_ready: 41 43 7
;; Ready list after ready_sort: 41 43 7
;; Ready list (t = 3): 41 43 7
;; 3--> 7 ax=[bp+0xc] :pentium-firstuv
;; Ready list (t = 3): 41 43
;; 3--> 43 cx=[bp+0x8] :pentium-firstuv
;; dependences resolved: insn 44 into queue with cost=1
;; Ready-->Q: insn 44: queued for 1 cycles.
;; Ready list (t = 3): 41
;; Q-->Ready: insn 44: moving to ready without stalls
;; Ready list after queue_to_ready: 44 41
;; Ready list after ready_sort: 44 41
;; Ready list (t = 4): 44 41
;; 4--> 41 dx=[bp+0x10] :pentium-firstuv
;; dependences resolved: insn 38 into ready
;; Ready list (t = 4): 38 44
;; 4--> 44 {ax=ax+cx;clobber flags;} :pentium-firstuv
;; dependences resolved: insn 42 into queue with cost=1
;; Ready-->Q: insn 42: queued for 1 cycles.
;; Ready list (t = 4): 38
;; Q-->Ready: insn 42: moving to ready without stalls
;; Ready list after queue_to_ready: 42 38
;; Ready list after ready_sort: 38 42
;; Ready list (t = 5): 38 42
;; 5--> 42 {ax=ax+dx;clobber flags;} :pentium-firstuv
;; dependences resolved: insn 28 into ready
;; Ready list (t = 5): 28 38
;; 5--> 38 {bp=[sp];sp=sp+0x4;} :pentium-firstuv
;; Ready list (t = 5): 28
;; Ready list after queue_to_ready: 28
;; Ready list after ready_sort: 28
;; Ready list (t = 6): 28
;; 6--> 28 use ax :nothing
;; dependences resolved: insn 39 into ready
;; Ready list (t = 6): 39
;; 6--> 39 return :nothing
;; Ready list (t = 6):
;; Second chance
;; Ready list (final):
;; total time = 6
;; new head = 36
;; new tail = 39
Thanks in advance
Pavan,
Home: http://www.cse.iitb.ac.in/~pavankumar
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Instruction scheduling
2007-02-17 11:45 Instruction scheduling P. Pavan Kumar
@ 2007-02-20 20:24 ` Ian Lance Taylor
0 siblings, 0 replies; 2+ messages in thread
From: Ian Lance Taylor @ 2007-02-20 20:24 UTC (permalink / raw)
To: pavankumar; +Cc: gcc-help
"P. Pavan Kumar" <pavankumar@cse.iitb.ac.in> writes:
> I want to know details of instruction scheduling pass of GCC,
> How sched_deps.c file computes dependencies between instructions.
> Is there any reference papers to understand instruction scheduling.
> I want to know how depencendencies , priorities, cost and reservations are
> computing. How stalls are computing?
It's all based on the entries in the CPU.md file. See the
documentation on how scheduler information should be specified. Also
see the parameter max-sched-ready-insns.
If those don't answer your questions, please try to ask a more
specific question. Thanks.
Ian
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-02-20 20:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-17 11:45 Instruction scheduling P. Pavan Kumar
2007-02-20 20:24 ` Ian Lance Taylor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).