* RE: Solve transitive closure issue in modulo scheduling
2009-02-01 23:18 ` Ayal Zaks
@ 2009-02-05 10:45 ` Bingfeng Mei
2009-02-17 12:03 ` Ayal Zaks
0 siblings, 1 reply; 10+ messages in thread
From: Bingfeng Mei @ 2009-02-05 10:45 UTC (permalink / raw)
To: Ayal Zaks; +Cc: Adrian Ashley, gcc
[-- Attachment #1: Type: text/plain, Size: 4154 bytes --]
Ayal,
OOPs, your mail skipped my inbox and I missed it for several days.
Using testsuite/gcc.dg/sms-6.c as an example and compiling it for PowerPC, node 18 (see attachment) is in a SCC and cannot be scheduled until spliting twice. The MII = 20 and the schedule can only be found at II = 24. On our 2-issue VLIW, the MII=10 and the valid schedule can only be found at II = 14. It is not great since we want to maximize performance.
I had experience (in development of another compiler) on this issue by constructing the MinDist matrix and using it to calculate schedule window for each instruction. However, speed was not a real concern then. Do you know better algorithm (better than O(N^3))? Or do you think it is not so crtical here? After all, not many loops are candidates for software pipelining. Thanks.
Cheers,
Bingfeng
> -----Original Message-----
> From: gcc-owner@gcc.gnu.org [mailto:gcc-owner@gcc.gnu.org] On
> Behalf Of Ayal Zaks
> Sent: 01 February 2009 23:18
> To: Bingfeng Mei
> Cc: Adrian Ashley; gcc@gcc.gnu.org
> Subject: Re: Solve transitive closure issue in modulo scheduling
>
> "Bingfeng Mei" <bmei@broadcom.com> wrote on 30/01/2009 14:44:01:
>
> > Hello,
> > I try to make modulo scheduling work more efficiently for our VLIW
> target. I
> > found one serious issue that prevents current SMS algorithm from
> achieving
> > high IPC is so-called "transitive closure" problem, where scheduling
> window is
> > only calculated using direct predecessors and successors.
> Because SMS is
> not
> > an iterative algorithm, this may cause failures in finding a valid
> schedule.
>
> Agreed.
>
> > Without splitting rows, some simple loops just cannot be
> scheduled not
> matter
> > how big the II is. With splitting rows, schedule can be
> found, but only
> at
> > bigger II.
>
> It may happen that even splitting rows will not help, e.g. when we
> repeatedly end up with a node having negative sched window.
>
> > GCC wiki (http://gcc.gnu.org/wiki/SwingModuloScheduling) lists this
> > as a TODO. Is there any work going on about this issue
>
> No, not to my knowledge. We had some testcase where this
> showed up, hence
> its appearance in the TODO, but afaicr some change caused it
> to disappear.
>
> > (the last wiki update
> > was one year ago)? If no one is working on it, I plan to do
> it. My idea
> is to
> > use the MinDist algorithm described in B. Rau's classic
> paper "iterative
> > modulo
> scheduling"
> (http://www.hpl.hp.com/techreports/94/HPL-94-115.html). The
> > same algorithm can also be used to compute better RecMII.
> The biggest
> concern
> > is complexity of computing MinDist matrix, which is O(N^3).
> N is number
> of
> > nodes in the loop. I remember somewhere GCC coding guide says "never
> write
> > quadratic algorithm" :-) Is this an absolute requirement?
> If yes, I will
> keep
> > it as our target-specific code (we are less concerned about
> compilation
> time).
> > Otherwise, I will try to make it more generic to see if it
> can make into
> > mainline in 4.5. Any comments?
> >
>
> The problem appears only when the DDG is cyclic, and for
> every cycle in the
> DDG, the problem may arise when trying to schedule the last
> node of the
> cycle, which has both predecessors and successors already
> scheduled. So you
> might try to connect only each such predecessor to every such
> successor
> with a transitive arc, to ensure that this last node will
> have a non-empty
> scheduling window. But this might not suffice; you may
> eventually need to
> wire (nearly) every pair of nodes in the strongly connected
> component. If
> this happens, you'd be better off with a dense graph representation
> (incidence matrix) than the current sparse one (adjaceny lists).
>
> An example would help see things more clearly. If you have a
> (small :) DDG
> demonstrating the need for transitive arcs, I'd be happy to
> have a look and
> advise what should be done.
>
> Ayal.
>
> > Cheers,
> > Bingfeng Mei
> >
> > Broadcom UK
> >
> >
>
>
>
[-- Attachment #2: sms-6.c.169r.sms --]
[-- Type: application/octet-stream, Size: 120770 bytes --]
;; Function foo (foo)
try_optimize_cfg iteration 1
;; 2 loops found
;;
;; Loop 0
;; header 0, latch 1
;; depth 0, outer -1
;; nodes: 0 1 2 3 4
;;
;; Loop 1
;; header 3, latch 3
;; depth 1, outer 0
;; nodes: 3
;; 2 succs { 3 }
;; 3 succs { 3 4 }
;; 4 succs { 1 }
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
df_worklist_dataflow_doublequeue:n_basic_blocks 5 n_edges 5 count 8 ( 1.6)
SMS analysis phase
===================
SMS loop num: 1, file: sms-6.c, line: 9
...OK
SMS transformation phase
=========================
SMS loop num: 1, file: sms-6.c, line: 9
Node num: 0
(insn:HI 48 47 49 3 sms-6.c:11 (set (reg:SI 161)
(mem:SI (reg/f:SI 156 [ ivtmp.42 ]) [4 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [48 -(A,0,0)-> 65] [48 -(T,2,0)-> 50]
IN ARCS: [50 -(A,0,1)-> 48] [65 -(T,1,1)-> 48]
Node num: 1
(insn:HI 49 48 50 3 sms-6.c:11 (set (reg:SI 162)
(mem:SI (reg/f:SI 157 [ ivtmp.40 ]) [5 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [49 -(A,0,0)-> 64] [49 -(T,2,0)-> 50]
IN ARCS: [50 -(A,0,1)-> 49] [64 -(T,1,1)-> 49]
Node num: 2
(insn:HI 50 49 51 3 sms-6.c:11 (set (reg:SI 163)
(mult:SI (reg:SI 161)
(reg:SI 162))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 162)
(expr_list:REG_DEAD (reg:SI 161)
(nil))))
OUT ARCS: [50 -(A,0,1)-> 49] [50 -(A,0,1)-> 48] [50 -(T,4,0)-> 51]
IN ARCS: [51 -(A,0,1)-> 50] [48 -(T,2,0)-> 50] [49 -(T,2,0)-> 50]
Node num: 3
(insn:HI 51 50 52 3 sms-6.c:11 (set (mem:SI (reg/f:SI 155 [ ivtmp.43 ]) [3 S4 A32])
(reg:SI 163)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 163)
(nil)))
OUT ARCS: [51 -(A,0,1)-> 50] [51 -(O,0,0)-> 85] [51 -(A,0,0)-> 66]
IN ARCS: [66 -(T,1,1)-> 51] [63 -(O,0,1)-> 51] [59 -(O,0,1)-> 51] [55 -(O,0,1)-> 51] [50 -(T,4,0)-> 51]
Node num: 4
(insn:HI 52 51 53 3 sms-6.c:12 (set (reg:SI 164)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 4 [0x4])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [52 -(A,0,0)-> 65] [52 -(T,2,0)-> 54]
IN ARCS: [54 -(A,0,1)-> 52] [65 -(T,1,1)-> 52]
Node num: 5
(insn:HI 53 52 54 3 sms-6.c:12 (set (reg:SI 165)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 4 [0x4])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [53 -(A,0,0)-> 64] [53 -(T,2,0)-> 54]
IN ARCS: [54 -(A,0,1)-> 53] [64 -(T,1,1)-> 53]
Node num: 6
(insn:HI 54 53 55 3 sms-6.c:12 (set (reg:SI 166)
(mult:SI (reg:SI 164)
(reg:SI 165))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 165)
(expr_list:REG_DEAD (reg:SI 164)
(nil))))
OUT ARCS: [54 -(A,0,1)-> 53] [54 -(A,0,1)-> 52] [54 -(T,4,0)-> 55]
IN ARCS: [55 -(A,0,1)-> 54] [52 -(T,2,0)-> 54] [53 -(T,2,0)-> 54]
Node num: 7
(insn:HI 55 54 56 3 sms-6.c:12 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 4 [0x4])) [3 S4 A32])
(reg:SI 166)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 166)
(nil)))
OUT ARCS: [55 -(A,0,1)-> 54] [55 -(O,0,0)-> 85] [55 -(A,0,0)-> 66] [55 -(O,0,1)-> 51]
IN ARCS: [66 -(T,1,1)-> 55] [63 -(O,0,1)-> 55] [59 -(O,0,1)-> 55] [54 -(T,4,0)-> 55]
Node num: 8
(insn:HI 56 55 57 3 sms-6.c:13 (set (reg:SI 167)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 8 [0x8])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [56 -(A,0,0)-> 65] [56 -(T,2,0)-> 58]
IN ARCS: [58 -(A,0,1)-> 56] [65 -(T,1,1)-> 56]
Node num: 9
(insn:HI 57 56 58 3 sms-6.c:13 (set (reg:SI 168)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 8 [0x8])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [57 -(A,0,0)-> 64] [57 -(T,2,0)-> 58]
IN ARCS: [58 -(A,0,1)-> 57] [64 -(T,1,1)-> 57]
Node num: 10
(insn:HI 58 57 59 3 sms-6.c:13 (set (reg:SI 169)
(mult:SI (reg:SI 167)
(reg:SI 168))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 168)
(expr_list:REG_DEAD (reg:SI 167)
(nil))))
OUT ARCS: [58 -(A,0,1)-> 57] [58 -(A,0,1)-> 56] [58 -(T,4,0)-> 59]
IN ARCS: [59 -(A,0,1)-> 58] [56 -(T,2,0)-> 58] [57 -(T,2,0)-> 58]
Node num: 11
(insn:HI 59 58 60 3 sms-6.c:13 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 8 [0x8])) [3 S4 A32])
(reg:SI 169)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 169)
(nil)))
OUT ARCS: [59 -(A,0,1)-> 58] [59 -(O,0,0)-> 85] [59 -(A,0,0)-> 66] [59 -(O,0,1)-> 55] [59 -(O,0,1)-> 51]
IN ARCS: [66 -(T,1,1)-> 59] [63 -(O,0,1)-> 59] [58 -(T,4,0)-> 59]
Node num: 12
(insn:HI 60 59 61 3 sms-6.c:14 (set (reg:SI 170)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 12 [0xc])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [60 -(A,0,0)-> 65] [60 -(T,2,0)-> 62]
IN ARCS: [62 -(A,0,1)-> 60] [65 -(T,1,1)-> 60]
Node num: 13
(insn:HI 61 60 62 3 sms-6.c:14 (set (reg:SI 171)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 12 [0xc])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [61 -(A,0,0)-> 64] [61 -(T,2,0)-> 62]
IN ARCS: [62 -(A,0,1)-> 61] [64 -(T,1,1)-> 61]
Node num: 14
(insn:HI 62 61 63 3 sms-6.c:14 (set (reg:SI 172)
(mult:SI (reg:SI 170)
(reg:SI 171))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 171)
(expr_list:REG_DEAD (reg:SI 170)
(nil))))
OUT ARCS: [62 -(A,0,1)-> 61] [62 -(A,0,1)-> 60] [62 -(T,4,0)-> 63]
IN ARCS: [63 -(A,0,1)-> 62] [60 -(T,2,0)-> 62] [61 -(T,2,0)-> 62]
Node num: 15
(insn:HI 63 62 64 3 sms-6.c:14 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 12 [0xc])) [3 S4 A32])
(reg:SI 172)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 172)
(nil)))
OUT ARCS: [63 -(A,0,1)-> 62] [63 -(O,0,0)-> 85] [63 -(A,0,0)-> 66] [63 -(O,0,1)-> 59] [63 -(O,0,1)-> 55] [63 -(O,0,1)-> 51]
IN ARCS: [66 -(T,1,1)-> 63] [62 -(T,4,0)-> 63]
Node num: 16
(insn:HI 64 63 65 3 sms-6.c:14 (set (reg/f:SI 157 [ ivtmp.40 ])
(plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
OUT ARCS: [64 -(T,1,1)-> 49] [64 -(T,1,1)-> 53] [64 -(T,1,1)-> 57] [64 -(T,1,1)-> 61] [64 -(T,1,1)-> 64]
IN ARCS: [64 -(T,1,1)-> 64] [61 -(A,0,0)-> 64] [57 -(A,0,0)-> 64] [53 -(A,0,0)-> 64] [49 -(A,0,0)-> 64]
Node num: 17
(insn:HI 65 64 66 3 sms-6.c:14 (set (reg/f:SI 156 [ ivtmp.42 ])
(plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
OUT ARCS: [65 -(T,1,1)-> 48] [65 -(T,1,1)-> 52] [65 -(T,1,1)-> 56] [65 -(T,1,1)-> 60] [65 -(T,1,1)-> 65]
IN ARCS: [65 -(T,1,1)-> 65] [60 -(A,0,0)-> 65] [56 -(A,0,0)-> 65] [52 -(A,0,0)-> 65] [48 -(A,0,0)-> 65]
Node num: 18
(insn:HI 66 65 85 3 sms-6.c:14 (set (reg/f:SI 155 [ ivtmp.43 ])
(plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
OUT ARCS: [66 -(T,1,1)-> 51] [66 -(T,1,1)-> 55] [66 -(T,1,1)-> 59] [66 -(T,1,1)-> 63] [66 -(T,1,1)-> 66]
IN ARCS: [66 -(T,1,1)-> 66] [63 -(A,0,0)-> 66] [59 -(A,0,0)-> 66] [55 -(A,0,0)-> 66] [51 -(A,0,0)-> 66]
Node num: 19
(jump_insn:HI 85 66 77 3 sms-6.c:9 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 174)
(const_int 1 [0x1]))
(label_ref:SI 67)
(pc)))
(set (reg:SI 174)
(plus:SI (reg:SI 174)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 588 {*ctrsi_internal1} (expr_list:REG_BR_PROB (const_int 9600 [0x2580])
(nil)))
OUT ARCS: [85 -(T,1,1)-> 85] [85 -(T,1,1)-> 85]
IN ARCS: [85 -(T,1,1)-> 85] [85 -(T,1,1)-> 85] [63 -(O,0,0)-> 85] [59 -(O,0,0)-> 85] [55 -(O,0,0)-> 85] [51 -(O,0,0)-> 85]
sms-6.c 9 (file, line)
SMS single-bb-loop
SMS doloop
SMS built-ddg 20
SMS num-loads 8
SMS num-stores 4
SMS const-doloop 25
Order params
node 0, ASAP: 0, ALAP: 0, HEIGHT: 6
node 1, ASAP: 0, ALAP: 0, HEIGHT: 6
node 2, ASAP: 2, ALAP: 2, HEIGHT: 4
node 3, ASAP: 6, ALAP: 6, HEIGHT: 0
node 4, ASAP: 0, ALAP: 0, HEIGHT: 6
node 5, ASAP: 0, ALAP: 0, HEIGHT: 6
node 6, ASAP: 2, ALAP: 2, HEIGHT: 4
node 7, ASAP: 6, ALAP: 6, HEIGHT: 0
node 8, ASAP: 0, ALAP: 0, HEIGHT: 6
node 9, ASAP: 0, ALAP: 0, HEIGHT: 6
node 10, ASAP: 2, ALAP: 2, HEIGHT: 4
node 11, ASAP: 6, ALAP: 6, HEIGHT: 0
node 12, ASAP: 0, ALAP: 0, HEIGHT: 6
node 13, ASAP: 0, ALAP: 0, HEIGHT: 6
node 14, ASAP: 2, ALAP: 2, HEIGHT: 4
node 15, ASAP: 6, ALAP: 6, HEIGHT: 0
node 16, ASAP: 0, ALAP: 6, HEIGHT: 0
node 17, ASAP: 0, ALAP: 6, HEIGHT: 0
node 18, ASAP: 6, ALAP: 6, HEIGHT: 0
node 19, ASAP: 6, ALAP: 6, HEIGHT: 0
;; Number of SCC nodes - 2
SCC number: 0
insn num 0
(insn:HI 48 47 49 3 sms-6.c:11 (set (reg:SI 161)
(mem:SI (reg/f:SI 156 [ ivtmp.42 ]) [4 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 1
(insn:HI 49 48 50 3 sms-6.c:11 (set (reg:SI 162)
(mem:SI (reg/f:SI 157 [ ivtmp.40 ]) [5 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 2
(insn:HI 50 49 51 3 sms-6.c:11 (set (reg:SI 163)
(mult:SI (reg:SI 161)
(reg:SI 162))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 162)
(expr_list:REG_DEAD (reg:SI 161)
(nil))))
insn num 3
(insn:HI 51 50 52 3 sms-6.c:11 (set (mem:SI (reg/f:SI 155 [ ivtmp.43 ]) [3 S4 A32])
(reg:SI 163)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 163)
(nil)))
insn num 4
(insn:HI 52 51 53 3 sms-6.c:12 (set (reg:SI 164)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 4 [0x4])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 5
(insn:HI 53 52 54 3 sms-6.c:12 (set (reg:SI 165)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 4 [0x4])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 6
(insn:HI 54 53 55 3 sms-6.c:12 (set (reg:SI 166)
(mult:SI (reg:SI 164)
(reg:SI 165))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 165)
(expr_list:REG_DEAD (reg:SI 164)
(nil))))
insn num 7
(insn:HI 55 54 56 3 sms-6.c:12 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 4 [0x4])) [3 S4 A32])
(reg:SI 166)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 166)
(nil)))
insn num 8
(insn:HI 56 55 57 3 sms-6.c:13 (set (reg:SI 167)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 8 [0x8])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 9
(insn:HI 57 56 58 3 sms-6.c:13 (set (reg:SI 168)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 8 [0x8])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 10
(insn:HI 58 57 59 3 sms-6.c:13 (set (reg:SI 169)
(mult:SI (reg:SI 167)
(reg:SI 168))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 168)
(expr_list:REG_DEAD (reg:SI 167)
(nil))))
insn num 11
(insn:HI 59 58 60 3 sms-6.c:13 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 8 [0x8])) [3 S4 A32])
(reg:SI 169)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 169)
(nil)))
insn num 12
(insn:HI 60 59 61 3 sms-6.c:14 (set (reg:SI 170)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 12 [0xc])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 13
(insn:HI 61 60 62 3 sms-6.c:14 (set (reg:SI 171)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 12 [0xc])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
insn num 14
(insn:HI 62 61 63 3 sms-6.c:14 (set (reg:SI 172)
(mult:SI (reg:SI 170)
(reg:SI 171))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 171)
(expr_list:REG_DEAD (reg:SI 170)
(nil))))
insn num 15
(insn:HI 63 62 64 3 sms-6.c:14 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 12 [0xc])) [3 S4 A32])
(reg:SI 172)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 172)
(nil)))
insn num 16
(insn:HI 64 63 65 3 sms-6.c:14 (set (reg/f:SI 157 [ ivtmp.40 ])
(plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
insn num 17
(insn:HI 65 64 66 3 sms-6.c:14 (set (reg/f:SI 156 [ ivtmp.42 ])
(plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
insn num 18
(insn:HI 66 65 85 3 sms-6.c:14 (set (reg/f:SI 155 [ ivtmp.43 ])
(plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
SCC number: 1
insn num 19
(jump_insn:HI 85 66 77 3 sms-6.c:9 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 174)
(const_int 1 [0x1]))
(label_ref:SI 67)
(pc)))
(set (reg:SI 174)
(plus:SI (reg:SI 174)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 588 {*ctrsi_internal1} (expr_list:REG_BR_PROB (const_int 9600 [0x2580])
(nil)))
SMS final nodes order:
3 7 11 15 18 2 6 10 14 0 1 4 5 8 9 12 13 16 17 19
SMS iis 4 20 40 (rec_mii, mii, maxii)
Starting with ii=20
Trying to schedule node 3 INSN = 51 in (6 .. 26) step 1
must_precede:
must_follow:
Scheduled w/o split in 6
Processing edge: [55 -(A,0,1)-> 54]
Scheduling 7 (55) in pss_not_empty, checking s 6 (54): the node is not scheduled
Processing edge: [55 -(O,0,0)-> 85]
Scheduling 7 (55) in pss_not_empty, checking s 19 (85): the node is not scheduled
Processing edge: [55 -(A,0,0)-> 66]
Scheduling 7 (55) in pss_not_empty, checking s 18 (66): the node is not scheduled
Processing edge: [55 -(O,0,1)-> 51]
Scheduling 7 (55) in pss_not_empty, checking s 3 (51): succ st = 6; late_start = 26; latency = 0end = -13
Scheduling 7 (55) in a window (26..6) with step -1
Trying to schedule node 7 INSN = 55 in (26 .. 6) step -1
must_precede:
must_follow: 3
Scheduled w/o split in 25
Processing edge: [59 -(A,0,1)-> 58]
Scheduling 11 (59) in pss_not_empty, checking s 10 (58): the node is not scheduled
Processing edge: [59 -(O,0,0)-> 85]
Scheduling 11 (59) in pss_not_empty, checking s 19 (85): the node is not scheduled
Processing edge: [59 -(A,0,0)-> 66]
Scheduling 11 (59) in pss_not_empty, checking s 18 (66): the node is not scheduled
Processing edge: [59 -(O,0,1)-> 55]
Scheduling 11 (59) in pss_not_empty, checking s 7 (55): succ st = 25; late_start = 45; latency = 0end = 6
Processing edge: [59 -(O,0,1)-> 51]
Scheduling 11 (59) in pss_not_empty, checking s 3 (51): succ st = 6; late_start = 26; latency = 0end = 6
Scheduling 11 (59) in a window (26..6) with step -1
Trying to schedule node 11 INSN = 59 in (26 .. 6) step -1
must_precede:
must_follow: 3
Scheduled w/o split in 24
Processing edge: [63 -(A,0,1)-> 62]
Scheduling 15 (63) in pss_not_empty, checking s 14 (62): the node is not scheduled
Processing edge: [63 -(O,0,0)-> 85]
Scheduling 15 (63) in pss_not_empty, checking s 19 (85): the node is not scheduled
Processing edge: [63 -(A,0,0)-> 66]
Scheduling 15 (63) in pss_not_empty, checking s 18 (66): the node is not scheduled
Processing edge: [63 -(O,0,1)-> 59]
Scheduling 15 (63) in pss_not_empty, checking s 11 (59): succ st = 24; late_start = 44; latency = 0end = 5
Processing edge: [63 -(O,0,1)-> 55]
Scheduling 15 (63) in pss_not_empty, checking s 7 (55): succ st = 25; late_start = 44; latency = 0end = 6
Processing edge: [63 -(O,0,1)-> 51]
Scheduling 15 (63) in pss_not_empty, checking s 3 (51): succ st = 6; late_start = 26; latency = 0end = 6
Scheduling 15 (63) in a window (26..6) with step -1
Trying to schedule node 15 INSN = 63 in (26 .. 6) step -1
must_precede:
must_follow: 3
Scheduled w/o split in 23
Processing edge: [66 -(T,1,1)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 18 (66): the node is not scheduled
Processing edge: [63 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 15 (63): pred st = 23; early_start = 23; latency = 0
Processing edge: [59 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 11 (59): pred st = 24; early_start = 24; latency = 0
Processing edge: [55 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 7 (55): pred st = 25; early_start = 25; latency = 0
Processing edge: [51 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 3 (51): pred st = 6; early_start = 25; latency = 0
Processing edge: [66 -(T,1,1)-> 51]
Scheduling 18 (66) in psp_pss_not_empty, checking s 3 (51): succ st = 6; late_start = 25; latency = 1
Processing edge: [66 -(T,1,1)-> 55]
Scheduling 18 (66) in psp_pss_not_empty, checking s 7 (55): succ st = 25; late_start = 25; latency = 1
Processing edge: [66 -(T,1,1)-> 59]
Scheduling 18 (66) in psp_pss_not_empty, checking s 11 (59): succ st = 24; late_start = 25; latency = 1
Processing edge: [66 -(T,1,1)-> 63]
Scheduling 18 (66) in psp_pss_not_empty, checking s 15 (63): succ st = 23; late_start = 25; latency = 1
Processing edge: [66 -(T,1,1)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking s 18 (66): the node is not scheduled
Trying to schedule node 18 INSN = 66 in (25 .. 24) step -1
must_precede: 7
must_follow:
split_row=19
crr_insn->node=15, crr_insn->cycle=23, min_cycle=6
crr_insn->node=11, crr_insn->cycle=24, min_cycle=6
crr_insn->node=7, crr_insn->cycle=25, min_cycle=6
crr_insn->node=3, crr_insn->cycle=6, min_cycle=6
min_cycle=0, max_cycle=20
num_splits=1
Processing edge: [66 -(T,1,1)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 18 (66): the node is not scheduled
Processing edge: [63 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 15 (63): pred st = 17; early_start = 17; latency = 0
Processing edge: [59 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 11 (59): pred st = 18; early_start = 18; latency = 0
Processing edge: [55 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 7 (55): pred st = 20; early_start = 20; latency = 0
Processing edge: [51 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 3 (51): pred st = 0; early_start = 20; latency = 0
Processing edge: [66 -(T,1,1)-> 51]
Scheduling 18 (66) in psp_pss_not_empty, checking s 3 (51): succ st = 0; late_start = 20; latency = 1
Processing edge: [66 -(T,1,1)-> 55]
Scheduling 18 (66) in psp_pss_not_empty, checking s 7 (55): succ st = 20; late_start = 20; latency = 1
Processing edge: [66 -(T,1,1)-> 59]
Scheduling 18 (66) in psp_pss_not_empty, checking s 11 (59): succ st = 18; late_start = 20; latency = 1
Processing edge: [66 -(T,1,1)-> 63]
Scheduling 18 (66) in psp_pss_not_empty, checking s 15 (63): succ st = 17; late_start = 20; latency = 1
Processing edge: [66 -(T,1,1)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking s 18 (66): the node is not scheduled
Trying to schedule node 18 INSN = 66 in (20 .. 19) step -1
must_precede: 7
must_follow:
split_row=0
crr_insn->node=3, crr_insn->cycle=0, min_cycle=0
crr_insn->node=15, crr_insn->cycle=17, min_cycle=0
crr_insn->node=11, crr_insn->cycle=18, min_cycle=0
crr_insn->node=7, crr_insn->cycle=20, min_cycle=0
min_cycle=1, max_cycle=21
num_splits=2
Processing edge: [66 -(T,1,1)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 18 (66): the node is not scheduled
Processing edge: [63 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 15 (63): pred st = 18; early_start = 18; latency = 0
Processing edge: [59 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 11 (59): pred st = 19; early_start = 19; latency = 0
Processing edge: [55 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 7 (55): pred st = 21; early_start = 21; latency = 0
Processing edge: [51 -(A,0,0)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking p 3 (51): pred st = 1; early_start = 21; latency = 0
Processing edge: [66 -(T,1,1)-> 51]
Scheduling 18 (66) in psp_pss_not_empty, checking s 3 (51): succ st = 1; late_start = 22; latency = 1
Processing edge: [66 -(T,1,1)-> 55]
Scheduling 18 (66) in psp_pss_not_empty, checking s 7 (55): succ st = 21; late_start = 22; latency = 1
Processing edge: [66 -(T,1,1)-> 59]
Scheduling 18 (66) in psp_pss_not_empty, checking s 11 (59): succ st = 19; late_start = 22; latency = 1
Processing edge: [66 -(T,1,1)-> 63]
Scheduling 18 (66) in psp_pss_not_empty, checking s 15 (63): succ st = 18; late_start = 22; latency = 1
Processing edge: [66 -(T,1,1)-> 66]
Scheduling 18 (66) in psp_pss_not_empty, checking s 18 (66): the node is not scheduled
Trying to schedule node 18 INSN = 66 in (22 .. 20) step -1
must_precede: 7
must_follow:
Scheduled w/o split in 22
Processing edge: [51 -(A,0,1)-> 50]
Scheduling 2 (50) in psp_pss_not_empty, checking p 3 (51): pred st = 1; early_start = -21; latency = 0
Processing edge: [48 -(T,2,0)-> 50]
Scheduling 2 (50) in psp_pss_not_empty, checking p 0 (48): the node is not scheduled
Processing edge: [49 -(T,2,0)-> 50]
Scheduling 2 (50) in psp_pss_not_empty, checking p 1 (49): the node is not scheduled
Processing edge: [50 -(A,0,1)-> 49]
Scheduling 2 (50) in psp_pss_not_empty, checking s 1 (49): the node is not scheduled
Processing edge: [50 -(A,0,1)-> 48]
Scheduling 2 (50) in psp_pss_not_empty, checking s 0 (48): the node is not scheduled
Processing edge: [50 -(T,4,0)-> 51]
Scheduling 2 (50) in psp_pss_not_empty, checking s 3 (51): succ st = 1; late_start = -3; latency = 4
Trying to schedule node 2 INSN = 50 in (-3 .. -22) step -1
must_precede: 3
must_follow:
Scheduled w/o split in -5
Processing edge: [55 -(A,0,1)-> 54]
Scheduling 6 (54) in psp_pss_not_empty, checking p 7 (55): pred st = 21; early_start = -1; latency = 0
Processing edge: [52 -(T,2,0)-> 54]
Scheduling 6 (54) in psp_pss_not_empty, checking p 4 (52): the node is not scheduled
Processing edge: [53 -(T,2,0)-> 54]
Scheduling 6 (54) in psp_pss_not_empty, checking p 5 (53): the node is not scheduled
Processing edge: [54 -(A,0,1)-> 53]
Scheduling 6 (54) in psp_pss_not_empty, checking s 5 (53): the node is not scheduled
Processing edge: [54 -(A,0,1)-> 52]
Scheduling 6 (54) in psp_pss_not_empty, checking s 4 (52): the node is not scheduled
Processing edge: [54 -(T,4,0)-> 55]
Scheduling 6 (54) in psp_pss_not_empty, checking s 7 (55): succ st = 21; late_start = 17; latency = 4
Trying to schedule node 6 INSN = 54 in (17 .. -2) step -1
must_precede: 7
must_follow:
Scheduled w/o split in 16
Processing edge: [59 -(A,0,1)-> 58]
Scheduling 10 (58) in psp_pss_not_empty, checking p 11 (59): pred st = 19; early_start = -3; latency = 0
Processing edge: [56 -(T,2,0)-> 58]
Scheduling 10 (58) in psp_pss_not_empty, checking p 8 (56): the node is not scheduled
Processing edge: [57 -(T,2,0)-> 58]
Scheduling 10 (58) in psp_pss_not_empty, checking p 9 (57): the node is not scheduled
Processing edge: [58 -(A,0,1)-> 57]
Scheduling 10 (58) in psp_pss_not_empty, checking s 9 (57): the node is not scheduled
Processing edge: [58 -(A,0,1)-> 56]
Scheduling 10 (58) in psp_pss_not_empty, checking s 8 (56): the node is not scheduled
Processing edge: [58 -(T,4,0)-> 59]
Scheduling 10 (58) in psp_pss_not_empty, checking s 11 (59): succ st = 19; late_start = 15; latency = 4
Trying to schedule node 10 INSN = 58 in (15 .. -4) step -1
must_precede: 11
must_follow:
Scheduled w/o split in 15
Processing edge: [63 -(A,0,1)-> 62]
Scheduling 14 (62) in psp_pss_not_empty, checking p 15 (63): pred st = 18; early_start = -4; latency = 0
Processing edge: [60 -(T,2,0)-> 62]
Scheduling 14 (62) in psp_pss_not_empty, checking p 12 (60): the node is not scheduled
Processing edge: [61 -(T,2,0)-> 62]
Scheduling 14 (62) in psp_pss_not_empty, checking p 13 (61): the node is not scheduled
Processing edge: [62 -(A,0,1)-> 61]
Scheduling 14 (62) in psp_pss_not_empty, checking s 13 (61): the node is not scheduled
Processing edge: [62 -(A,0,1)-> 60]
Scheduling 14 (62) in psp_pss_not_empty, checking s 12 (60): the node is not scheduled
Processing edge: [62 -(T,4,0)-> 63]
Scheduling 14 (62) in psp_pss_not_empty, checking s 15 (63): succ st = 18; late_start = 14; latency = 4
Trying to schedule node 14 INSN = 62 in (14 .. -5) step -1
must_precede: 15
must_follow:
Scheduled w/o split in 14
Processing edge: [50 -(A,0,1)-> 48]
Scheduling 0 (48) in psp_pss_not_empty, checking p 2 (50): pred st = -5; early_start = -27; latency = 0
Processing edge: [65 -(T,1,1)-> 48]
Scheduling 0 (48) in psp_pss_not_empty, checking p 17 (65): the node is not scheduled
Processing edge: [48 -(A,0,0)-> 65]
Scheduling 0 (48) in psp_pss_not_empty, checking s 17 (65): the node is not scheduled
Processing edge: [48 -(T,2,0)-> 50]
Scheduling 0 (48) in psp_pss_not_empty, checking s 2 (50): succ st = -5; late_start = -7; latency = 2
Trying to schedule node 0 INSN = 48 in (-7 .. -28) step -1
must_precede: 2
must_follow:
Scheduled w/o split in -9
Processing edge: [50 -(A,0,1)-> 49]
Scheduling 1 (49) in psp_pss_not_empty, checking p 2 (50): pred st = -5; early_start = -27; latency = 0
Processing edge: [64 -(T,1,1)-> 49]
Scheduling 1 (49) in psp_pss_not_empty, checking p 16 (64): the node is not scheduled
Processing edge: [49 -(A,0,0)-> 64]
Scheduling 1 (49) in psp_pss_not_empty, checking s 16 (64): the node is not scheduled
Processing edge: [49 -(T,2,0)-> 50]
Scheduling 1 (49) in psp_pss_not_empty, checking s 2 (50): succ st = -5; late_start = -7; latency = 2
Trying to schedule node 1 INSN = 49 in (-7 .. -28) step -1
must_precede: 2
must_follow:
Scheduled w/o split in -10
Processing edge: [54 -(A,0,1)-> 52]
Scheduling 4 (52) in psp_pss_not_empty, checking p 6 (54): pred st = 16; early_start = -6; latency = 0
Processing edge: [65 -(T,1,1)-> 52]
Scheduling 4 (52) in psp_pss_not_empty, checking p 17 (65): the node is not scheduled
Processing edge: [52 -(A,0,0)-> 65]
Scheduling 4 (52) in psp_pss_not_empty, checking s 17 (65): the node is not scheduled
Processing edge: [52 -(T,2,0)-> 54]
Scheduling 4 (52) in psp_pss_not_empty, checking s 6 (54): succ st = 16; late_start = 14; latency = 2
Trying to schedule node 4 INSN = 52 in (14 .. -7) step -1
must_precede: 6
must_follow:
Scheduled w/o split in 11
Processing edge: [54 -(A,0,1)-> 53]
Scheduling 5 (53) in psp_pss_not_empty, checking p 6 (54): pred st = 16; early_start = -6; latency = 0
Processing edge: [64 -(T,1,1)-> 53]
Scheduling 5 (53) in psp_pss_not_empty, checking p 16 (64): the node is not scheduled
Processing edge: [53 -(A,0,0)-> 64]
Scheduling 5 (53) in psp_pss_not_empty, checking s 16 (64): the node is not scheduled
Processing edge: [53 -(T,2,0)-> 54]
Scheduling 5 (53) in psp_pss_not_empty, checking s 6 (54): succ st = 16; late_start = 14; latency = 2
Trying to schedule node 5 INSN = 53 in (14 .. -7) step -1
must_precede: 6
must_follow:
Scheduled w/o split in 10
Processing edge: [58 -(A,0,1)-> 56]
Scheduling 8 (56) in psp_pss_not_empty, checking p 10 (58): pred st = 15; early_start = -7; latency = 0
Processing edge: [65 -(T,1,1)-> 56]
Scheduling 8 (56) in psp_pss_not_empty, checking p 17 (65): the node is not scheduled
Processing edge: [56 -(A,0,0)-> 65]
Scheduling 8 (56) in psp_pss_not_empty, checking s 17 (65): the node is not scheduled
Processing edge: [56 -(T,2,0)-> 58]
Scheduling 8 (56) in psp_pss_not_empty, checking s 10 (58): succ st = 15; late_start = 13; latency = 2
Trying to schedule node 8 INSN = 56 in (13 .. -8) step -1
must_precede: 10
must_follow:
Scheduled w/o split in 9
Processing edge: [58 -(A,0,1)-> 57]
Scheduling 9 (57) in psp_pss_not_empty, checking p 10 (58): pred st = 15; early_start = -7; latency = 0
Processing edge: [64 -(T,1,1)-> 57]
Scheduling 9 (57) in psp_pss_not_empty, checking p 16 (64): the node is not scheduled
Processing edge: [57 -(A,0,0)-> 64]
Scheduling 9 (57) in psp_pss_not_empty, checking s 16 (64): the node is not scheduled
Processing edge: [57 -(T,2,0)-> 58]
Scheduling 9 (57) in psp_pss_not_empty, checking s 10 (58): succ st = 15; late_start = 13; latency = 2
Trying to schedule node 9 INSN = 57 in (13 .. -8) step -1
must_precede: 10
must_follow:
Scheduled w/o split in 8
Processing edge: [62 -(A,0,1)-> 60]
Scheduling 12 (60) in psp_pss_not_empty, checking p 14 (62): pred st = 14; early_start = -8; latency = 0
Processing edge: [65 -(T,1,1)-> 60]
Scheduling 12 (60) in psp_pss_not_empty, checking p 17 (65): the node is not scheduled
Processing edge: [60 -(A,0,0)-> 65]
Scheduling 12 (60) in psp_pss_not_empty, checking s 17 (65): the node is not scheduled
Processing edge: [60 -(T,2,0)-> 62]
Scheduling 12 (60) in psp_pss_not_empty, checking s 14 (62): succ st = 14; late_start = 12; latency = 2
Trying to schedule node 12 INSN = 60 in (12 .. -9) step -1
must_precede: 14
must_follow:
Scheduled w/o split in 7
Processing edge: [62 -(A,0,1)-> 61]
Scheduling 13 (61) in psp_pss_not_empty, checking p 14 (62): pred st = 14; early_start = -8; latency = 0
Processing edge: [64 -(T,1,1)-> 61]
Scheduling 13 (61) in psp_pss_not_empty, checking p 16 (64): the node is not scheduled
Processing edge: [61 -(A,0,0)-> 64]
Scheduling 13 (61) in psp_pss_not_empty, checking s 16 (64): the node is not scheduled
Processing edge: [61 -(T,2,0)-> 62]
Scheduling 13 (61) in psp_pss_not_empty, checking s 14 (62): succ st = 14; late_start = 12; latency = 2
Trying to schedule node 13 INSN = 61 in (12 .. -9) step -1
must_precede: 14
must_follow:
Scheduled w/o split in 6
Processing edge: [64 -(T,1,1)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 16 (64): the node is not scheduled
Processing edge: [61 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 13 (61): pred st = 6; early_start = 6; latency = 0
Processing edge: [57 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 9 (57): pred st = 8; early_start = 8; latency = 0
Processing edge: [53 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 5 (53): pred st = 10; early_start = 10; latency = 0
Processing edge: [49 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 1 (49): pred st = -10; early_start = 10; latency = 0
Processing edge: [64 -(T,1,1)-> 49]
Scheduling 16 (64) in psp_pss_not_empty, checking s 1 (49): succ st = -10; late_start = 11; latency = 1
Processing edge: [64 -(T,1,1)-> 53]
Scheduling 16 (64) in psp_pss_not_empty, checking s 5 (53): succ st = 10; late_start = 11; latency = 1
Processing edge: [64 -(T,1,1)-> 57]
Scheduling 16 (64) in psp_pss_not_empty, checking s 9 (57): succ st = 8; late_start = 11; latency = 1
Processing edge: [64 -(T,1,1)-> 61]
Scheduling 16 (64) in psp_pss_not_empty, checking s 13 (61): succ st = 6; late_start = 11; latency = 1
Processing edge: [64 -(T,1,1)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking s 16 (64): the node is not scheduled
Trying to schedule node 16 INSN = 64 in (11 .. 9) step -1
must_precede: 5
must_follow:
split_row=0
crr_insn->node=18, crr_insn->cycle=22, min_cycle=-10
crr_insn->node=3, crr_insn->cycle=1, min_cycle=-10
crr_insn->node=13, crr_insn->cycle=6, min_cycle=-10
crr_insn->node=12, crr_insn->cycle=7, min_cycle=-10
crr_insn->node=9, crr_insn->cycle=8, min_cycle=-10
crr_insn->node=8, crr_insn->cycle=9, min_cycle=-10
crr_insn->node=5, crr_insn->cycle=10, min_cycle=-10
crr_insn->node=4, crr_insn->cycle=11, min_cycle=-10
crr_insn->node=1, crr_insn->cycle=-10, min_cycle=-10
crr_insn->node=0, crr_insn->cycle=-9, min_cycle=-10
crr_insn->node=14, crr_insn->cycle=14, min_cycle=-10
crr_insn->node=10, crr_insn->cycle=15, min_cycle=-10
crr_insn->node=6, crr_insn->cycle=16, min_cycle=-10
crr_insn->node=2, crr_insn->cycle=-5, min_cycle=-10
crr_insn->node=15, crr_insn->cycle=18, min_cycle=-10
crr_insn->node=11, crr_insn->cycle=19, min_cycle=-10
crr_insn->node=7, crr_insn->cycle=21, min_cycle=-10
min_cycle=1, max_cycle=34
num_splits=1
Processing edge: [64 -(T,1,1)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 16 (64): the node is not scheduled
Processing edge: [61 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 13 (61): pred st = 17; early_start = 17; latency = 0
Processing edge: [57 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 9 (57): pred st = 19; early_start = 19; latency = 0
Processing edge: [53 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 5 (53): pred st = 21; early_start = 21; latency = 0
Processing edge: [49 -(A,0,0)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking p 1 (49): pred st = 1; early_start = 21; latency = 0
Processing edge: [64 -(T,1,1)-> 49]
Scheduling 16 (64) in psp_pss_not_empty, checking s 1 (49): succ st = 1; late_start = 23; latency = 1
Processing edge: [64 -(T,1,1)-> 53]
Scheduling 16 (64) in psp_pss_not_empty, checking s 5 (53): succ st = 21; late_start = 23; latency = 1
Processing edge: [64 -(T,1,1)-> 57]
Scheduling 16 (64) in psp_pss_not_empty, checking s 9 (57): succ st = 19; late_start = 23; latency = 1
Processing edge: [64 -(T,1,1)-> 61]
Scheduling 16 (64) in psp_pss_not_empty, checking s 13 (61): succ st = 17; late_start = 23; latency = 1
Processing edge: [64 -(T,1,1)-> 64]
Scheduling 16 (64) in psp_pss_not_empty, checking s 16 (64): the node is not scheduled
Trying to schedule node 16 INSN = 64 in (23 .. 20) step -1
must_precede: 5
must_follow:
Scheduled w/o split in 23
Processing edge: [65 -(T,1,1)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 17 (65): the node is not scheduled
Processing edge: [60 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 12 (60): pred st = 18; early_start = 18; latency = 0
Processing edge: [56 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 8 (56): pred st = 20; early_start = 20; latency = 0
Processing edge: [52 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 4 (52): pred st = 22; early_start = 22; latency = 0
Processing edge: [48 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 0 (48): pred st = 2; early_start = 22; latency = 0
Processing edge: [65 -(T,1,1)-> 48]
Scheduling 17 (65) in psp_pss_not_empty, checking s 0 (48): succ st = 2; late_start = 24; latency = 1
Processing edge: [65 -(T,1,1)-> 52]
Scheduling 17 (65) in psp_pss_not_empty, checking s 4 (52): succ st = 22; late_start = 24; latency = 1
Processing edge: [65 -(T,1,1)-> 56]
Scheduling 17 (65) in psp_pss_not_empty, checking s 8 (56): succ st = 20; late_start = 24; latency = 1
Processing edge: [65 -(T,1,1)-> 60]
Scheduling 17 (65) in psp_pss_not_empty, checking s 12 (60): succ st = 18; late_start = 24; latency = 1
Processing edge: [65 -(T,1,1)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking s 17 (65): the node is not scheduled
Trying to schedule node 17 INSN = 65 in (24 .. 21) step -1
must_precede: 4
must_follow:
split_row=1
crr_insn->node=16, crr_insn->cycle=23, min_cycle=1
crr_insn->node=1, crr_insn->cycle=1, min_cycle=1
crr_insn->node=0, crr_insn->cycle=2, min_cycle=1
crr_insn->node=14, crr_insn->cycle=26, min_cycle=1
crr_insn->node=10, crr_insn->cycle=27, min_cycle=1
crr_insn->node=6, crr_insn->cycle=28, min_cycle=1
crr_insn->node=2, crr_insn->cycle=6, min_cycle=1
crr_insn->node=15, crr_insn->cycle=30, min_cycle=1
crr_insn->node=11, crr_insn->cycle=31, min_cycle=1
crr_insn->node=7, crr_insn->cycle=33, min_cycle=1
crr_insn->node=18, crr_insn->cycle=34, min_cycle=1
crr_insn->node=3, crr_insn->cycle=12, min_cycle=1
crr_insn->node=13, crr_insn->cycle=17, min_cycle=1
crr_insn->node=12, crr_insn->cycle=18, min_cycle=1
crr_insn->node=9, crr_insn->cycle=19, min_cycle=1
crr_insn->node=8, crr_insn->cycle=20, min_cycle=1
crr_insn->node=5, crr_insn->cycle=21, min_cycle=1
crr_insn->node=4, crr_insn->cycle=22, min_cycle=1
min_cycle=0, max_cycle=35
num_splits=1
Processing edge: [65 -(T,1,1)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 17 (65): the node is not scheduled
Processing edge: [60 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 12 (60): pred st = 18; early_start = 18; latency = 0
Processing edge: [56 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 8 (56): pred st = 20; early_start = 20; latency = 0
Processing edge: [52 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 4 (52): pred st = 22; early_start = 22; latency = 0
Processing edge: [48 -(A,0,0)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking p 0 (48): pred st = 2; early_start = 22; latency = 0
Processing edge: [65 -(T,1,1)-> 48]
Scheduling 17 (65) in psp_pss_not_empty, checking s 0 (48): succ st = 2; late_start = 25; latency = 1
Processing edge: [65 -(T,1,1)-> 52]
Scheduling 17 (65) in psp_pss_not_empty, checking s 4 (52): succ st = 22; late_start = 25; latency = 1
Processing edge: [65 -(T,1,1)-> 56]
Scheduling 17 (65) in psp_pss_not_empty, checking s 8 (56): succ st = 20; late_start = 25; latency = 1
Processing edge: [65 -(T,1,1)-> 60]
Scheduling 17 (65) in psp_pss_not_empty, checking s 12 (60): succ st = 18; late_start = 25; latency = 1
Processing edge: [65 -(T,1,1)-> 65]
Scheduling 17 (65) in psp_pss_not_empty, checking s 17 (65): the node is not scheduled
Trying to schedule node 17 INSN = 65 in (25 .. 21) step -1
must_precede: 4
must_follow:
Scheduled w/o split in 25
SMS succeeded 24 2 (with ii, sc)
[ROW 0 ]: 49,
[ROW 1 ]: 65,
[ROW 2 ]: 48,
[ROW 3 ]: 62,
[ROW 4 ]: 58,
[ROW 5 ]: 54,
[ROW 6 ]: 50,
[ROW 7 ]: 63,
[ROW 8 ]: 59,
[ROW 9 ]:
[ROW 10 ]: 55,
[ROW 11 ]: 66,
[ROW 12 ]: 51,
[ROW 13 ]:
[ROW 14 ]:
[ROW 15 ]:
[ROW 16 ]:
[ROW 17 ]: 61,
[ROW 18 ]: 60,
[ROW 19 ]: 57,
[ROW 20 ]: 56,
[ROW 21 ]: 53,
[ROW 22 ]: 52,
[ROW 23 ]: 64, SMS Branch (19) will later be scheduled at cycle -1.
crr_insn->node=1, crr_insn->cycle=0, min_cycle=0
crr_insn->node=17, crr_insn->cycle=25, min_cycle=0
crr_insn->node=0, crr_insn->cycle=2, min_cycle=0
crr_insn->node=14, crr_insn->cycle=27, min_cycle=0
crr_insn->node=10, crr_insn->cycle=28, min_cycle=0
crr_insn->node=6, crr_insn->cycle=29, min_cycle=0
crr_insn->node=2, crr_insn->cycle=6, min_cycle=0
crr_insn->node=15, crr_insn->cycle=31, min_cycle=0
crr_insn->node=11, crr_insn->cycle=32, min_cycle=0
crr_insn->node=7, crr_insn->cycle=34, min_cycle=0
crr_insn->node=18, crr_insn->cycle=35, min_cycle=0
crr_insn->node=3, crr_insn->cycle=12, min_cycle=0
crr_insn->node=13, crr_insn->cycle=17, min_cycle=0
crr_insn->node=12, crr_insn->cycle=18, min_cycle=0
crr_insn->node=9, crr_insn->cycle=19, min_cycle=0
crr_insn->node=8, crr_insn->cycle=20, min_cycle=0
crr_insn->node=5, crr_insn->cycle=21, min_cycle=0
crr_insn->node=4, crr_insn->cycle=22, min_cycle=0
crr_insn->node=16, crr_insn->cycle=23, min_cycle=0
changing bb of uid 89
unscanned insn
verify found no changes in insn with uid = 85.
Edge 3->3 redirected to 5
Node = 0; INSN = 48
asap = 0:
time = 2:
nreg_moves = 0:
Node = 1; INSN = 49
asap = 0:
time = 0:
nreg_moves = 0:
Node = 2; INSN = 50
asap = 2:
time = 6:
nreg_moves = 0:
Node = 3; INSN = 51
asap = 6:
time = 12:
nreg_moves = 0:
Node = 4; INSN = 52
asap = 0:
time = 22:
nreg_moves = 0:
Node = 5; INSN = 53
asap = 0:
time = 21:
nreg_moves = 0:
Node = 6; INSN = 54
asap = 2:
time = 29:
nreg_moves = 0:
Node = 7; INSN = 55
asap = 6:
time = 34:
nreg_moves = 0:
Node = 8; INSN = 56
asap = 0:
time = 20:
nreg_moves = 0:
Node = 9; INSN = 57
asap = 0:
time = 19:
nreg_moves = 0:
Node = 10; INSN = 58
asap = 2:
time = 28:
nreg_moves = 0:
Node = 11; INSN = 59
asap = 6:
time = 32:
nreg_moves = 0:
Node = 12; INSN = 60
asap = 0:
time = 18:
nreg_moves = 0:
Node = 13; INSN = 61
asap = 0:
time = 17:
nreg_moves = 0:
Node = 14; INSN = 62
asap = 2:
time = 27:
nreg_moves = 0:
Node = 15; INSN = 63
asap = 6:
time = 31:
nreg_moves = 0:
Node = 16; INSN = 64
asap = 0:
time = 23:
nreg_moves = 0:
Node = 17; INSN = 65
asap = 0:
time = 25:
nreg_moves = 0:
Node = 18; INSN = 66
asap = 6:
time = 35:
nreg_moves = 0:
Node = 19; INSN = 85
asap = 6:
time = 0:
nreg_moves = 0:
deleting insn with uid = 91.
deleting insn with uid = 93.
deleting insn with uid = 95.
deleting insn with uid = 97.
deleting insn with uid = 99.
deleting insn with uid = 101.
deleting insn with uid = 103.
deleting insn with uid = 105.
deleting insn with uid = 107.
deleting insn with uid = 109.
deleting insn with uid = 111.
changing bb of uid 113
unscanned insn
Fallthru edge 2->6 redirected to 6
scanning new insn with uid = 92.
scanning new insn with uid = 94.
scanning new insn with uid = 96.
scanning new insn with uid = 98.
scanning new insn with uid = 100.
scanning new insn with uid = 102.
scanning new insn with uid = 104.
scanning new insn with uid = 106.
scanning new insn with uid = 108.
scanning new insn with uid = 110.
scanning new insn with uid = 112.
deleting insn with uid = 114.
deleting insn with uid = 116.
deleting insn with uid = 118.
deleting insn with uid = 120.
deleting insn with uid = 122.
deleting insn with uid = 124.
deleting insn with uid = 126.
deleting insn with uid = 128.
changing bb of uid 130
unscanned insn
Fallthru edge 3->7 redirected to 7
scanning new insn with uid = 115.
scanning new insn with uid = 117.
scanning new insn with uid = 119.
scanning new insn with uid = 121.
scanning new insn with uid = 123.
scanning new insn with uid = 125.
scanning new insn with uid = 127.
scanning new insn with uid = 129.
scanning new insn with uid = 132.
scanning new insn with uid = 134.
Reordered sequence:
2 bb 2 [385]
3 bb 6 [385]
4 bb 3 [9615]
5 bb 7 [385]
6 bb 5 [9230]
7 bb 4 [385]
foo
Dataflow summary:
;; invalidated by call 0 [0] 2 [2] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 12 [12] 13 [13] 32 [0] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 41 [9] 42 [10] 43 [11] 44 [12] 45 [13] 64 [mq] 65 [lr] 66 [ctr] 68 [0] 69 [1] 73 [5] 74 [6] 75 [7] 76 [xer] 77 [0] 78 [1] 79 [2] 80 [3] 81 [4] 82 [5] 83 [6] 84 [7] 85 [8] 86 [9] 87 [10] 88 [11] 89 [12] 90 [13] 91 [14] 92 [15] 93 [16] 94 [17] 95 [18] 96 [19] 97 [20] 98 [21] 99 [22] 100 [23] 101 [24] 102 [25] 103 [26] 104 [27] 105 [28] 106 [29] 107 [30] 108 [31] 109 [vrsave]
;; hardware regs used 1 [1] 67 [ap] 113 [sfp]
;; regular block artificial uses 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; eh block artificial uses 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; entry block defs 1 [1] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 31 [31] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 65 [lr] 67 [ap] 113 [sfp]
;; exit block uses 1 [1] 31 [31] 113 [sfp]
;; regs ever live 3[3] 4[4] 5[5]
;; ref usage r1={1d,7u} r3={1d,1u} r4={1d,1u} r5={1d,1u} r6={1d} r7={1d} r8={1d} r9={1d} r10={1d} r11={1d} r31={1d,7u} r33={1d} r34={1d} r35={1d} r36={1d} r37={1d} r38={1d} r39={1d} r40={1d} r65={1d} r67={1d,6u} r113={1d,7u} r155={3d,10u} r156={3d,10u} r157={3d,10u} r161={2d,2u} r162={2d,2u} r163={2d,2u} r164={2d,2u} r165={2d,2u} r166={2d,2u} r167={2d,2u} r168={2d,2u} r169={2d,2u} r170={2d,2u} r171={2d,2u} r172={2d,2u} r174={2d,2u}
;; total ref usage 143{57d,86u,0e} in 45{45 regular + 0 call} insns.
;; Reaching defs:
sparse invalidated
dense invalidated 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19
1[0,1] 3[1,1] 4[2,1] 5[3,1] 6[4,1] 7[5,1] 8[6,1] 9[7,1] 10[8,1] 11[9,1] 31[10,1] 33[11,1] 34[12,1] 35[13,1] 36[14,1] 37[15,1] 38[16,1] 39[17,1] 40[18,1] 65[19,1] 67[20,1] 113[21,1] 155[22,2] 156[24,2] 157[26,2] 161[28,1] 162[29,1] 163[30,1] 164[31,1] 165[32,1] 166[33,1] 167[34,1] 168[35,1] 169[36,1] 170[37,1] 171[38,1] 172[39,1] 174[40,2]
(note:HI 36 0 41 NOTE_INSN_DELETED)
;; Start of basic block ( 0) -> 2
;; bb 2 artificial_defs: { }
;; bb 2 artificial_uses: { u0(1){ d0(bb 0 insn -1) }u1(31){ d10(bb 0 insn -1) }u2(67){ d20(bb 0 insn -1) }u3(113){ d21(bb 0 insn -1) }}
;; lr in 1 [1] 3 [3] 4 [4] 5 [5] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 3 [3] 4 [4] 5 [5] 31 [31] 67 [ap] 113 [sfp]
;; lr def 155 156 157 174
;; live in 1 [1] 3 [3] 4 [4] 5 [5] 31 [31] 67 [ap] 113 [sfp]
;; live gen 155 156 157 174
;; live kill
;; rd in (22)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
;; rd gen (4)
22, 24, 26, 40
;; rd kill (8)
22, 23, 24, 25, 26, 27, 40, 41
;; DU chains for insn luid 0 uid 44
;; reg 155 { u40(bb 4 insn 66) u36(bb 4 insn 63) u30(bb 4 insn 59) u24(bb 4 insn 55) u18(bb 4 insn 51) }
;; DU chains for insn luid 1 uid 45
;; reg 156 { u39(bb 4 insn 65) u32(bb 4 insn 60) u26(bb 4 insn 56) u20(bb 4 insn 52) u14(bb 4 insn 48) }
;; DU chains for insn luid 2 uid 46
;; reg 157 { u38(bb 4 insn 64) u33(bb 4 insn 61) u27(bb 4 insn 57) u21(bb 4 insn 53) u15(bb 4 insn 49) }
;; DU chains for insn luid 3 uid 86
;; reg 174 { u42(bb 4 insn 85) u41(bb 4 insn 85) }
;; Pred edge ENTRY [100.0%] (fallthru)
(note:HI 41 36 37 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(note:HI 37 41 38 2 NOTE_INSN_DELETED)
(note:HI 38 37 39 2 NOTE_INSN_DELETED)
(note:HI 39 38 40 2 NOTE_INSN_DELETED)
(note:HI 40 39 44 2 NOTE_INSN_FUNCTION_BEG)
(insn:HI 44 40 45 2 sms-6.c:6 (set (reg/f:SI 155 [ ivtmp.43 ])
(reg:SI 3 3 [ a ])) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 3 3 [ a ])
(nil)))
(insn:HI 45 44 46 2 sms-6.c:6 (set (reg/f:SI 156 [ ivtmp.42 ])
(reg:SI 5 5 [ c ])) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 5 5 [ c ])
(nil)))
(insn:HI 46 45 86 2 sms-6.c:6 (set (reg/f:SI 157 [ ivtmp.40 ])
(reg:SI 4 4 [ b ])) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 4 4 [ b ])
(nil)))
(insn:HI 86 46 113 2 sms-6.c:6 (set (reg:SI 174)
(const_int 24 [0x18])) 334 {*movsi_internal1} (nil))
;; End of basic block 2 -> ( 3)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 155 156 157 174
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 155 156 157 174
;; rd out (26)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 26, 40
;; UD chains for artificial uses
;; reg 1 { d0(bb 0 insn -1) }
;; reg 31 { d10(bb 0 insn -1) }
;; reg 67 { d20(bb 0 insn -1) }
;; reg 113 { d21(bb 0 insn -1) }
;; UD chains for insn luid 0 uid 44
;; reg 3 { d1(bb 0 insn -1) }
;; UD chains for insn luid 1 uid 45
;; reg 5 { d3(bb 0 insn -1) }
;; UD chains for insn luid 2 uid 46
;; reg 4 { d2(bb 0 insn -1) }
;; Succ edge 3 [100.0%] (fallthru)
;; Start of basic block ( 2) -> 3
;; bb 3 artificial_defs: { }
;; bb 3 artificial_uses: { u-1(1){ }u-1(31){ }u-1(67){ }u-1(113){ }}
;; DU chains for insn luid 0 uid 92
;; reg 162 { }
;; DU chains for insn luid 0 uid 94
;; reg 161 { }
;; DU chains for insn luid 0 uid 96
;; reg 163 { }
;; DU chains for insn luid 0 uid 100
;; reg 171 { }
;; DU chains for insn luid 0 uid 102
;; reg 170 { }
;; DU chains for insn luid 0 uid 104
;; reg 168 { }
;; DU chains for insn luid 0 uid 106
;; reg 167 { }
;; DU chains for insn luid 0 uid 108
;; reg 165 { }
;; DU chains for insn luid 0 uid 110
;; reg 164 { }
;; DU chains for insn luid 0 uid 112
;; reg 157 { }
;; Pred edge 2 [100.0%] (fallthru)
(note 113 86 92 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
(insn 92 113 94 3 sms-6.c:11 (set (reg:SI 162)
(mem:SI (reg/f:SI 157 [ ivtmp.40 ]) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 94 92 96 3 sms-6.c:11 (set (reg:SI 161)
(mem:SI (reg/f:SI 156 [ ivtmp.42 ]) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 96 94 98 3 sms-6.c:11 (set (reg:SI 163)
(mult:SI (reg:SI 161)
(reg:SI 162))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 161)
(expr_list:REG_DEAD (reg:SI 162)
(nil))))
(insn 98 96 100 3 sms-6.c:11 (set (mem:SI (reg/f:SI 155 [ ivtmp.43 ]) [3 S4 A32])
(reg:SI 163)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 163)
(nil)))
(insn 100 98 102 3 sms-6.c:14 (set (reg:SI 171)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 12 [0xc])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 102 100 104 3 sms-6.c:14 (set (reg:SI 170)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 12 [0xc])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 104 102 106 3 sms-6.c:13 (set (reg:SI 168)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 8 [0x8])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 106 104 108 3 sms-6.c:13 (set (reg:SI 167)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 8 [0x8])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 108 106 110 3 sms-6.c:12 (set (reg:SI 165)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 4 [0x4])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 110 108 112 3 sms-6.c:12 (set (reg:SI 164)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 4 [0x4])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn 112 110 67 3 sms-6.c:14 (set (reg/f:SI 157 [ ivtmp.40 ])
(plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
;; End of basic block 3 -> ( 4)
;; UD chains for artificial uses
;; reg 1 { }
;; reg 31 { }
;; reg 67 { }
;; reg 113 { }
;; UD chains for insn luid 0 uid 92
;; reg 157 { }
;; UD chains for insn luid 0 uid 94
;; reg 156 { }
;; UD chains for insn luid 0 uid 96
;; reg 161 { }
;; reg 162 { }
;; UD chains for insn luid 0 uid 98
;; reg 155 { }
;; reg 163 { }
;; UD chains for insn luid 0 uid 100
;; reg 157 { }
;; UD chains for insn luid 0 uid 102
;; reg 156 { }
;; UD chains for insn luid 0 uid 104
;; reg 157 { }
;; UD chains for insn luid 0 uid 106
;; reg 156 { }
;; UD chains for insn luid 0 uid 108
;; reg 157 { }
;; UD chains for insn luid 0 uid 110
;; reg 156 { }
;; UD chains for insn luid 0 uid 112
;; reg 157 { }
;; Succ edge 4 [100.0%] (fallthru)
;; Start of basic block ( 3 6) -> 4
;; bb 4 artificial_defs: { }
;; bb 4 artificial_uses: { u10(1){ d0(bb 0 insn -1) }u11(31){ d10(bb 0 insn -1) }u12(67){ d20(bb 0 insn -1) }u13(113){ d21(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 155 156 157 174
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 155 156 157 174
;; lr def 155 156 157 161 162 163 164 165 166 167 168 169 170 171 172 174
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 155 156 157 174
;; live gen 155 156 157 161 162 163 164 165 166 167 168 169 170 171 172 174
;; live kill
;; rd in (42)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41
;; rd gen (16)
23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41
;; rd kill (20)
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41
;; DU chains for insn luid 1 uid 49
;; reg 162 { u17(bb 4 insn 50) }
;; DU chains for insn luid 17 uid 65
;; reg 156 { u39(bb 4 insn 65) u32(bb 4 insn 60) u26(bb 4 insn 56) u20(bb 4 insn 52) u14(bb 4 insn 48) }
;; DU chains for insn luid 0 uid 48
;; reg 161 { u16(bb 4 insn 50) }
;; DU chains for insn luid 14 uid 62
;; reg 172 { u37(bb 4 insn 63) }
;; DU chains for insn luid 10 uid 58
;; reg 169 { u31(bb 4 insn 59) }
;; DU chains for insn luid 6 uid 54
;; reg 166 { u25(bb 4 insn 55) }
;; DU chains for insn luid 2 uid 50
;; reg 163 { u19(bb 4 insn 51) }
;; DU chains for insn luid 18 uid 66
;; reg 155 { u40(bb 4 insn 66) u36(bb 4 insn 63) u30(bb 4 insn 59) u24(bb 4 insn 55) u18(bb 4 insn 51) }
;; DU chains for insn luid 13 uid 61
;; reg 171 { u35(bb 4 insn 62) }
;; DU chains for insn luid 12 uid 60
;; reg 170 { u34(bb 4 insn 62) }
;; DU chains for insn luid 9 uid 57
;; reg 168 { u29(bb 4 insn 58) }
;; DU chains for insn luid 8 uid 56
;; reg 167 { u28(bb 4 insn 58) }
;; DU chains for insn luid 5 uid 53
;; reg 165 { u23(bb 4 insn 54) }
;; DU chains for insn luid 4 uid 52
;; reg 164 { u22(bb 4 insn 54) }
;; DU chains for insn luid 16 uid 64
;; reg 157 { u38(bb 4 insn 64) u33(bb 4 insn 61) u27(bb 4 insn 57) u21(bb 4 insn 53) u15(bb 4 insn 49) }
;; DU chains for insn luid 19 uid 85
;; reg 174 { u42(bb 4 insn 85) u41(bb 4 insn 85) }
;; Pred edge 3 [100.0%] (fallthru)
;; Pred edge 6 [100.0%]
(code_label:HI 67 112 47 4 2 "" [1 uses])
(note:HI 47 67 49 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
(insn:HI 49 47 65 4 sms-6.c:11 (set (reg:SI 162)
(mem:SI (reg/f:SI 157 [ ivtmp.40 ]) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 65 49 48 4 sms-6.c:14 (set (reg/f:SI 156 [ ivtmp.42 ])
(plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
(insn:HI 48 65 62 4 sms-6.c:11 (set (reg:SI 161)
(mem:SI (reg/f:SI 156 [ ivtmp.42 ]) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 62 48 58 4 sms-6.c:14 (set (reg:SI 172)
(mult:SI (reg:SI 170)
(reg:SI 171))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 171)
(expr_list:REG_DEAD (reg:SI 170)
(nil))))
(insn:HI 58 62 54 4 sms-6.c:13 (set (reg:SI 169)
(mult:SI (reg:SI 167)
(reg:SI 168))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 168)
(expr_list:REG_DEAD (reg:SI 167)
(nil))))
(insn:HI 54 58 50 4 sms-6.c:12 (set (reg:SI 166)
(mult:SI (reg:SI 164)
(reg:SI 165))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 165)
(expr_list:REG_DEAD (reg:SI 164)
(nil))))
(insn:HI 50 54 63 4 sms-6.c:11 (set (reg:SI 163)
(mult:SI (reg:SI 161)
(reg:SI 162))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 162)
(expr_list:REG_DEAD (reg:SI 161)
(nil))))
(insn:HI 63 50 59 4 sms-6.c:14 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 12 [0xc])) [3 S4 A32])
(reg:SI 172)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 172)
(nil)))
(insn:HI 59 63 55 4 sms-6.c:13 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 8 [0x8])) [3 S4 A32])
(reg:SI 169)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 169)
(nil)))
(insn:HI 55 59 66 4 sms-6.c:12 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 4 [0x4])) [3 S4 A32])
(reg:SI 166)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 166)
(nil)))
(insn:HI 66 55 51 4 sms-6.c:14 (set (reg/f:SI 155 [ ivtmp.43 ])
(plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
(insn:HI 51 66 61 4 sms-6.c:11 (set (mem:SI (reg/f:SI 155 [ ivtmp.43 ]) [3 S4 A32])
(reg:SI 163)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 163)
(nil)))
(insn:HI 61 51 60 4 sms-6.c:14 (set (reg:SI 171)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 12 [0xc])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 60 61 57 4 sms-6.c:14 (set (reg:SI 170)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 12 [0xc])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 57 60 56 4 sms-6.c:13 (set (reg:SI 168)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 8 [0x8])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 56 57 53 4 sms-6.c:13 (set (reg:SI 167)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 8 [0x8])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 53 56 52 4 sms-6.c:12 (set (reg:SI 165)
(mem:SI (plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 4 [0x4])) [5 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 52 53 64 4 sms-6.c:12 (set (reg:SI 164)
(mem:SI (plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 4 [0x4])) [4 S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 64 52 85 4 sms-6.c:14 (set (reg/f:SI 157 [ ivtmp.40 ])
(plus:SI (reg/f:SI 157 [ ivtmp.40 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
(jump_insn:HI 85 64 130 4 sms-6.c:9 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 174)
(const_int 1 [0x1]))
(label_ref:SI 90)
(pc)))
(set (reg:SI 174)
(plus:SI (reg:SI 174)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 588 {*ctrsi_internal1} (expr_list:REG_BR_PROB (const_int 9600 [0x2580])
(nil)))
;; End of basic block 4 -> ( 6 5)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 155 156 157 174
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 155 156 157 174
;; rd out (38)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41
;; UD chains for artificial uses
;; reg 1 { d0(bb 0 insn -1) }
;; reg 31 { d10(bb 0 insn -1) }
;; reg 67 { d20(bb 0 insn -1) }
;; reg 113 { d21(bb 0 insn -1) }
;; UD chains for insn luid 1 uid 49
;; reg 157 { d27(bb 4 insn 64) d26(bb 2 insn 46) }
;; UD chains for insn luid 17 uid 65
;; reg 156 { d25(bb 4 insn 65) d24(bb 2 insn 45) }
;; UD chains for insn luid 0 uid 48
;; reg 156 { d25(bb 4 insn 65) d24(bb 2 insn 45) }
;; UD chains for insn luid 14 uid 62
;; reg 170 { d37(bb 4 insn 60) }
;; reg 171 { d38(bb 4 insn 61) }
;; UD chains for insn luid 10 uid 58
;; reg 167 { d34(bb 4 insn 56) }
;; reg 168 { d35(bb 4 insn 57) }
;; UD chains for insn luid 6 uid 54
;; reg 164 { d31(bb 4 insn 52) }
;; reg 165 { d32(bb 4 insn 53) }
;; UD chains for insn luid 2 uid 50
;; reg 161 { d28(bb 4 insn 48) }
;; reg 162 { d29(bb 4 insn 49) }
;; UD chains for insn luid 15 uid 63
;; reg 155 { d23(bb 4 insn 66) d22(bb 2 insn 44) }
;; reg 172 { d39(bb 4 insn 62) }
;; UD chains for insn luid 11 uid 59
;; reg 155 { d23(bb 4 insn 66) d22(bb 2 insn 44) }
;; reg 169 { d36(bb 4 insn 58) }
;; UD chains for insn luid 7 uid 55
;; reg 155 { d23(bb 4 insn 66) d22(bb 2 insn 44) }
;; reg 166 { d33(bb 4 insn 54) }
;; UD chains for insn luid 18 uid 66
;; reg 155 { d23(bb 4 insn 66) d22(bb 2 insn 44) }
;; UD chains for insn luid 3 uid 51
;; reg 155 { d23(bb 4 insn 66) d22(bb 2 insn 44) }
;; reg 163 { d30(bb 4 insn 50) }
;; UD chains for insn luid 13 uid 61
;; reg 157 { d27(bb 4 insn 64) d26(bb 2 insn 46) }
;; UD chains for insn luid 12 uid 60
;; reg 156 { d25(bb 4 insn 65) d24(bb 2 insn 45) }
;; UD chains for insn luid 9 uid 57
;; reg 157 { d27(bb 4 insn 64) d26(bb 2 insn 46) }
;; UD chains for insn luid 8 uid 56
;; reg 156 { d25(bb 4 insn 65) d24(bb 2 insn 45) }
;; UD chains for insn luid 5 uid 53
;; reg 157 { d27(bb 4 insn 64) d26(bb 2 insn 46) }
;; UD chains for insn luid 4 uid 52
;; reg 156 { d25(bb 4 insn 65) d24(bb 2 insn 45) }
;; UD chains for insn luid 16 uid 64
;; reg 157 { d27(bb 4 insn 64) d26(bb 2 insn 46) }
;; UD chains for insn luid 19 uid 85
;; reg 174 { d41(bb 4 insn 85) d40(bb 2 insn 86) }
;; reg 174 { d41(bb 4 insn 85) d40(bb 2 insn 86) }
;; Succ edge 6 [96.0%] (dfs_back)
;; Succ edge 5 [4.0%] (fallthru,loop_exit)
;; Start of basic block ( 4) -> 5
;; bb 5 artificial_defs: { }
;; bb 5 artificial_uses: { u-1(1){ }u-1(31){ }u-1(67){ }u-1(113){ }}
;; DU chains for insn luid 0 uid 115
;; reg 156 { }
;; DU chains for insn luid 0 uid 117
;; reg 172 { }
;; DU chains for insn luid 0 uid 119
;; reg 169 { }
;; DU chains for insn luid 0 uid 121
;; reg 166 { }
;; DU chains for insn luid 0 uid 129
;; reg 155 { }
;; Pred edge 4 [4.0%] (fallthru,loop_exit)
(note 130 85 115 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(insn 115 130 117 5 sms-6.c:14 (set (reg/f:SI 156 [ ivtmp.42 ])
(plus:SI (reg/f:SI 156 [ ivtmp.42 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
(insn 117 115 119 5 sms-6.c:14 (set (reg:SI 172)
(mult:SI (reg:SI 170)
(reg:SI 171))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 170)
(expr_list:REG_DEAD (reg:SI 171)
(nil))))
(insn 119 117 121 5 sms-6.c:13 (set (reg:SI 169)
(mult:SI (reg:SI 167)
(reg:SI 168))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 167)
(expr_list:REG_DEAD (reg:SI 168)
(nil))))
(insn 121 119 123 5 sms-6.c:12 (set (reg:SI 166)
(mult:SI (reg:SI 164)
(reg:SI 165))) 117 {mulsi3_no_mq} (expr_list:REG_DEAD (reg:SI 164)
(expr_list:REG_DEAD (reg:SI 165)
(nil))))
(insn 123 121 125 5 sms-6.c:14 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 12 [0xc])) [3 S4 A32])
(reg:SI 172)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 172)
(nil)))
(insn 125 123 127 5 sms-6.c:13 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 8 [0x8])) [3 S4 A32])
(reg:SI 169)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 169)
(nil)))
(insn 127 125 129 5 sms-6.c:12 (set (mem:SI (plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 4 [0x4])) [3 S4 A32])
(reg:SI 166)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI 166)
(nil)))
(insn 129 127 132 5 sms-6.c:14 (set (reg/f:SI 155 [ ivtmp.43 ])
(plus:SI (reg/f:SI 155 [ ivtmp.43 ])
(const_int 16 [0x10]))) 82 {*addsi3_internal1} (nil))
(jump_insn 132 129 133 5 (set (pc)
(label_ref 131)) -1 (nil))
;; End of basic block 5 -> ( 7)
;; UD chains for artificial uses
;; reg 1 { }
;; reg 31 { }
;; reg 67 { }
;; reg 113 { }
;; UD chains for insn luid 0 uid 115
;; reg 156 { }
;; UD chains for insn luid 0 uid 117
;; reg 170 { }
;; reg 171 { }
;; UD chains for insn luid 0 uid 119
;; reg 167 { }
;; reg 168 { }
;; UD chains for insn luid 0 uid 121
;; reg 164 { }
;; reg 165 { }
;; UD chains for insn luid 0 uid 123
;; reg 155 { }
;; reg 172 { }
;; UD chains for insn luid 0 uid 125
;; reg 155 { }
;; reg 169 { }
;; UD chains for insn luid 0 uid 127
;; reg 155 { }
;; reg 166 { }
;; UD chains for insn luid 0 uid 129
;; reg 155 { }
;; Succ edge 7 [100.0%]
(barrier 133 132 90)
;; Start of basic block ( 4) -> 6
;; bb 6 artificial_defs: { }
;; bb 6 artificial_uses: { u-1(1){ }u-1(31){ }u-1(67){ }u-1(113){ }}
;; Pred edge 4 [96.0%] (dfs_back)
(code_label 90 133 89 6 5 "" [1 uses])
(note 89 90 134 6 [bb 6] NOTE_INSN_BASIC_BLOCK)
(jump_insn 134 89 135 6 (set (pc)
(label_ref 67)) -1 (nil))
;; End of basic block 6 -> ( 4)
;; UD chains for artificial uses
;; reg 1 { }
;; reg 31 { }
;; reg 67 { }
;; reg 113 { }
;; Succ edge 4 [100.0%]
(barrier 135 134 131)
;; Start of basic block ( 5) -> 7
;; bb 7 artificial_defs: { }
;; bb 7 artificial_uses: { u43(1){ d0(bb 0 insn -1) }u44(31){ d10(bb 0 insn -1) }u45(67){ d20(bb 0 insn -1) }u46(113){ d21(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr def
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live gen
;; live kill
;; rd in (38)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41
;; rd gen (0)
;; rd kill (0)
;; Pred edge 5 [100.0%]
(code_label 131 135 77 7 6 "" [1 uses])
(note:HI 77 131 0 7 [bb 7] NOTE_INSN_BASIC_BLOCK)
;; End of basic block 7 -> ( 1)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; rd out (38)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41
;; UD chains for artificial uses
;; reg 1 { d0(bb 0 insn -1) }
;; reg 31 { d10(bb 0 insn -1) }
;; reg 67 { d20(bb 0 insn -1) }
;; reg 113 { d21(bb 0 insn -1) }
;; Succ edge EXIT [100.0%] (fallthru)
starting the processing of deferred insns
ending the processing of deferred insns
;; Function main (main)
try_optimize_cfg iteration 1
;; 3 loops found
;;
;; Loop 0
;; header 0, latch 1
;; depth 0, outer -1
;; nodes: 0 1 2 3 4 5 6 7 8
;;
;; Loop 2
;; header 5, latch 5
;; depth 1, outer 0
;; nodes: 5
;;
;; Loop 1
;; header 3, latch 3
;; depth 1, outer 0
;; nodes: 3
;; 2 succs { 3 }
;; 3 succs { 3 4 }
;; 4 succs { 5 }
;; 5 succs { 5 6 }
;; 6 succs { 7 8 }
;; 7 succs { }
;; 8 succs { 1 }
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
df_worklist_dataflow_doublequeue:n_basic_blocks 9 n_edges 10 count 11 ( 1.2)
main
Dataflow summary:
def_info->table_size = 187, use_info->table_size = 67
;; invalidated by call 0 [0] 2 [2] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 12 [12] 13 [13] 32 [0] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 41 [9] 42 [10] 43 [11] 44 [12] 45 [13] 64 [mq] 65 [lr] 66 [ctr] 68 [0] 69 [1] 73 [5] 74 [6] 75 [7] 76 [xer] 77 [0] 78 [1] 79 [2] 80 [3] 81 [4] 82 [5] 83 [6] 84 [7] 85 [8] 86 [9] 87 [10] 88 [11] 89 [12] 90 [13] 91 [14] 92 [15] 93 [16] 94 [17] 95 [18] 96 [19] 97 [20] 98 [21] 99 [22] 100 [23] 101 [24] 102 [25] 103 [26] 104 [27] 105 [28] 106 [29] 107 [30] 108 [31] 109 [vrsave]
;; hardware regs used 1 [1] 67 [ap] 113 [sfp]
;; regular block artificial uses 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; eh block artificial uses 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; entry block defs 1 [1] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 31 [31] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 65 [lr] 67 [ap] 113 [sfp]
;; exit block uses 1 [1] 3 [3] 31 [31] 113 [sfp]
;; regs ever live 1[1] 3[3] 4[4] 5[5] 65[lr]
;; ref usage r0={2d} r1={1d,10u} r2={2d} r3={5d,3u} r4={4d,1u} r5={4d,1u} r6={3d} r7={3d} r8={3d} r9={3d} r10={3d} r11={3d} r12={2d} r13={2d} r31={1d,8u} r32={2d} r33={3d} r34={3d} r35={3d} r36={3d} r37={3d} r38={3d} r39={3d} r40={3d} r41={2d} r42={2d} r43={2d} r44={2d} r45={2d} r64={2d} r65={3d} r66={2d} r67={1d,7u} r68={2d} r69={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r81={2d} r82={2d} r83={2d} r84={2d} r85={2d} r86={2d} r87={2d} r88={2d} r89={2d} r90={2d} r91={2d} r92={2d} r93={2d} r94={2d} r95={2d} r96={2d} r97={2d} r98={2d} r99={2d} r100={2d} r101={2d} r102={2d} r103={2d} r104={2d} r105={2d} r106={2d} r107={2d} r108={2d} r109={2d} r113={1d,8u} r121={2d,3u} r122={2d,2u} r123={2d,2u,1d} r124={2d,3u} r131={1d,2u} r132={1d,1u} r138={1d,1u} r142={1d,1u} r143={1d,1u} r145={1d,1u} r147={1d,2u} r148={1d,2u} r150={1d,1u} r154={1d,1u} r155={1d,1u} r156={2d,2u} r157={2d,2u} r158={1d,1u}
;; total ref usage 256{188d,67u,1e} in 34{32 regular + 2 call} insns.
( )->[0]->( 2 )
;; bb 0 artificial_defs: { d2(1){ }d9(3){ }d13(4){ }d17(5){ }d20(6){ }d23(7){ }d26(8){ }d29(9){ }d32(10){ }d35(11){ }d40(31){ }d45(33){ }d48(34){ }d51(35){ }d54(36){ }d57(37){ }d60(38){ }d63(39){ }d66(40){ }d81(65){ }d84(67){ }d163(113){ }}
;; bb 0 artificial_uses: { }
;; lr in
;; lr use
;; lr def 1 [1] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 31 [31] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 65 [lr] 67 [ap] 113 [sfp]
;; live in
;; live gen 1 [1] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 31 [31] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 65 [lr] 67 [ap] 113 [sfp]
;; live kill
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp]
( 0 )->[2]->( 3 )
;; bb 2 artificial_defs: { }
;; bb 2 artificial_uses: { u0(1){ }u1(31){ }u2(67){ }u3(113){ }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr def 121 124 145 147 148 150 154 155 157
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live gen 121 124 145 147 148 150 154 155 157
;; live kill
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
( 3 2 )->[3]->( 3 4 )
;; bb 3 artificial_defs: { }
;; bb 3 artificial_uses: { u8(1){ }u9(31){ }u10(67){ }u11(113){ }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 157
;; lr def 121 124 157
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; live gen 121 124 157
;; live kill
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
( 3 )->[4]->( 5 )
;; bb 4 artificial_defs: { }
;; bb 4 artificial_uses: { u22(1){ }u23(31){ }u24(67){ }u25(113){ }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 154 155
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 154 155
;; lr def 0 [0] 2 [2] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 12 [12] 13 [13] 32 [0] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 41 [9] 42 [10] 43 [11] 44 [12] 45 [13] 64 [mq] 65 [lr] 66 [ctr] 68 [0] 69 [1] 73 [5] 74 [6] 75 [7] 76 [xer] 77 [0] 78 [1] 79 [2] 80 [3] 81 [4] 82 [5] 83 [6] 84 [7] 85 [8] 86 [9] 87 [10] 88 [11] 89 [12] 90 [13] 91 [14] 92 [15] 93 [16] 94 [17] 95 [18] 96 [19] 97 [20] 98 [21] 99 [22] 100 [23] 101 [24] 102 [25] 103 [26] 104 [27] 105 [28] 106 [29] 107 [30] 108 [31] 109 [vrsave] 122 123 131 132 156
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 154 155
;; live gen 3 [3] 4 [4] 5 [5] 122 123 131 132 156
;; live kill 65 [lr]
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
( 5 4 )->[5]->( 5 6 )
;; bb 5 artificial_defs: { }
;; bb 5 artificial_uses: { u35(1){ }u36(31){ }u37(67){ }u38(113){ }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; lr def 122 123 138 156
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; live gen 122 123 138 156
;; live kill
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
( 5 )->[6]->( 7 8 )
;; bb 6 artificial_defs: { }
;; bb 6 artificial_uses: { u45(1){ }u46(31){ }u47(67){ }u48(113){ }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 123
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 123
;; lr def 142 143 158
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 123
;; live gen 142 143
;; live kill
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp]
( 6 )->[7]->( )
;; bb 7 artificial_defs: { }
;; bb 7 artificial_uses: { u53(1){ }u54(31){ }u55(67){ }u56(113){ }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr def 0 [0] 2 [2] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 12 [12] 13 [13] 32 [0] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 41 [9] 42 [10] 43 [11] 44 [12] 45 [13] 64 [mq] 65 [lr] 66 [ctr] 68 [0] 69 [1] 73 [5] 74 [6] 75 [7] 76 [xer] 77 [0] 78 [1] 79 [2] 80 [3] 81 [4] 82 [5] 83 [6] 84 [7] 85 [8] 86 [9] 87 [10] 88 [11] 89 [12] 90 [13] 91 [14] 92 [15] 93 [16] 94 [17] 95 [18] 96 [19] 97 [20] 98 [21] 99 [22] 100 [23] 101 [24] 102 [25] 103 [26] 104 [27] 105 [28] 106 [29] 107 [30] 108 [31] 109 [vrsave]
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live gen
;; live kill 65 [lr]
;; lr out 1 [1] 67 [ap] 113 [sfp]
;; live out 1 [1] 67 [ap] 113 [sfp]
( 6 )->[8]->( 1 )
;; bb 8 artificial_defs: { }
;; bb 8 artificial_uses: { u58(1){ }u59(31){ }u60(67){ }u61(113){ }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr def 3 [3]
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live gen 3 [3]
;; live kill
;; lr out 1 [1] 3 [3] 31 [31] 67 [ap] 113 [sfp]
;; live out 1 [1] 3 [3] 31 [31] 67 [ap] 113 [sfp]
( 8 )->[1]->( )
;; bb 1 artificial_defs: { }
;; bb 1 artificial_uses: { u63(1){ }u64(3){ }u65(31){ }u66(113){ }}
;; lr in 1 [1] 3 [3] 31 [31] 113 [sfp]
;; lr use 1 [1] 3 [3] 31 [31] 113 [sfp]
;; lr def
;; live in 1 [1] 3 [3] 31 [31] 113 [sfp]
;; live gen
;; live kill
;; lr out
;; live out
Finding needed instructions:
Adding insn 90 to worklist
Adding insn 15 to worklist
Adding insn 12 to worklist
Adding insn 31 to worklist
Adding insn 88 to worklist
Adding insn 47 to worklist
Adding insn 49 to worklist
Adding insn 63 to worklist
Finished finding needed instructions:
processing block 7 lr out = 1 [1] 67 [ap] 113 [sfp]
processing block 8 lr out = 1 [1] 3 [3] 31 [31] 67 [ap] 113 [sfp]
Adding insn 57 to worklist
processing block 6 lr out = 1 [1] 31 [31] 67 [ap] 113 [sfp]
Adding insn 46 to worklist
Adding insn 94 to worklist
Adding insn 93 to worklist
processing block 5 lr out = 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
Adding insn 38 to worklist
Adding insn 37 to worklist
Adding insn 36 to worklist
processing block 4 lr out = 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
Adding insn 89 to worklist
Adding insn 34 to worklist
Adding insn 33 to worklist
Adding insn 30 to worklist
Adding insn 29 to worklist
Adding insn 28 to worklist
Adding insn 23 to worklist
Adding insn 22 to worklist
processing block 3 lr out = 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
Adding insn 17 to worklist
Adding insn 16 to worklist
processing block 2 lr out = 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
Adding insn 91 to worklist
Adding insn 69 to worklist
Adding insn 70 to worklist
Adding insn 78 to worklist
Adding insn 76 to worklist
Adding insn 75 to worklist
Adding insn 73 to worklist
Adding insn 8 to worklist
Adding insn 7 to worklist
df_worklist_dataflow_doublequeue:n_basic_blocks 9 n_edges 10 count 16 ( 1.8)
df_worklist_dataflow_doublequeue:n_basic_blocks 9 n_edges 10 count 16 ( 1.8)
SMS analysis phase
===================
SMS loop num: 2, file: sms-6.c, line: 30
...OK
SMS loop num: 1, file: sms-6.c, line: 23
...OK
SMS transformation phase
=========================
SMS loop num: 2, file: sms-6.c, line: 30
Node num: 0
(insn:HI 36 35 37 5 sms-6.c:32 (set (reg:SI 138)
(mem/s:SI (reg/f:SI 122 [ ivtmp.82 ]) [2 a S4 A32])) 334 {*movsi_internal1} (nil))
OUT ARCS: [36 -(A,0,0)-> 38] [36 -(T,2,0)-> 37]
IN ARCS: [37 -(A,0,1)-> 36] [38 -(T,1,1)-> 36]
Node num: 1
(insn:HI 37 36 38 5 sms-6.c:32 (set (reg/v:SI 123 [ res ])
(plus:SI (reg/v:SI 123 [ res ])
(reg:SI 138))) 82 {*addsi3_internal1} (expr_list:REG_DEAD (reg:SI 138)
(nil)))
OUT ARCS: [37 -(A,0,1)-> 36] [37 -(T,1,1)-> 37]
IN ARCS: [37 -(T,1,1)-> 37] [36 -(T,2,0)-> 37]
Node num: 2
(insn:HI 38 37 88 5 sms-6.c:32 (set (reg/f:SI 122 [ ivtmp.82 ])
(plus:SI (reg/f:SI 122 [ ivtmp.82 ])
(const_int 4 [0x4]))) 82 {*addsi3_internal1} (nil))
OUT ARCS: [38 -(T,1,1)-> 36] [38 -(T,1,1)-> 38]
IN ARCS: [38 -(T,1,1)-> 38] [36 -(A,0,0)-> 38]
Node num: 3
(jump_insn:HI 88 38 44 5 sms-6.c:30 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 156)
(const_int 1 [0x1]))
(label_ref:SI 39)
(pc)))
(set (reg:SI 156)
(plus:SI (reg:SI 156)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 588 {*ctrsi_internal1} (expr_list:REG_BR_PROB (const_int 9899 [0x26ab])
(nil)))
OUT ARCS: [88 -(T,1,1)-> 88] [88 -(T,1,1)-> 88]
IN ARCS: [88 -(T,1,1)-> 88] [88 -(T,1,1)-> 88]
sms-6.c 30 (file, line)
SMS single-bb-loop
SMS doloop
SMS built-ddg 4
SMS num-loads 1
SMS num-stores 0
SMS const-doloop 100
Order params
node 0, ASAP: 0, ALAP: 0, HEIGHT: 2
node 1, ASAP: 2, ALAP: 2, HEIGHT: 0
node 2, ASAP: 0, ALAP: 2, HEIGHT: 0
node 3, ASAP: 0, ALAP: 2, HEIGHT: 0
;; Number of SCC nodes - 2
SCC number: 0
insn num 0
(insn:HI 36 35 37 5 sms-6.c:32 (set (reg:SI 138)
(mem/s:SI (reg/f:SI 122 [ ivtmp.82 ]) [2 a S4 A32])) 334 {*movsi_internal1} (nil))
insn num 1
(insn:HI 37 36 38 5 sms-6.c:32 (set (reg/v:SI 123 [ res ])
(plus:SI (reg/v:SI 123 [ res ])
(reg:SI 138))) 82 {*addsi3_internal1} (expr_list:REG_DEAD (reg:SI 138)
(nil)))
insn num 2
(insn:HI 38 37 88 5 sms-6.c:32 (set (reg/f:SI 122 [ ivtmp.82 ])
(plus:SI (reg/f:SI 122 [ ivtmp.82 ])
(const_int 4 [0x4]))) 82 {*addsi3_internal1} (nil))
SCC number: 1
insn num 3
(jump_insn:HI 88 38 44 5 sms-6.c:30 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 156)
(const_int 1 [0x1]))
(label_ref:SI 39)
(pc)))
(set (reg:SI 156)
(plus:SI (reg:SI 156)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 588 {*ctrsi_internal1} (expr_list:REG_BR_PROB (const_int 9899 [0x26ab])
(nil)))
SMS final nodes order:
1 0 2 3
SMS iis 2 4 8 (rec_mii, mii, maxii)
Starting with ii=4
Trying to schedule node 1 INSN = 37 in (2 .. 6) step 1
must_precede:
must_follow:
Scheduled w/o split in 2
Processing edge: [37 -(A,0,1)-> 36]
Scheduling 0 (36) in psp_pss_not_empty, checking p 1 (37): pred st = 2; early_start = -2; latency = 0
Processing edge: [38 -(T,1,1)-> 36]
Scheduling 0 (36) in psp_pss_not_empty, checking p 2 (38): the node is not scheduled
Processing edge: [36 -(A,0,0)-> 38]
Scheduling 0 (36) in psp_pss_not_empty, checking s 2 (38): the node is not scheduled
Processing edge: [36 -(T,2,0)-> 37]
Scheduling 0 (36) in psp_pss_not_empty, checking s 1 (37): succ st = 2; late_start = 0; latency = 2
Trying to schedule node 0 INSN = 36 in (0 .. -3) step -1
must_precede: 1
must_follow:
Scheduled w/o split in 0
Processing edge: [38 -(T,1,1)-> 38]
Scheduling 2 (38) in psp_pss_not_empty, checking p 2 (38): the node is not scheduled
Processing edge: [36 -(A,0,0)-> 38]
Scheduling 2 (38) in psp_pss_not_empty, checking p 0 (36): pred st = 0; early_start = 0; latency = 0
Processing edge: [38 -(T,1,1)-> 36]
Scheduling 2 (38) in psp_pss_not_empty, checking s 0 (36): succ st = 0; late_start = 3; latency = 1
Processing edge: [38 -(T,1,1)-> 38]
Scheduling 2 (38) in psp_pss_not_empty, checking s 2 (38): the node is not scheduled
Trying to schedule node 2 INSN = 38 in (3 .. -1) step -1
must_precede: 0
must_follow:
Scheduled w/o split in 3
SMS succeeded 4 1 (with ii, sc)
[ROW 0 ]: 36,
[ROW 1 ]:
[ROW 2 ]: 37,
[ROW 3 ]: 38, SMS Branch (3) will later be scheduled at cycle -1.
crr_insn->node=0, crr_insn->cycle=0, min_cycle=0
crr_insn->node=1, crr_insn->cycle=2, min_cycle=0
crr_insn->node=2, crr_insn->cycle=3, min_cycle=0
changing bb of uid 96
unscanned insn
verify found no changes in insn with uid = 88.
Edge 5->5 redirected to 9
Node = 0; INSN = 36
asap = 0:
time = 0:
nreg_moves = 0:
Node = 1; INSN = 37
asap = 2:
time = 2:
nreg_moves = 0:
Node = 2; INSN = 38
asap = 0:
time = 3:
nreg_moves = 0:
Node = 3; INSN = 88
asap = 0:
time = 0:
nreg_moves = 0:
SMS loop num: 1, file: sms-6.c, line: 23
Node num: 0
(insn:HI 12 9 15 3 sms-6.c:25 (set (mem/s:SI (plus:SI (reg/f:SI 148)
(reg:SI 121 [ ivtmp.91 ])) [2 c S4 A32])
(reg/v:SI 124 [ i ])) 334 {*movsi_internal1} (nil))
OUT ARCS: [12 -(O,0,0)-> 90] [12 -(A,0,0)-> 17] [12 -(A,0,0)-> 16]
IN ARCS: [16 -(T,1,1)-> 12] [17 -(T,1,1)-> 12] [15 -(O,0,1)-> 12]
Node num: 1
(insn:HI 15 12 16 3 sms-6.c:25 (set (mem/s:SI (plus:SI (reg/f:SI 147)
(reg:SI 121 [ ivtmp.91 ])) [2 b S4 A32])
(reg/v:SI 124 [ i ])) 334 {*movsi_internal1} (nil))
OUT ARCS: [15 -(O,0,0)-> 90] [15 -(A,0,0)-> 17] [15 -(A,0,0)-> 16] [15 -(O,0,1)-> 12]
IN ARCS: [16 -(T,1,1)-> 15] [17 -(T,1,1)-> 15]
Node num: 2
(insn:HI 16 15 17 3 sms-6.c:23 (set (reg/v:SI 124 [ i ])
(plus:SI (reg/v:SI 124 [ i ])
(const_int 1 [0x1]))) 82 {*addsi3_internal1} (nil))
OUT ARCS: [16 -(T,1,1)-> 12] [16 -(T,1,1)-> 15] [16 -(T,1,1)-> 16]
IN ARCS: [16 -(T,1,1)-> 16] [15 -(A,0,0)-> 16] [12 -(A,0,0)-> 16]
Node num: 3
(insn:HI 17 16 90 3 sms-6.c:23 (set (reg:SI 121 [ ivtmp.91 ])
(plus:SI (reg:SI 121 [ ivtmp.91 ])
(const_int 4 [0x4]))) 82 {*addsi3_internal1} (nil))
OUT ARCS: [17 -(T,1,1)-> 12] [17 -(T,1,1)-> 15] [17 -(T,1,1)-> 17]
IN ARCS: [17 -(T,1,1)-> 17] [15 -(A,0,0)-> 17] [12 -(A,0,0)-> 17]
Node num: 4
(jump_insn:HI 90 17 21 3 sms-6.c:23 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 157)
(const_int 1 [0x1]))
(label_ref:SI 18)
(pc)))
(set (reg:SI 157)
(plus:SI (reg:SI 157)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 588 {*ctrsi_internal1} (expr_list:REG_BR_PROB (const_int 9899 [0x26ab])
(nil)))
OUT ARCS: [90 -(T,1,1)-> 90] [90 -(T,1,1)-> 90]
IN ARCS: [90 -(T,1,1)-> 90] [90 -(T,1,1)-> 90] [15 -(O,0,0)-> 90] [12 -(O,0,0)-> 90]
sms-6.c 23 (file, line)
SMS single-bb-loop
SMS doloop
SMS built-ddg 5
SMS num-loads 0
SMS num-stores 2
SMS const-doloop 100
Order params
node 0, ASAP: 0, ALAP: 0, HEIGHT: 0
node 1, ASAP: 0, ALAP: 0, HEIGHT: 0
node 2, ASAP: 0, ALAP: 0, HEIGHT: 0
node 3, ASAP: 0, ALAP: 0, HEIGHT: 0
node 4, ASAP: 0, ALAP: 0, HEIGHT: 0
;; Number of SCC nodes - 2
SCC number: 0
insn num 0
(insn:HI 12 9 15 3 sms-6.c:25 (set (mem/s:SI (plus:SI (reg/f:SI 148)
(reg:SI 121 [ ivtmp.91 ])) [2 c S4 A32])
(reg/v:SI 124 [ i ])) 334 {*movsi_internal1} (nil))
insn num 1
(insn:HI 15 12 16 3 sms-6.c:25 (set (mem/s:SI (plus:SI (reg/f:SI 147)
(reg:SI 121 [ ivtmp.91 ])) [2 b S4 A32])
(reg/v:SI 124 [ i ])) 334 {*movsi_internal1} (nil))
insn num 2
(insn:HI 16 15 17 3 sms-6.c:23 (set (reg/v:SI 124 [ i ])
(plus:SI (reg/v:SI 124 [ i ])
(const_int 1 [0x1]))) 82 {*addsi3_internal1} (nil))
insn num 3
(insn:HI 17 16 90 3 sms-6.c:23 (set (reg:SI 121 [ ivtmp.91 ])
(plus:SI (reg:SI 121 [ ivtmp.91 ])
(const_int 4 [0x4]))) 82 {*addsi3_internal1} (nil))
SCC number: 1
insn num 4
(jump_insn:HI 90 17 21 3 sms-6.c:23 (parallel [
(set (pc)
(if_then_else (ne (reg:SI 157)
(const_int 1 [0x1]))
(label_ref:SI 18)
(pc)))
(set (reg:SI 157)
(plus:SI (reg:SI 157)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 588 {*ctrsi_internal1} (expr_list:REG_BR_PROB (const_int 9899 [0x26ab])
(nil)))
SMS final nodes order:
0 1 2 3 4
SMS iis 1 5 10 (rec_mii, mii, maxii)
Starting with ii=5
Trying to schedule node 0 INSN = 12 in (0 .. 5) step 1
must_precede:
must_follow:
Scheduled w/o split in 0
Processing edge: [15 -(O,0,0)-> 90]
Scheduling 1 (15) in pss_not_empty, checking s 4 (90): the node is not scheduled
Processing edge: [15 -(A,0,0)-> 17]
Scheduling 1 (15) in pss_not_empty, checking s 3 (17): the node is not scheduled
Processing edge: [15 -(A,0,0)-> 16]
Scheduling 1 (15) in pss_not_empty, checking s 2 (16): the node is not scheduled
Processing edge: [15 -(O,0,1)-> 12]
Scheduling 1 (15) in pss_not_empty, checking s 0 (12): succ st = 0; late_start = 5; latency = 0end = -4
Scheduling 1 (15) in a window (5..0) with step -1
Trying to schedule node 1 INSN = 15 in (5 .. 0) step -1
must_precede:
must_follow: 0
Scheduled w/o split in 4
Processing edge: [16 -(T,1,1)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking p 2 (16): the node is not scheduled
Processing edge: [15 -(A,0,0)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking p 1 (15): pred st = 4; early_start = 4; latency = 0
Processing edge: [12 -(A,0,0)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking p 0 (12): pred st = 0; early_start = 4; latency = 0
Processing edge: [16 -(T,1,1)-> 12]
Scheduling 2 (16) in psp_pss_not_empty, checking s 0 (12): succ st = 0; late_start = 4; latency = 1
Processing edge: [16 -(T,1,1)-> 15]
Scheduling 2 (16) in psp_pss_not_empty, checking s 1 (15): succ st = 4; late_start = 4; latency = 1
Processing edge: [16 -(T,1,1)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking s 2 (16): the node is not scheduled
Trying to schedule node 2 INSN = 16 in (4 .. 3) step -1
must_precede: 1
must_follow:
split_row=0
crr_insn->node=0, crr_insn->cycle=0, min_cycle=0
crr_insn->node=1, crr_insn->cycle=4, min_cycle=0
min_cycle=1, max_cycle=5
num_splits=1
Processing edge: [16 -(T,1,1)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking p 2 (16): the node is not scheduled
Processing edge: [15 -(A,0,0)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking p 1 (15): pred st = 5; early_start = 5; latency = 0
Processing edge: [12 -(A,0,0)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking p 0 (12): pred st = 1; early_start = 5; latency = 0
Processing edge: [16 -(T,1,1)-> 12]
Scheduling 2 (16) in psp_pss_not_empty, checking s 0 (12): succ st = 1; late_start = 6; latency = 1
Processing edge: [16 -(T,1,1)-> 15]
Scheduling 2 (16) in psp_pss_not_empty, checking s 1 (15): succ st = 5; late_start = 6; latency = 1
Processing edge: [16 -(T,1,1)-> 16]
Scheduling 2 (16) in psp_pss_not_empty, checking s 2 (16): the node is not scheduled
Trying to schedule node 2 INSN = 16 in (6 .. 4) step -1
must_precede: 1
must_follow:
Scheduled w/o split in 6
Processing edge: [17 -(T,1,1)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking p 3 (17): the node is not scheduled
Processing edge: [15 -(A,0,0)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking p 1 (15): pred st = 5; early_start = 5; latency = 0
Processing edge: [12 -(A,0,0)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking p 0 (12): pred st = 1; early_start = 5; latency = 0
Processing edge: [17 -(T,1,1)-> 12]
Scheduling 3 (17) in psp_pss_not_empty, checking s 0 (12): succ st = 1; late_start = 6; latency = 1
Processing edge: [17 -(T,1,1)-> 15]
Scheduling 3 (17) in psp_pss_not_empty, checking s 1 (15): succ st = 5; late_start = 6; latency = 1
Processing edge: [17 -(T,1,1)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking s 3 (17): the node is not scheduled
Trying to schedule node 3 INSN = 17 in (6 .. 4) step -1
must_precede: 1
must_follow:
split_row=0
crr_insn->node=2, crr_insn->cycle=6, min_cycle=1
crr_insn->node=0, crr_insn->cycle=1, min_cycle=1
crr_insn->node=1, crr_insn->cycle=5, min_cycle=1
min_cycle=1, max_cycle=6
num_splits=1
Processing edge: [17 -(T,1,1)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking p 3 (17): the node is not scheduled
Processing edge: [15 -(A,0,0)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking p 1 (15): pred st = 5; early_start = 5; latency = 0
Processing edge: [12 -(A,0,0)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking p 0 (12): pred st = 1; early_start = 5; latency = 0
Processing edge: [17 -(T,1,1)-> 12]
Scheduling 3 (17) in psp_pss_not_empty, checking s 0 (12): succ st = 1; late_start = 7; latency = 1
Processing edge: [17 -(T,1,1)-> 15]
Scheduling 3 (17) in psp_pss_not_empty, checking s 1 (15): succ st = 5; late_start = 7; latency = 1
Processing edge: [17 -(T,1,1)-> 17]
Scheduling 3 (17) in psp_pss_not_empty, checking s 3 (17): the node is not scheduled
Trying to schedule node 3 INSN = 17 in (7 .. 4) step -1
must_precede: 1
must_follow:
Scheduled w/o split in 7
SMS succeeded 7 1 (with ii, sc)
[ROW 0 ]: 17,
[ROW 1 ]: 12,
[ROW 2 ]:
[ROW 3 ]:
[ROW 4 ]:
[ROW 5 ]: 15,
[ROW 6 ]: 16, SMS Branch (4) will later be scheduled at cycle 0.
crr_insn->node=3, crr_insn->cycle=7, min_cycle=1
crr_insn->node=0, crr_insn->cycle=1, min_cycle=1
crr_insn->node=1, crr_insn->cycle=5, min_cycle=1
crr_insn->node=2, crr_insn->cycle=6, min_cycle=1
changing bb of uid 98
unscanned insn
verify found no changes in insn with uid = 90.
Edge 3->3 redirected to 10
Node = 0; INSN = 12
asap = 0:
time = 0:
nreg_moves = 0:
Node = 1; INSN = 15
asap = 0:
time = 4:
nreg_moves = 0:
Node = 2; INSN = 16
asap = 0:
time = 5:
nreg_moves = 0:
Node = 3; INSN = 17
asap = 0:
time = 6:
nreg_moves = 0:
Node = 4; INSN = 90
asap = 0:
time = 0:
nreg_moves = 0:
Emitting label for block 4
rescanning insn with uid = 90.
deleting insn with uid = 90.
scanning new insn with uid = 101.
Emitting label for block 6
rescanning insn with uid = 88.
deleting insn with uid = 88.
scanning new insn with uid = 104.
Reordered sequence:
2 bb 2 [100]
3 bb 3 [9900]
4 bb 10 [9800]
5 bb 4 [100]
6 bb 5 [9900]
7 bb 9 [9800]
8 bb 6 [100]
9 bb 7 [0]
10 bb 8 [100]
main
Dataflow summary:
;; invalidated by call 0 [0] 2 [2] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 12 [12] 13 [13] 32 [0] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 41 [9] 42 [10] 43 [11] 44 [12] 45 [13] 64 [mq] 65 [lr] 66 [ctr] 68 [0] 69 [1] 73 [5] 74 [6] 75 [7] 76 [xer] 77 [0] 78 [1] 79 [2] 80 [3] 81 [4] 82 [5] 83 [6] 84 [7] 85 [8] 86 [9] 87 [10] 88 [11] 89 [12] 90 [13] 91 [14] 92 [15] 93 [16] 94 [17] 95 [18] 96 [19] 97 [20] 98 [21] 99 [22] 100 [23] 101 [24] 102 [25] 103 [26] 104 [27] 105 [28] 106 [29] 107 [30] 108 [31] 109 [vrsave]
;; hardware regs used 1 [1] 67 [ap] 113 [sfp]
;; regular block artificial uses 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; eh block artificial uses 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; entry block defs 1 [1] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 31 [31] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 65 [lr] 67 [ap] 113 [sfp]
;; exit block uses 1 [1] 3 [3] 31 [31] 113 [sfp]
;; regs ever live 1[1] 3[3] 4[4] 5[5] 65[lr]
;; ref usage r0={2d} r1={1d,12u} r2={2d} r3={5d,3u} r4={4d,1u} r5={4d,1u} r6={3d} r7={3d} r8={3d} r9={3d} r10={3d} r11={3d} r12={2d} r13={2d} r31={1d,10u} r32={2d} r33={3d} r34={3d} r35={3d} r36={3d} r37={3d} r38={3d} r39={3d} r40={3d} r41={2d} r42={2d} r43={2d} r44={2d} r45={2d} r64={2d} r65={3d} r66={2d} r67={1d,9u} r68={2d} r69={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r81={2d} r82={2d} r83={2d} r84={2d} r85={2d} r86={2d} r87={2d} r88={2d} r89={2d} r90={2d} r91={2d} r92={2d} r93={2d} r94={2d} r95={2d} r96={2d} r97={2d} r98={2d} r99={2d} r100={2d} r101={2d} r102={2d} r103={2d} r104={2d} r105={2d} r106={2d} r107={2d} r108={2d} r109={2d} r113={1d,10u} r121={2d,3u} r122={2d,2u} r123={2d,2u,1d} r124={2d,3u} r131={1d,2u} r132={1d,1u} r138={1d,1u} r142={1d,1u} r143={1d,1u} r145={1d,1u} r147={1d,2u} r148={1d,2u} r150={1d,1u} r154={1d,1u} r155={1d,1u} r156={2d,2u} r157={2d,2u} r158={1d,1u}
;; total ref usage 264{188d,75u,1e} in 36{34 regular + 2 call} insns.
;; Reaching defs:
sparse invalidated
dense invalidated 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162
0[0,2] 1[2,1] 2[3,2] 3[5,5] 4[10,4] 5[14,4] 6[18,3] 7[21,3] 8[24,3] 9[27,3] 10[30,3] 11[33,3] 12[36,2] 13[38,2] 31[40,1] 32[41,2] 33[43,3] 34[46,3] 35[49,3] 36[52,3] 37[55,3] 38[58,3] 39[61,3] 40[64,3] 41[67,2] 42[69,2] 43[71,2] 44[73,2] 45[75,2] 64[77,2] 65[79,3] 66[82,2] 67[84,1] 68[85,2] 69[87,2] 73[89,2] 74[91,2] 75[93,2] 76[95,2] 77[97,2] 78[99,2] 79[101,2] 80[103,2] 81[105,2] 82[107,2] 83[109,2] 84[111,2] 85[113,2] 86[115,2] 87[117,2] 88[119,2] 89[121,2] 90[123,2] 91[125,2] 92[127,2] 93[129,2] 94[131,2] 95[133,2] 96[135,2] 97[137,2] 98[139,2] 99[141,2] 100[143,2] 101[145,2] 102[147,2] 103[149,2] 104[151,2] 105[153,2] 106[155,2] 107[157,2] 108[159,2] 109[161,2] 113[163,1] 121[164,2] 122[166,2] 123[168,2] 124[170,2] 131[172,1] 132[173,1] 138[174,1] 142[175,1] 143[176,1] 145[177,1] 147[178,1] 148[179,1] 150[180,1] 154[181,1] 155[182,1] 156[183,2] 157[185,2] 158[187,1]
(note:HI 3 0 5 NOTE_INSN_DELETED)
;; Start of basic block ( 0) -> 2
;; bb 2 artificial_defs: { }
;; bb 2 artificial_uses: { u0(1){ d2(bb 0 insn -1) }u1(31){ d40(bb 0 insn -1) }u2(67){ d84(bb 0 insn -1) }u3(113){ d163(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr def 121 124 145 147 148 150 154 155 157
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live gen 121 124 145 147 148 150 154 155 157
;; live kill
;; rd in (22)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 81, 84, 163
;; rd gen (9)
165, 171, 177, 178, 179, 180, 181, 182, 185
;; rd kill (12)
164, 165, 170, 171, 177, 178, 179, 180, 181, 182, 185, 186
;; DU chains for insn luid 0 uid 7
;; reg 121 { u19(bb 3 insn 17) u15(bb 3 insn 15) u12(bb 3 insn 12) }
;; DU chains for insn luid 1 uid 8
;; reg 124 { u18(bb 3 insn 16) u16(bb 3 insn 15) u13(bb 3 insn 12) }
;; DU chains for insn luid 2 uid 73
;; reg 145 { u4(bb 2 insn 75) }
;; DU chains for insn luid 3 uid 75
;; reg 148 { u14(bb 3 insn 12) u6(bb 2 insn 70) }
;; DU chains for insn luid 4 uid 76
;; reg 150 { u5(bb 2 insn 78) }
;; DU chains for insn luid 5 uid 78
;; reg 147 { u17(bb 3 insn 15) u7(bb 2 insn 69) }
;; DU chains for insn luid 6 uid 70
;; reg 154 { u29(bb 5 insn 30) }
;; DU chains for insn luid 7 uid 69
;; reg 155 { u28(bb 5 insn 29) }
;; DU chains for insn luid 8 uid 91
;; reg 157 { }
;; Pred edge ENTRY [100.0%] (fallthru)
(note:HI 5 3 4 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(note:HI 4 5 7 2 NOTE_INSN_FUNCTION_BEG)
(insn:HI 7 4 8 2 sms-6.c:21 (set (reg:SI 121 [ ivtmp.91 ])
(const_int 0 [0x0])) 334 {*movsi_internal1} (nil))
(insn:HI 8 7 73 2 sms-6.c:21 (set (reg/v:SI 124 [ i ])
(const_int 0 [0x0])) 334 {*movsi_internal1} (nil))
(insn:HI 73 8 75 2 (set (reg/f:SI 145)
(high:SI (symbol_ref:SI ("c") [flags 0x80] <var_decl 0x2a95671640 c>))) 437 {elf_high} (nil))
(insn:HI 75 73 76 2 (set (reg/f:SI 148)
(lo_sum:SI (reg/f:SI 145)
(symbol_ref:SI ("c") [flags 0x80] <var_decl 0x2a95671640 c>))) 438 {elf_low} (expr_list:REG_DEAD (reg/f:SI 145)
(expr_list:REG_EQUAL (symbol_ref:SI ("c") [flags 0x80] <var_decl 0x2a95671640 c>)
(nil))))
(insn:HI 76 75 78 2 (set (reg/f:SI 150)
(high:SI (symbol_ref:SI ("b") [flags 0x80] <var_decl 0x2a956715a0 b>))) 437 {elf_high} (nil))
(insn:HI 78 76 70 2 (set (reg/f:SI 147)
(lo_sum:SI (reg/f:SI 150)
(symbol_ref:SI ("b") [flags 0x80] <var_decl 0x2a956715a0 b>))) 438 {elf_low} (expr_list:REG_DEAD (reg/f:SI 150)
(expr_list:REG_EQUAL (symbol_ref:SI ("b") [flags 0x80] <var_decl 0x2a956715a0 b>)
(nil))))
(insn:HI 70 78 69 2 sms-6.c:25 (set (reg/f:SI 154)
(reg/f:SI 148)) 334 {*movsi_internal1} (expr_list:REG_EQUAL (symbol_ref:SI ("c") [flags 0x80] <var_decl 0x2a95671640 c>)
(nil)))
(insn:HI 69 70 91 2 sms-6.c:25 (set (reg/f:SI 155)
(reg/f:SI 147)) 334 {*movsi_internal1} (expr_list:REG_EQUAL (symbol_ref:SI ("b") [flags 0x80] <var_decl 0x2a956715a0 b>)
(nil)))
(insn:HI 91 69 18 2 sms-6.c:25 (set (reg:SI 157)
(const_int 100 [0x64])) 334 {*movsi_internal1} (nil))
;; End of basic block 2 -> ( 3)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; rd out (31)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 81, 84, 163, 165, 171, 177, 178, 179, 180, 181, 182, 185
;; UD chains for artificial uses
;; reg 1 { d2(bb 0 insn -1) }
;; reg 31 { d40(bb 0 insn -1) }
;; reg 67 { d84(bb 0 insn -1) }
;; reg 113 { d163(bb 0 insn -1) }
;; UD chains for insn luid 3 uid 75
;; reg 145 { d177(bb 2 insn 73) }
;; UD chains for insn luid 5 uid 78
;; reg 150 { d180(bb 2 insn 76) }
;; UD chains for insn luid 6 uid 70
;; reg 148 { d179(bb 2 insn 75) }
;; UD chains for insn luid 7 uid 69
;; reg 147 { d178(bb 2 insn 78) }
;; Succ edge 3 [100.0%] (fallthru)
;; Start of basic block ( 2 4) -> 3
;; bb 3 artificial_defs: { }
;; bb 3 artificial_uses: { u8(1){ d2(bb 0 insn -1) }u9(31){ d40(bb 0 insn -1) }u10(67){ d84(bb 0 insn -1) }u11(113){ d163(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 157
;; lr def 121 124 157
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; live gen 121 124 157
;; live kill
;; rd in (34)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 81, 84, 163, 164, 165, 170, 171, 177, 178, 179, 180, 181, 182, 185, 186
;; rd gen (3)
164, 170, 186
;; rd kill (6)
164, 165, 170, 171, 185, 186
;; DU chains for insn luid 2 uid 16
;; reg 124 { u18(bb 3 insn 16) u16(bb 3 insn 15) u13(bb 3 insn 12) }
;; DU chains for insn luid 3 uid 17
;; reg 121 { u19(bb 3 insn 17) u15(bb 3 insn 15) u12(bb 3 insn 12) }
;; DU chains for insn luid 0 uid 90
;; reg 157 { }
;; Pred edge 2 [100.0%] (fallthru)
;; Pred edge 4 [100.0%]
(code_label:HI 18 91 9 3 9 "" [1 uses])
(note:HI 9 18 12 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
(insn:HI 12 9 15 3 sms-6.c:25 (set (mem/s:SI (plus:SI (reg/f:SI 148)
(reg:SI 121 [ ivtmp.91 ])) [2 c S4 A32])
(reg/v:SI 124 [ i ])) 334 {*movsi_internal1} (nil))
(insn:HI 15 12 16 3 sms-6.c:25 (set (mem/s:SI (plus:SI (reg/f:SI 147)
(reg:SI 121 [ ivtmp.91 ])) [2 b S4 A32])
(reg/v:SI 124 [ i ])) 334 {*movsi_internal1} (nil))
(insn:HI 16 15 17 3 sms-6.c:23 (set (reg/v:SI 124 [ i ])
(plus:SI (reg/v:SI 124 [ i ])
(const_int 1 [0x1]))) 82 {*addsi3_internal1} (nil))
(insn:HI 17 16 90 3 sms-6.c:23 (set (reg:SI 121 [ ivtmp.91 ])
(plus:SI (reg:SI 121 [ ivtmp.91 ])
(const_int 4 [0x4]))) 82 {*addsi3_internal1} (nil))
(jump_insn:HI 90 17 99 3 sms-6.c:23 (parallel [
(set (pc)
(if_then_else (eq (reg:SI 157)
(const_int 1 [0x1]))
(label_ref:SI 100)
(pc)))
(set (reg:SI 157)
(plus:SI (reg:SI 157)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 592 {*ctrsi_internal5} (expr_list:REG_BR_PROB (const_int 101 [0x65])
(nil)))
;; End of basic block 3 -> ( 4 5)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 121 124 147 148 154 155 157
;; rd out (31)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 81, 84, 163, 164, 170, 177, 178, 179, 180, 181, 182, 186
;; UD chains for artificial uses
;; reg 1 { d2(bb 0 insn -1) }
;; reg 31 { d40(bb 0 insn -1) }
;; reg 67 { d84(bb 0 insn -1) }
;; reg 113 { d163(bb 0 insn -1) }
;; UD chains for insn luid 0 uid 12
;; reg 121 { d165(bb 2 insn 7) d164(bb 3 insn 17) }
;; reg 124 { d171(bb 2 insn 8) d170(bb 3 insn 16) }
;; reg 148 { d179(bb 2 insn 75) }
;; UD chains for insn luid 1 uid 15
;; reg 121 { d165(bb 2 insn 7) d164(bb 3 insn 17) }
;; reg 124 { d171(bb 2 insn 8) d170(bb 3 insn 16) }
;; reg 147 { d178(bb 2 insn 78) }
;; UD chains for insn luid 2 uid 16
;; reg 124 { d171(bb 2 insn 8) d170(bb 3 insn 16) }
;; UD chains for insn luid 3 uid 17
;; reg 121 { d165(bb 2 insn 7) d164(bb 3 insn 17) }
;; UD chains for insn luid 0 uid 90
;; reg 157 { }
;; reg 157 { }
;; Succ edge 4 [99.0%] (fallthru,dfs_back)
;; Succ edge 5 [1.0%] (loop_exit)
;; Start of basic block ( 3) -> 4
;; bb 4 artificial_defs: { }
;; bb 4 artificial_uses: { u-1(1){ }u-1(31){ }u-1(67){ }u-1(113){ }}
;; Pred edge 3 [99.0%] (fallthru,dfs_back)
(code_label 99 90 98 4 16 "" [0 uses])
(note 98 99 101 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
(jump_insn 101 98 102 4 (set (pc)
(label_ref 18)) -1 (nil))
;; End of basic block 4 -> ( 3)
;; UD chains for artificial uses
;; reg 1 { }
;; reg 31 { }
;; reg 67 { }
;; reg 113 { }
;; Succ edge 3 [100.0%]
(barrier 102 101 100)
;; Start of basic block ( 3) -> 5
;; bb 5 artificial_defs: { }
;; bb 5 artificial_uses: { u22(1){ d2(bb 0 insn -1) }u23(31){ d40(bb 0 insn -1) }u24(67){ d84(bb 0 insn -1) }u25(113){ d163(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 154 155
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 154 155
;; lr def 0 [0] 2 [2] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 12 [12] 13 [13] 32 [0] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 41 [9] 42 [10] 43 [11] 44 [12] 45 [13] 64 [mq] 65 [lr] 66 [ctr] 68 [0] 69 [1] 73 [5] 74 [6] 75 [7] 76 [xer] 77 [0] 78 [1] 79 [2] 80 [3] 81 [4] 82 [5] 83 [6] 84 [7] 85 [8] 86 [9] 87 [10] 88 [11] 89 [12] 90 [13] 91 [14] 92 [15] 93 [16] 94 [17] 95 [18] 96 [19] 97 [20] 98 [21] 99 [22] 100 [23] 101 [24] 102 [25] 103 [26] 104 [27] 105 [28] 106 [29] 107 [30] 108 [31] 109 [vrsave] 122 123 131 132 156
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 154 155
;; live gen 3 [3] 4 [4] 5 [5] 122 123 131 132 156
;; live kill 65 [lr]
;; rd in (31)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 81, 84, 163, 164, 170, 177, 178, 179, 180, 181, 182, 186
;; rd gen (5)
166, 169, 172, 173, 183
;; rd kill (11)
79, 80, 81, 166, 167, 168, 169, 172, 173, 183, 184
;; DU chains for insn luid 0 uid 22
;; reg 132 { u26(bb 5 insn 23) }
;; DU chains for insn luid 1 uid 23
;; reg 131 { u34(bb 5 insn 33) u27(bb 5 insn 28) }
;; DU chains for insn luid 2 uid 28
;; reg 3 { u31(bb 5 insn 31) }
;; DU chains for insn luid 3 uid 29
;; reg 4 { u32(bb 5 insn 31) }
;; DU chains for insn luid 4 uid 30
;; reg 5 { u33(bb 5 insn 31) }
;; DU chains for insn luid 5 uid 31
;; reg 0 { }
;; reg 2 { }
;; reg 3 { }
;; reg 4 { }
;; reg 5 { }
;; reg 6 { }
;; reg 7 { }
;; reg 8 { }
;; reg 9 { }
;; reg 10 { }
;; reg 11 { }
;; reg 12 { }
;; reg 13 { }
;; reg 32 { }
;; reg 33 { }
;; reg 34 { }
;; reg 35 { }
;; reg 36 { }
;; reg 37 { }
;; reg 38 { }
;; reg 39 { }
;; reg 40 { }
;; reg 41 { }
;; reg 42 { }
;; reg 43 { }
;; reg 44 { }
;; reg 45 { }
;; reg 64 { }
;; reg 66 { }
;; reg 68 { }
;; reg 69 { }
;; reg 73 { }
;; reg 74 { }
;; reg 75 { }
;; reg 76 { }
;; reg 77 { }
;; reg 78 { }
;; reg 79 { }
;; reg 80 { }
;; reg 81 { }
;; reg 82 { }
;; reg 83 { }
;; reg 84 { }
;; reg 85 { }
;; reg 86 { }
;; reg 87 { }
;; reg 88 { }
;; reg 89 { }
;; reg 90 { }
;; reg 91 { }
;; reg 92 { }
;; reg 93 { }
;; reg 94 { }
;; reg 95 { }
;; reg 96 { }
;; reg 97 { }
;; reg 98 { }
;; reg 99 { }
;; reg 100 { }
;; reg 101 { }
;; reg 102 { }
;; reg 103 { }
;; reg 104 { }
;; reg 105 { }
;; reg 106 { }
;; reg 107 { }
;; reg 108 { }
;; reg 109 { }
;; reg 65 { }
;; DU chains for insn luid 6 uid 33
;; reg 122 { u42(bb 6 insn 38) u39(bb 6 insn 36) }
;; DU chains for insn luid 7 uid 34
;; reg 123 { u40(bb 6 insn 37) }
;; DU chains for insn luid 8 uid 89
;; reg 156 { }
;; Pred edge 3 [1.0%] (loop_exit)
(code_label 100 102 21 5 17 "" [1 uses])
(note:HI 21 100 22 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(insn:HI 22 21 23 5 sms-6.c:27 (set (reg/f:SI 132)
(high:SI (symbol_ref:SI ("a") [flags 0x80] <var_decl 0x2a95671500 a>))) 437 {elf_high} (nil))
(insn:HI 23 22 28 5 sms-6.c:27 (set (reg/f:SI 131)
(lo_sum:SI (reg/f:SI 132)
(symbol_ref:SI ("a") [flags 0x80] <var_decl 0x2a95671500 a>))) 438 {elf_low} (expr_list:REG_DEAD (reg/f:SI 132)
(expr_list:REG_EQUAL (symbol_ref:SI ("a") [flags 0x80] <var_decl 0x2a95671500 a>)
(nil))))
(insn:HI 28 23 29 5 sms-6.c:27 (set (reg:SI 3 3)
(reg/f:SI 131)) 334 {*movsi_internal1} (expr_list:REG_EQUAL (symbol_ref:SI ("a") [flags 0x80] <var_decl 0x2a95671500 a>)
(nil)))
(insn:HI 29 28 30 5 sms-6.c:27 (set (reg:SI 4 4)
(reg/f:SI 155)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg/f:SI 155)
(expr_list:REG_EQUAL (symbol_ref:SI ("b") [flags 0x80] <var_decl 0x2a956715a0 b>)
(nil))))
(insn:HI 30 29 31 5 sms-6.c:27 (set (reg:SI 5 5)
(reg/f:SI 154)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg/f:SI 154)
(expr_list:REG_EQUAL (symbol_ref:SI ("c") [flags 0x80] <var_decl 0x2a95671640 c>)
(nil))))
(call_insn:HI 31 30 33 5 sms-6.c:27 (parallel [
(call (mem:SI (symbol_ref:SI ("foo") [flags 0x3] <function_decl 0x2a95658d00 foo>) [0 S4 A8])
(const_int 0 [0x0]))
(use (const_int 0 [0x0]))
(clobber (reg:SI 65 lr))
]) 439 {*call_local32} (expr_list:REG_DEAD (reg:SI 5 5)
(expr_list:REG_DEAD (reg:SI 4 4)
(expr_list:REG_DEAD (reg:SI 3 3)
(expr_list:REG_EH_REGION (const_int 0 [0x0])
(nil)))))
(expr_list:REG_DEP_TRUE (use (reg:SI 5 5))
(expr_list:REG_DEP_TRUE (use (reg:SI 4 4))
(expr_list:REG_DEP_TRUE (use (reg:SI 3 3))
(nil)))))
(insn:HI 33 31 34 5 sms-6.c:27 (set (reg/f:SI 122 [ ivtmp.82 ])
(reg/f:SI 131)) 334 {*movsi_internal1} (expr_list:REG_DEAD (reg/f:SI 131)
(expr_list:REG_EQUAL (symbol_ref:SI ("a") [flags 0x80] <var_decl 0x2a95671500 a>)
(nil))))
(insn:HI 34 33 89 5 sms-6.c:27 (set (reg/v:SI 123 [ res ])
(const_int 0 [0x0])) 334 {*movsi_internal1} (nil))
(insn:HI 89 34 39 5 (set (reg:SI 156)
(const_int 100 [0x64])) 334 {*movsi_internal1} (nil))
;; End of basic block 5 -> ( 6)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; rd out (35)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 166, 169, 170, 172, 173, 177, 178, 179, 180, 181, 182, 183, 186
;; UD chains for artificial uses
;; reg 1 { d2(bb 0 insn -1) }
;; reg 31 { d40(bb 0 insn -1) }
;; reg 67 { d84(bb 0 insn -1) }
;; reg 113 { d163(bb 0 insn -1) }
;; UD chains for insn luid 1 uid 23
;; reg 132 { d173(bb 5 insn 22) }
;; UD chains for insn luid 2 uid 28
;; reg 131 { d172(bb 5 insn 23) }
;; UD chains for insn luid 3 uid 29
;; reg 155 { d182(bb 2 insn 69) }
;; UD chains for insn luid 4 uid 30
;; reg 154 { d181(bb 2 insn 70) }
;; UD chains for insn luid 5 uid 31
;; reg 1 { d2(bb 0 insn -1) }
;; reg 3 { d8(bb 5 insn 28) }
;; reg 4 { d10(bb 5 insn 29) }
;; reg 5 { d14(bb 5 insn 30) }
;; UD chains for insn luid 6 uid 33
;; reg 131 { d172(bb 5 insn 23) }
;; Succ edge 6 [100.0%] (fallthru)
;; Start of basic block ( 5 7) -> 6
;; bb 6 artificial_defs: { }
;; bb 6 artificial_uses: { u35(1){ d2(bb 0 insn -1) }u36(31){ d40(bb 0 insn -1) }u37(67){ d84(bb 0 insn -1) }u38(113){ d163(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; lr def 122 123 138 156
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; live gen 122 123 138 156
;; live kill
;; rd in (39)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 166, 167, 168, 169, 170, 172, 173, 174, 177, 178, 179, 180, 181, 182, 183, 184, 186
;; rd gen (4)
167, 168, 174, 184
;; rd kill (7)
166, 167, 168, 169, 174, 183, 184
;; DU chains for insn luid 0 uid 36
;; reg 138 { u41(bb 6 insn 37) }
;; DU chains for insn luid 1 uid 37
;; reg 123 { u49(bb 8 insn 46) u40(bb 6 insn 37) }
;; DU chains for insn luid 2 uid 38
;; reg 122 { u42(bb 6 insn 38) u39(bb 6 insn 36) }
;; DU chains for insn luid 0 uid 88
;; reg 156 { }
;; Pred edge 5 [100.0%] (fallthru)
;; Pred edge 7 [100.0%]
(code_label:HI 39 89 35 6 10 "" [1 uses])
(note:HI 35 39 36 6 [bb 6] NOTE_INSN_BASIC_BLOCK)
(insn:HI 36 35 37 6 sms-6.c:32 (set (reg:SI 138)
(mem/s:SI (reg/f:SI 122 [ ivtmp.82 ]) [2 a S4 A32])) 334 {*movsi_internal1} (nil))
(insn:HI 37 36 38 6 sms-6.c:32 (set (reg/v:SI 123 [ res ])
(plus:SI (reg/v:SI 123 [ res ])
(reg:SI 138))) 82 {*addsi3_internal1} (expr_list:REG_DEAD (reg:SI 138)
(nil)))
(insn:HI 38 37 88 6 sms-6.c:32 (set (reg/f:SI 122 [ ivtmp.82 ])
(plus:SI (reg/f:SI 122 [ ivtmp.82 ])
(const_int 4 [0x4]))) 82 {*addsi3_internal1} (nil))
(jump_insn:HI 88 38 97 6 sms-6.c:30 (parallel [
(set (pc)
(if_then_else (eq (reg:SI 156)
(const_int 1 [0x1]))
(label_ref:SI 103)
(pc)))
(set (reg:SI 156)
(plus:SI (reg:SI 156)
(const_int -1 [0xffffffffffffffff])))
(clobber (scratch:CC))
(clobber (scratch:SI))
]) 592 {*ctrsi_internal5} (expr_list:REG_BR_PROB (const_int 101 [0x65])
(nil)))
;; End of basic block 6 -> ( 7 8)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp] 122 123 156
;; rd out (36)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 167, 168, 170, 172, 173, 174, 177, 178, 179, 180, 181, 182, 184, 186
;; UD chains for artificial uses
;; reg 1 { d2(bb 0 insn -1) }
;; reg 31 { d40(bb 0 insn -1) }
;; reg 67 { d84(bb 0 insn -1) }
;; reg 113 { d163(bb 0 insn -1) }
;; UD chains for insn luid 0 uid 36
;; reg 122 { d167(bb 6 insn 38) d166(bb 5 insn 33) }
;; UD chains for insn luid 1 uid 37
;; reg 123 { d169(bb 5 insn 34) d168(bb 6 insn 37) }
;; reg 138 { d174(bb 6 insn 36) }
;; UD chains for insn luid 2 uid 38
;; reg 122 { d167(bb 6 insn 38) d166(bb 5 insn 33) }
;; UD chains for insn luid 0 uid 88
;; reg 156 { }
;; reg 156 { }
;; Succ edge 7 [99.0%] (fallthru,dfs_back)
;; Succ edge 8 [1.0%] (loop_exit)
;; Start of basic block ( 6) -> 7
;; bb 7 artificial_defs: { }
;; bb 7 artificial_uses: { u-1(1){ }u-1(31){ }u-1(67){ }u-1(113){ }}
;; Pred edge 6 [99.0%] (fallthru,dfs_back)
(code_label 97 88 96 7 15 "" [0 uses])
(note 96 97 104 7 [bb 7] NOTE_INSN_BASIC_BLOCK)
(jump_insn 104 96 105 7 (set (pc)
(label_ref 39)) -1 (nil))
;; End of basic block 7 -> ( 6)
;; UD chains for artificial uses
;; reg 1 { }
;; reg 31 { }
;; reg 67 { }
;; reg 113 { }
;; Succ edge 6 [100.0%]
(barrier 105 104 103)
;; Start of basic block ( 6) -> 8
;; bb 8 artificial_defs: { }
;; bb 8 artificial_uses: { u45(1){ d2(bb 0 insn -1) }u46(31){ d40(bb 0 insn -1) }u47(67){ d84(bb 0 insn -1) }u48(113){ d163(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp] 123
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp] 123
;; lr def 142 143 158
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp] 123
;; live gen 142 143 158
;; live kill
;; rd in (36)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 167, 168, 170, 172, 173, 174, 177, 178, 179, 180, 181, 182, 184, 186
;; rd gen (3)
175, 176, 187
;; rd kill (3)
175, 176, 187
;; DU chains for insn luid 0 uid 93
;; reg 158 { u-1(bb 8 insn 94) }
;; DU chains for insn luid 1 uid 94
;; reg 142 { u50(bb 8 insn 46) }
;; DU chains for insn luid 2 uid 46
;; reg 143 { u52(bb 8 insn 47) }
;; Pred edge 6 [1.0%] (loop_exit)
(code_label 103 105 44 8 18 "" [1 uses])
(note:HI 44 103 93 8 [bb 8] NOTE_INSN_BASIC_BLOCK)
(insn 93 44 94 8 sms-6.c:34 (set (reg:SI 158)
(const_int 327680 [0x50000])) -1 (nil))
(insn 94 93 46 8 sms-6.c:34 (set (reg:SI 142)
(ior:SI (reg:SI 158)
(const_int 670 [0x29e]))) -1 (expr_list:REG_DEAD (reg:SI 158)
(expr_list:REG_EQUAL (const_int 328350 [0x5029e])
(nil))))
(insn:HI 46 94 47 8 sms-6.c:34 (set (reg:CC 143)
(compare:CC (reg/v:SI 123 [ res ])
(reg:SI 142))) 484 {*cmpsi_internal1} (expr_list:REG_DEAD (reg:SI 142)
(expr_list:REG_DEAD (reg/v:SI 123 [ res ])
(expr_list:REG_EQUAL (compare:CC (reg/v:SI 123 [ res ])
(const_int 328350 [0x5029e]))
(nil)))))
(jump_insn:HI 47 46 48 8 sms-6.c:34 (set (pc)
(if_then_else (eq (reg:CC 143)
(const_int 0 [0x0]))
(label_ref 51)
(pc))) 573 {*rs6000.md:14186} (expr_list:REG_DEAD (reg:CC 143)
(expr_list:REG_BR_PROB (const_int 9996 [0x270c])
(nil))))
;; End of basic block 8 -> ( 9 10)
;; lr out 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live out 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; rd out (39)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 167, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 186, 187
;; UD chains for artificial uses
;; reg 1 { d2(bb 0 insn -1) }
;; reg 31 { d40(bb 0 insn -1) }
;; reg 67 { d84(bb 0 insn -1) }
;; reg 113 { d163(bb 0 insn -1) }
;; UD chains for insn luid 1 uid 94
;; reg 158 { d187(bb 8 insn 93) }
;; UD chains for insn luid 2 uid 46
;; reg 123 { d168(bb 6 insn 37) }
;; reg 142 { d175(bb 8 insn 94) }
;; eq_note reg 123 { }
;; UD chains for insn luid 3 uid 47
;; reg 143 { d176(bb 8 insn 46) }
;; Succ edge 9 [0.0%] (fallthru)
;; Succ edge 10 [100.0%]
;; Start of basic block ( 8) -> 9
;; bb 9 artificial_defs: { }
;; bb 9 artificial_uses: { u53(1){ d2(bb 0 insn -1) }u54(31){ d40(bb 0 insn -1) }u55(67){ d84(bb 0 insn -1) }u56(113){ d163(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr def 0 [0] 2 [2] 3 [3] 4 [4] 5 [5] 6 [6] 7 [7] 8 [8] 9 [9] 10 [10] 11 [11] 12 [12] 13 [13] 32 [0] 33 [1] 34 [2] 35 [3] 36 [4] 37 [5] 38 [6] 39 [7] 40 [8] 41 [9] 42 [10] 43 [11] 44 [12] 45 [13] 64 [mq] 65 [lr] 66 [ctr] 68 [0] 69 [1] 73 [5] 74 [6] 75 [7] 76 [xer] 77 [0] 78 [1] 79 [2] 80 [3] 81 [4] 82 [5] 83 [6] 84 [7] 85 [8] 86 [9] 87 [10] 88 [11] 89 [12] 90 [13] 91 [14] 92 [15] 93 [16] 94 [17] 95 [18] 96 [19] 97 [20] 98 [21] 99 [22] 100 [23] 101 [24] 102 [25] 103 [26] 104 [27] 105 [28] 106 [29] 107 [30] 108 [31] 109 [vrsave]
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live gen
;; live kill 65 [lr]
;; rd in (39)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 167, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 186, 187
;; rd gen (0)
;; rd kill (3)
79, 80, 81
;; DU chains for insn luid 0 uid 49
;; reg 0 { }
;; reg 2 { }
;; reg 3 { }
;; reg 4 { }
;; reg 5 { }
;; reg 6 { }
;; reg 7 { }
;; reg 8 { }
;; reg 9 { }
;; reg 10 { }
;; reg 11 { }
;; reg 12 { }
;; reg 13 { }
;; reg 32 { }
;; reg 33 { }
;; reg 34 { }
;; reg 35 { }
;; reg 36 { }
;; reg 37 { }
;; reg 38 { }
;; reg 39 { }
;; reg 40 { }
;; reg 41 { }
;; reg 42 { }
;; reg 43 { }
;; reg 44 { }
;; reg 45 { }
;; reg 64 { }
;; reg 66 { }
;; reg 68 { }
;; reg 69 { }
;; reg 73 { }
;; reg 74 { }
;; reg 75 { }
;; reg 76 { }
;; reg 77 { }
;; reg 78 { }
;; reg 79 { }
;; reg 80 { }
;; reg 81 { }
;; reg 82 { }
;; reg 83 { }
;; reg 84 { }
;; reg 85 { }
;; reg 86 { }
;; reg 87 { }
;; reg 88 { }
;; reg 89 { }
;; reg 90 { }
;; reg 91 { }
;; reg 92 { }
;; reg 93 { }
;; reg 94 { }
;; reg 95 { }
;; reg 96 { }
;; reg 97 { }
;; reg 98 { }
;; reg 99 { }
;; reg 100 { }
;; reg 101 { }
;; reg 102 { }
;; reg 103 { }
;; reg 104 { }
;; reg 105 { }
;; reg 106 { }
;; reg 107 { }
;; reg 108 { }
;; reg 109 { }
;; reg 65 { }
;; Pred edge 8 [0.0%] (fallthru)
(note:HI 48 47 49 9 [bb 9] NOTE_INSN_BASIC_BLOCK)
(call_insn:HI 49 48 50 9 sms-6.c:35 (parallel [
(call (mem:SI (symbol_ref:SI ("abort") [flags 0x41] <function_decl 0x2a9561ae00 abort>) [0 S4 A8])
(const_int 0 [0x0]))
(use (const_int 0 [0x0]))
(clobber (reg:SI 65 lr))
]) 457 {*call_nonlocal_sysvsi} (expr_list:REG_NORETURN (const_int 0 [0x0])
(expr_list:REG_EH_REGION (const_int 0 [0x0])
(nil)))
(nil))
;; End of basic block 9 -> ()
;; lr out 1 [1] 67 [ap] 113 [sfp]
;; live out 1 [1] 67 [ap] 113 [sfp]
;; rd out (39)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 167, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 186, 187
;; UD chains for artificial uses
;; reg 1 { d2(bb 0 insn -1) }
;; reg 31 { d40(bb 0 insn -1) }
;; reg 67 { d84(bb 0 insn -1) }
;; reg 113 { d163(bb 0 insn -1) }
;; UD chains for insn luid 0 uid 49
;; reg 1 { d2(bb 0 insn -1) }
(barrier:HI 50 49 51)
;; Start of basic block ( 8) -> 10
;; bb 10 artificial_defs: { }
;; bb 10 artificial_uses: { u58(1){ d2(bb 0 insn -1) }u59(31){ d40(bb 0 insn -1) }u60(67){ d84(bb 0 insn -1) }u61(113){ d163(bb 0 insn -1) }}
;; lr in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr use 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; lr def 3 [3]
;; live in 1 [1] 31 [31] 67 [ap] 113 [sfp]
;; live gen 3 [3]
;; live kill
;; rd in (39)
2, 9, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 167, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 186, 187
;; rd gen (1)
5
;; rd kill (5)
5, 6, 7, 8, 9
;; DU chains for insn luid 0 uid 57
;; reg 3 { u62(bb 10 insn 63) u64(bb 1 insn -1) }
;; Pred edge 8 [100.0%]
(code_label:HI 51 50 52 10 11 "" [1 uses])
(note:HI 52 51 57 10 [bb 10] NOTE_INSN_BASIC_BLOCK)
(insn:HI 57 52 63 10 sms-6.c:38 (set (reg/i:SI 3 3)
(const_int 0 [0x0])) 334 {*movsi_internal1} (nil))
(insn:HI 63 57 0 10 sms-6.c:38 (use (reg/i:SI 3 3)) -1 (nil))
;; End of basic block 10 -> ( 1)
;; lr out 1 [1] 3 [3] 31 [31] 67 [ap] 113 [sfp]
;; live out 1 [1] 3 [3] 31 [31] 67 [ap] 113 [sfp]
;; rd out (39)
2, 5, 13, 17, 20, 23, 26, 29, 32, 35, 40, 45, 48, 51, 54, 57, 60, 63, 66, 84, 163, 164, 167, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 186, 187
;; UD chains for artificial uses
;; reg 1 { d2(bb 0 insn -1) }
;; reg 31 { d40(bb 0 insn -1) }
;; reg 67 { d84(bb 0 insn -1) }
;; reg 113 { d163(bb 0 insn -1) }
;; UD chains for insn luid 1 uid 63
;; reg 3 { d5(bb 10 insn 57) }
;; Succ edge EXIT [100.0%] (fallthru)
starting the processing of deferred insns
ending the processing of deferred insns
^ permalink raw reply [flat|nested] 10+ messages in thread