public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Bingfeng Mei" <bmei@broadcom.com>
To: "Ayal Zaks" <ZAKS@il.ibm.com>
Cc: "Adrian Ashley" <aashley@broadcom.com>,
		"gcc@gcc.gnu.org" <gcc@gcc.gnu.org>
Subject: RE: Solve transitive closure issue in modulo scheduling
Date: Thu, 05 Feb 2009 10:45:00 -0000	[thread overview]
Message-ID: <7FB04A5C213E9943A72EE127DB74F0AD49E5D35DFF@SJEXCHCCR02.corp.ad.broadcom.com> (raw)
In-Reply-To: <OF3A353744.2AB2DDC2-ONC2257550.007B8218-C2257550.007FFD95@il.ibm.com>

[-- 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

  reply	other threads:[~2009-02-05 10:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-30 16:17 Bingfeng Mei
2009-02-01 23:18 ` Ayal Zaks
2009-02-05 10:45   ` Bingfeng Mei [this message]
2009-02-17 12:03     ` Ayal Zaks
2009-03-13  6:43       ` [PATCH] SMS - Pass the actual schedulable rows to compute_split_row Revital1 Eres
2009-06-22 14:10       ` Unnecessary regmoves in modulo scheduler? Bingfeng Mei
2009-06-23 13:41         ` Revital1 Eres
2009-06-23 13:48           ` Bingfeng Mei
2009-06-23 13:56             ` Revital1 Eres
2009-02-07 17:20 ` Solve transitive closure issue in modulo scheduling Daniel Berlin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7FB04A5C213E9943A72EE127DB74F0AD49E5D35DFF@SJEXCHCCR02.corp.ad.broadcom.com \
    --to=bmei@broadcom.com \
    --cc=ZAKS@il.ibm.com \
    --cc=aashley@broadcom.com \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).