This is the mail archive of the gcc@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: Store scheduling with DFA scheduler


Hi Vlad,

> There is not enough information to say what is wrong.  It 
> would be better if you send gcc output when 
> -fsched-verbose=10 is used.

Cheers,
Jon


;;   ======================================================
;;   -- basic block 0 from 18 to 32 -- before reload
;;   ======================================================

;;   --------------- forward dependences: ------------

;;   --- Region Dependences --- b 0 bb 0
;;      insn  code    bb   dep  prio  cost   reservation
;;      ----  ----    --   ---  ----  ----   -----------
;;       18    10     0     0     6     2   x,m : 20 19
;;       19    92     0     1     4     1   x   : 20
;;       20    10     0     2     3     3   x,m*2       :
;;       22    10     0     0     6     2   x,m : 24 23
;;       23    92     0     1     4     1   x   : 24
;;       24    10     0     2     3     3   x,m*2       :
;;       26    10     0     0     6     2   x,m : 28 27
;;       27    92     0     1     4     1   x   : 28
;;       28    10     0     2     3     3   x,m*2       :
;;       30    10     0     0     6     2   x,m : 32 31
;;       31    92     0     1     4     1   x   : 32
;;       32    10     0     2     3     3   x,m*2       :

;;              Ready list after queue_to_ready:    30  26  22  18
;;              Ready list after ready_sort:    30  26  22  18
;;      Ready list (t =  0):    30  26  22  18
;;        0--> 18   r41=[`x']                          :x,m
;;              dependences resolved: insn 19 into queue with cost=2
;;              Ready-->Q: insn 19: queued for 2 cycles.
;;      Ready list (t =  0):    30  26  22
;;              Ready list after queue_to_ready:    30  26  22
;;              Ready list after ready_sort:    30  26  22
;;      Ready list (t =  1):    30  26  22
;;        1--> 22   r43=[`y']                          :x,m
;;              dependences resolved: insn 23 into queue with cost=2
;;              Ready-->Q: insn 23: queued for 2 cycles.
;;      Ready list (t =  1):    30  26
;;              Q-->Ready: insn 19: moving to ready without stalls
;;              Ready list after queue_to_ready:    19  30  26
;;              Ready list after ready_sort:    19  30  26
;;      Ready list (t =  2):    19  30  26
;;        2--> 26   r45=[`z']                          :x,m
;;              dependences resolved: insn 27 into queue with cost=2
;;              Ready-->Q: insn 27: queued for 2 cycles.
;;      Ready list (t =  2):    19  30
;;              Q-->Ready: insn 23: moving to ready without stalls
;;              Ready list after queue_to_ready:    23  19  30
;;              Ready list after ready_sort:    23  19  30
;;      Ready list (t =  3):    23  19  30
;;        3--> 30   r47=[`w']                          :x,m
;;              dependences resolved: insn 31 into queue with cost=2
;;              Ready-->Q: insn 31: queued for 2 cycles.
;;      Ready list (t =  3):    23  19
;;              Q-->Ready: insn 27: moving to ready without stalls
;;              Ready list after queue_to_ready:    27  23  19
;;              Ready list after ready_sort:    27  23  19
;;      Ready list (t =  4):    27  23  19
;;        4--> 19   {r41=r41+0x1;clobber System, CC.A;}:x
;;              dependences resolved: insn 20 into queue with cost=1
;;              Ready-->Q: insn 20: queued for 1 cycles.
;;      Ready list (t =  4):    27  23
;;              Q-->Ready: insn 20: moving to ready without stalls
;;              Q-->Ready: insn 31: moving to ready without stalls
;;              Ready list after queue_to_ready:    31  20  27  23
;;              Ready list after ready_sort:    20  31  27  23
;;      Ready list (t =  5):    20  31  27  23
;;        5--> 23   {r43=r43+0x1;clobber System, CC.A;}:x
;;              dependences resolved: insn 24 into queue with cost=1
;;              Ready-->Q: insn 24: queued for 1 cycles.
;;      Ready list (t =  5):    20  31  27
;;              Q-->Ready: insn 24: moving to ready without stalls
;;              Ready list after queue_to_ready:    24  20  31  27
;;              Ready list after ready_sort:    24  20  31  27
;;      Ready list (t =  6):    24  20  31  27
;;        6--> 27   {r45=r45+0x1;clobber System, CC.A;}:x
;;              dependences resolved: insn 28 into queue with cost=1
;;              Ready-->Q: insn 28: queued for 1 cycles.
;;      Ready list (t =  6):    24  20  31
;;              Q-->Ready: insn 28: moving to ready without stalls
;;              Ready list after queue_to_ready:    28  24  20  31
;;              Ready list after ready_sort:    28  24  20  31
;;      Ready list (t =  7):    28  24  20  31
;;        7--> 31   {r47=r47+0x1;clobber System, CC.A;}:x
;;              dependences resolved: insn 32 into queue with cost=1
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t =  7):    28  24  20
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Ready list after queue_to_ready:    32  28  24  20
;;              Ready list after ready_sort:    32  28  24  20
;;      Ready list (t =  8):    32  28  24  20
;;        8--> 20   [`x']=r41                          :x,m*2
;;      Ready list (t =  8):    32  28  24
;;              Ready list after queue_to_ready:    32  28  24
;;              Ready list after ready_sort:    32  28  24
;;      Ready list (t =  9):    32  28  24
;;              Ready-->Q: insn 24: queued for 1 cycles.
;;      Ready list (t =  9):    32  28
;;              Ready-->Q: insn 28: queued for 1 cycles.
;;      Ready list (t =  9):    32
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t =  9):
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Q-->Ready: insn 28: moving to ready without stalls
;;              Q-->Ready: insn 24: moving to ready without stalls
;;              Ready list after queue_to_ready:    24  28  32
;;              Ready list after ready_sort:    32  28  24
;;      Ready list (t = 10):    32  28  24
;;       10--> 24   [`y']=r43                          :x,m*2
;;      Ready list (t = 10):    32  28
;;              Ready list after queue_to_ready:    32  28
;;              Ready list after ready_sort:    32  28
;;      Ready list (t = 11):    32  28
;;              Ready-->Q: insn 28: queued for 1 cycles.
;;      Ready list (t = 11):    32
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t = 11):
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Q-->Ready: insn 28: moving to ready without stalls
;;              Ready list after queue_to_ready:    28  32
;;              Ready list after ready_sort:    32  28
;;      Ready list (t = 12):    32  28
;;       12--> 28   [`z']=r45                          :x,m*2
;;      Ready list (t = 12):    32
;;              Ready list after queue_to_ready:    32
;;              Ready list after ready_sort:    32
;;      Ready list (t = 13):    32
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t = 13):
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Ready list after queue_to_ready:    32
;;              Ready list after ready_sort:    32
;;      Ready list (t = 14):    32
;;       14--> 32   [`w']=r47                          :x,m*2
;;      Ready list (t = 14):
;;      Ready list (final):
;;   total time = 14
;;   new head = 18
;;   new tail = 32


;; Procedure interblock/speculative motions == 0/0


;;   ======================================================
;;   -- basic block 0 from 18 to 46 -- after reload
;;   ======================================================

;;   --------------- forward dependences: ------------

;;   --- Region Dependences --- b 0 bb 0
;;      insn  code    bb   dep  prio  cost   reservation
;;      ----  ----    --   ---  ----  ----   -----------
;;       18    10     0     0     4     2   x,m : 46 20 19
;;       22    10     0     0     4     2   x,m : 46 24 23
;;       26    10     0     0     4     2   x,m : 46 28 27
;;       30    10     0     0     4     2   x,m : 46 32 31
;;       19    92     0     1     2     1   x   : 46 20
;;       23    92     0     1     2     1   x   : 46 24
;;       27    92     0     1     2     1   x   : 46 28
;;       31    92     0     1     2     1   x   : 46 32
;;       20    10     0     2     1     3   x,m*2       : 46
;;       24    10     0     2     1     3   x,m*2       : 46
;;       28    10     0     2     1     3   x,m*2       : 46
;;       32    10     0     2     1     3   x,m*2       : 46
;;       46    85     0    12     1     1   x   :

;;              Ready list after queue_to_ready:    30  26  22  18
;;              Ready list after ready_sort:    30  26  22  18
;;      Ready list (t =  0):    30  26  22  18
;;        0--> 18   r4=[`x']                           :x,m
;;              dependences resolved: insn 19 into queue with cost=2
;;              Ready-->Q: insn 19: queued for 2 cycles.
;;      Ready list (t =  0):    30  26  22
;;              Ready list after queue_to_ready:    30  26  22
;;              Ready list after ready_sort:    30  26  22
;;      Ready list (t =  1):    30  26  22
;;        1--> 22   r5=[`y']                           :x,m
;;              dependences resolved: insn 23 into queue with cost=2
;;              Ready-->Q: insn 23: queued for 2 cycles.
;;      Ready list (t =  1):    30  26
;;              Q-->Ready: insn 19: moving to ready without stalls
;;              Ready list after queue_to_ready:    19  30  26
;;              Ready list after ready_sort:    19  30  26
;;      Ready list (t =  2):    19  30  26
;;        2--> 26   r6=[`z']                           :x,m
;;              dependences resolved: insn 27 into queue with cost=2
;;              Ready-->Q: insn 27: queued for 2 cycles.
;;      Ready list (t =  2):    19  30
;;              Q-->Ready: insn 23: moving to ready without stalls
;;              Ready list after queue_to_ready:    23  19  30
;;              Ready list after ready_sort:    23  19  30
;;      Ready list (t =  3):    23  19  30
;;        3--> 30   r7=[`w']                           :x,m
;;              dependences resolved: insn 31 into queue with cost=2
;;              Ready-->Q: insn 31: queued for 2 cycles.
;;      Ready list (t =  3):    23  19
;;              Q-->Ready: insn 27: moving to ready without stalls
;;              Ready list after queue_to_ready:    27  23  19
;;              Ready list after ready_sort:    27  23  19
;;      Ready list (t =  4):    27  23  19
;;        4--> 19   {r4=r4+0x1;clobber System, CC.A;}  :x
;;              dependences resolved: insn 20 into queue with cost=1
;;              Ready-->Q: insn 20: queued for 1 cycles.
;;      Ready list (t =  4):    27  23
;;              Q-->Ready: insn 20: moving to ready without stalls
;;              Q-->Ready: insn 31: moving to ready without stalls
;;              Ready list after queue_to_ready:    31  20  27  23
;;              Ready list after ready_sort:    20  31  27  23
;;      Ready list (t =  5):    20  31  27  23
;;        5--> 23   {r5=r5+0x1;clobber System, CC.A;}  :x
;;              dependences resolved: insn 24 into queue with cost=1
;;              Ready-->Q: insn 24: queued for 1 cycles.
;;      Ready list (t =  5):    20  31  27
;;              Q-->Ready: insn 24: moving to ready without stalls
;;              Ready list after queue_to_ready:    24  20  31  27
;;              Ready list after ready_sort:    24  20  31  27
;;      Ready list (t =  6):    24  20  31  27
;;        6--> 27   {r6=r6+0x1;clobber System, CC.A;}  :x
;;              dependences resolved: insn 28 into queue with cost=1
;;              Ready-->Q: insn 28: queued for 1 cycles.
;;      Ready list (t =  6):    24  20  31
;;              Q-->Ready: insn 28: moving to ready without stalls
;;              Ready list after queue_to_ready:    28  24  20  31
;;              Ready list after ready_sort:    28  24  20  31
;;      Ready list (t =  7):    28  24  20  31
;;        7--> 31   {r7=r7+0x1;clobber System, CC.A;}  :x
;;              dependences resolved: insn 32 into queue with cost=1
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t =  7):    28  24  20
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Ready list after queue_to_ready:    32  28  24  20
;;              Ready list after ready_sort:    32  28  24  20
;;      Ready list (t =  8):    32  28  24  20
;;        8--> 20   [`x']=r4                           :x,m*2
;;      Ready list (t =  8):    32  28  24
;;              Ready list after queue_to_ready:    32  28  24
;;              Ready list after ready_sort:    32  28  24
;;      Ready list (t =  9):    32  28  24
;;              Ready-->Q: insn 24: queued for 1 cycles.
;;      Ready list (t =  9):    32  28
;;              Ready-->Q: insn 28: queued for 1 cycles.
;;      Ready list (t =  9):    32
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t =  9):
;;              Second chance
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Q-->Ready: insn 28: moving to ready without stalls
;;              Q-->Ready: insn 24: moving to ready without stalls
;;              Ready list after queue_to_ready:    24  28  32
;;              Ready list after ready_sort:    32  28  24
;;      Ready list (t = 10):    32  28  24
;;       10--> 24   [`y']=r5                           :x,m*2
;;      Ready list (t = 10):    32  28
;;              Ready list after queue_to_ready:    32  28
;;              Ready list after ready_sort:    32  28
;;      Ready list (t = 11):    32  28
;;              Ready-->Q: insn 28: queued for 1 cycles.
;;      Ready list (t = 11):    32
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t = 11):
;;              Second chance
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Q-->Ready: insn 28: moving to ready without stalls
;;              Ready list after queue_to_ready:    28  32
;;              Ready list after ready_sort:    32  28
;;      Ready list (t = 12):    32  28
;;       12--> 28   [`z']=r6                           :x,m*2
;;      Ready list (t = 12):    32
;;              Ready list after queue_to_ready:    32
;;              Ready list after ready_sort:    32
;;      Ready list (t = 13):    32
;;              Ready-->Q: insn 32: queued for 1 cycles.
;;      Ready list (t = 13):
;;              Second chance
;;              Q-->Ready: insn 32: moving to ready without stalls
;;              Ready list after queue_to_ready:    32
;;              Ready list after ready_sort:    32
;;      Ready list (t = 14):    32
;;       14--> 32   [`w']=r7                           :x,m*2
;;              dependences resolved: insn 46 into ready
;;      Ready list (t = 14):    46
;;              Ready list after queue_to_ready:    46
;;              Ready list after ready_sort:    46
;;      Ready list (t = 15):    46
;;       15--> 46   {use ra;return;}                   :x
;;      Ready list (t = 15):
;;      Ready list (final):
;;   total time = 15
;;   new head = 33
;;   new tail = 46


 


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