Am 08.02.25 um 18:23 schrieb Jeff Law:


On 2/8/25 3:04 AM, Georg-Johann Lay wrote:


That test case from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116389#c7
still ICEs with that change in http://gcc.gnu.org/r15-7428

pr116389-red.c: In function 'func':
pr116389-red.c:20:1: error: insn does not satisfy its constraints:
    20 | }
       | ^
(insn 27 69 28 5 (set (mem/c:SI (plus:HI (reg/f:HI 28 r28)
                 (const_int 2 [0x2])) [4 %sfp+2 S4 A8])
         (reg:SI 30 r30)) "pr116389-red.c":16:19 146 {*movsi_split}
      (nil))
during RTL pass: postreload
pr116389-red.c:20:1: internal compiler error: in extract_constrain_insn, at recog.cc:2783

Reason is that R30 is the last GPR and can hold HImode at most,
but due to a paradoxical subreg, there is r30:SI.
Bummer as that was the kind of scenario it's supposed to fix.

What did that insn look like before IRA and for whatever pseudo was in that operand, what hard register did IRA think it should be allocated to?

jeff

The .ira dump has several paradoxical subregs like:

(insn 22 21 60 4 (set (reg/v:SI 51 [ val32 ])
(subreg:SI (reg:HI 53 [ t$val ]) 0)) "pr116389-red.c":14:14 146 {*movsi_split}

(insn 27 26 28 5 (set (reg/v:SI 51 [ val32 ])
(subreg:SI (reg/v:HI 52 [ diff ]) 0)) "pr116389-red.c":16:19 146 {*movsi_split}

(insn 35 34 36 7 (set (reg:HI 54 [ _7 ])
        (ashift:HI (subreg:HI (reg/v:SI 51 [ val32 ]) 0)
            (const_int 1 [0x1]))) "pr116389-red.c":18:13 667 {ashlhi3}

I don't know which one is causing the trouble.  Maybe the attached
dumps will help.

Johann
;; Function func (func, funcdef_no=0, decl_uid=1937, cgraph_uid=1, 
symbol_order=0)

Starting decreasing number of live ranges...
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
;; 1 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8
;; 2 succs { 3 8 }
;; 3 succs { 5 4 }
;; 4 succs { 6 }
;; 5 succs { 6 }
;; 6 succs { 7 8 }
;; 7 succs { 8 }
;; 8 succs { 1 }
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
Reg 56 uninteresting
Reg 53: def dominates all uses has unique first use
Reg 57: local to bb 2 def dominates all uses has unique first use
Reg 55 uninteresting
Reg 52: def dominates all uses has unique first use
Reg 58 uninteresting
Reg 59 uninteresting
Reg 54 uninteresting
Reg 52 not local to one basic block
Reg 53 not local to one basic block
Found def insn 57 for 57 to be not moveable
Building IRA IR
verify found no changes in insn with uid = 6.
verify found no changes in insn with uid = 9.
verify found no changes in insn with uid = 18.
verify found no changes in insn with uid = 30.
verify found no changes in insn with uid = 37.
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
init_insns for 55: (insn_list:REG_DEP_TRUE 62 (nil))
Reg 55 had equivalence, but can't be eliminated

Pass 0 for finding pseudo/allocno costs

    a2 (r59,l0) best GENERAL_REGS, allocno GENERAL_REGS
    a5 (r58,l0) best GENERAL_REGS, allocno GENERAL_REGS
    a7 (r57,l0) best GENERAL_REGS, allocno GENERAL_REGS
    a8 (r56,l0) best POINTER_REGS, allocno POINTER_REGS
    a6 (r55,l0) best GENERAL_REGS, allocno GENERAL_REGS
    a0 (r54,l0) best GENERAL_REGS, allocno GENERAL_REGS
    a4 (r53,l0) best GENERAL_REGS, allocno GENERAL_REGS
    a3 (r52,l0) best GENERAL_REGS, allocno GENERAL_REGS
    a1 (r51,l0) best GENERAL_REGS, allocno GENERAL_REGS

  a0(r54,l0) costs: POINTER_X_REGS:2000 POINTER_Z_REGS:2000 POINTER_REGS:2000 
ADDW_REGS:2000 SIMPLE_LD_REGS:2000 GENERAL_REGS:2000 MEM:8000
  a1(r51,l0) costs: ADDW_REGS:0 SIMPLE_LD_REGS:0 GENERAL_REGS:0 MEM:6000
  a2(r59,l0) costs: POINTER_X_REGS:2000 POINTER_Z_REGS:2000 POINTER_REGS:2000 
ADDW_REGS:2000 SIMPLE_LD_REGS:2000 GENERAL_REGS:2000 MEM:8000
  a3(r52,l0) costs: ADDW_REGS:6000 SIMPLE_LD_REGS:6000 GENERAL_REGS:6000 
MEM:11000
  a4(r53,l0) costs: ADDW_REGS:0 SIMPLE_LD_REGS:0 GENERAL_REGS:0 MEM:5000
  a5(r58,l0) costs: POINTER_X_REGS:2000 POINTER_Z_REGS:2000 POINTER_REGS:2000 
ADDW_REGS:2000 SIMPLE_LD_REGS:2000 GENERAL_REGS:2000 MEM:8000
  a6(r55,l0) costs: POINTER_X_REGS:8000 POINTER_Z_REGS:8000 POINTER_REGS:8000 
ADDW_REGS:8000 SIMPLE_LD_REGS:8000 GENERAL_REGS:8000 MEM:20000
  a7(r57,l0) costs: POINTER_X_REGS:8000 POINTER_Z_REGS:8000 POINTER_REGS:8000 
ADDW_REGS:8000 SIMPLE_LD_REGS:8000 GENERAL_REGS:8000 MEM:18000
  a8(r56,l0) costs: POINTER_X_REGS:2000 POINTER_Z_REGS:2000 POINTER_REGS:2000 
ADDW_REGS:4000 SIMPLE_LD_REGS:4000 GENERAL_REGS:4000 MEM:8000


Pass 1 for finding pseudo/allocno costs

    r59: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS
    r58: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS
    r57: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS
    r56: preferred POINTER_REGS, alternative GENERAL_REGS, allocno GENERAL_REGS
    r55: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS
    r54: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS
    r53: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS
    r52: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS
    r51: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS

  a0(r54,l0) costs: POINTER_X_REGS:2000 POINTER_Z_REGS:2000 POINTER_REGS:2000 
ADDW_REGS:2000 SIMPLE_LD_REGS:2000 GENERAL_REGS:2000 MEM:8000
  a1(r51,l0) costs: ADDW_REGS:0 SIMPLE_LD_REGS:0 GENERAL_REGS:0 MEM:20000
  a2(r59,l0) costs: POINTER_X_REGS:2000 POINTER_Z_REGS:2000 POINTER_REGS:2000 
ADDW_REGS:2000 SIMPLE_LD_REGS:2000 GENERAL_REGS:2000 MEM:8000
  a3(r52,l0) costs: ADDW_REGS:6000 SIMPLE_LD_REGS:6000 GENERAL_REGS:6000 
MEM:18000
  a4(r53,l0) costs: ADDW_REGS:0 SIMPLE_LD_REGS:0 GENERAL_REGS:0 MEM:12000
  a5(r58,l0) costs: POINTER_X_REGS:2000 POINTER_Z_REGS:2000 POINTER_REGS:2000 
ADDW_REGS:2000 SIMPLE_LD_REGS:2000 GENERAL_REGS:2000 MEM:8000
  a6(r55,l0) costs: POINTER_X_REGS:8000 POINTER_Z_REGS:8000 POINTER_REGS:8000 
ADDW_REGS:8000 SIMPLE_LD_REGS:8000 GENERAL_REGS:8000 MEM:20000
  a7(r57,l0) costs: POINTER_X_REGS:8000 POINTER_Z_REGS:8000 POINTER_REGS:8000 
ADDW_REGS:8000 SIMPLE_LD_REGS:8000 GENERAL_REGS:8000 MEM:18000
  a8(r56,l0) costs: POINTER_REGS:2000 ADDW_REGS:4000 SIMPLE_LD_REGS:4000 
GENERAL_REGS:4000 MEM:8000

   Insn 37(l0): point = 1
   Insn 36(l0): point = 3
   Insn 35(l0): point = 5
   Insn 33(l0): point = 8
   Insn 59(l0): point = 10
   Insn 30(l0): point = 12
   Insn 27(l0): point = 15
   Insn 60(l0): point = 18
   Insn 22(l0): point = 20
   Insn 20(l0): point = 23
   Insn 58(l0): point = 25
   Insn 18(l0): point = 27
   Insn 12(l0): point = 30
   Insn 11(l0): point = 32
   Insn 62(l0): point = 34
   Insn 57(l0): point = 36
   Insn 9(l0): point = 38
   Insn 8(l0): point = 40
   Insn 56(l0): point = 42
   Insn 6(l0): point = 44
   Insn 2(l0): point = 46
 a0(r54 [0]): [4..5]
 a0(r54 [1]): [4..5]
 a1(r51): [18..20] [6..15]
 a2(r59 [0]): [9..10]
 a2(r59 [1]): [9..10]
 a3(r52 [0]): [23..32] [16..17]
 a3(r52 [1]): [23..32] [16..17]
 a4(r53 [0]): [21..40]
 a4(r53 [1]): [21..40]
 a5(r58 [0]): [24..25]
 a5(r58 [1]): [24..25]
 a6(r55 [0]): [31..34]
 a6(r55 [1]): [31..34]
 a7(r57 [0]): [31..36]
 a7(r57 [1]): [31..36]
 a8(r56 [0]): [41..42]
 a8(r56 [1]): [41..42]
Compressing live ranges: from 49 to 14 - 28%
Ranges after the compression:
 a0(r54 [0]): [0..1]
 a0(r54 [1]): [0..1]
 a1(r51): [6..7] [2..3]
 a2(r59 [0]): [2..3]
 a2(r59 [1]): [2..3]
 a3(r52 [0]): [8..11] [4..5]
 a3(r52 [1]): [8..11] [4..5]
 a4(r53 [0]): [8..11]
 a4(r53 [1]): [8..11]
 a5(r58 [0]): [8..9]
 a5(r58 [1]): [8..9]
 a6(r55 [0]): [10..11]
 a6(r55 [1]): [10..11]
 a7(r57 [0]): [10..11]
 a7(r57 [1]): [10..11]
 a8(r56 [0]): [12..13]
 a8(r56 [1]): [12..13]
+++Allocating 136 bytes for conflict table (uncompressed size 136)
;; a0(r54,l0) conflicts:
;;   subobject 0:
;;     total conflict hard regs:
;;     conflict hard regs:


;;   subobject 1:
;;     total conflict hard regs:
;;     conflict hard regs:

;; a1(r51,l0) conflicts: a2(r59,w0,l0) a2(r59,w1,l0)
;;     total conflict hard regs: 20-27 30-31
;;     conflict hard regs: 20-27 30-31

;; a2(r59,l0) conflicts:
;;   subobject 0: a1(r51,l0)
;;     total conflict hard regs:
;;     conflict hard regs:


;;   subobject 1: a1(r51,l0)
;;     total conflict hard regs:
;;     conflict hard regs:

;; a3(r52,l0) conflicts:
;;   subobject 0: a5(r58,w0,l0) a5(r58,w1,l0) a4(r53,w0,l0) a4(r53,w1,l0) 
a6(r55,w0,l0) a6(r55,w1,l0) a7(r57,w0,l0) a7(r57,w1,l0)
;;     total conflict hard regs: 20-27 29-31
;;     conflict hard regs: 20-27 29-31


;;   subobject 1: a5(r58,w0,l0) a4(r53,w0,l0) a6(r55,w0,l0) a7(r57,w0,l0)
;;     total conflict hard regs: 20-27 29-31
;;     conflict hard regs: 20-27 29-31

;; a4(r53,l0) conflicts:
;;   subobject 0: a3(r52,w0,l0) a3(r52,w1,l0) a5(r58,w0,l0) a5(r58,w1,l0) 
a6(r55,w0,l0) a6(r55,w1,l0) a7(r57,w0,l0) a7(r57,w1,l0)
;;     total conflict hard regs: 20-27 29-31
;;     conflict hard regs: 20-27 29-31


;;   subobject 1: a3(r52,w0,l0) a5(r58,w0,l0) a6(r55,w0,l0) a7(r57,w0,l0)
;;     total conflict hard regs: 20-27 29-31
;;     conflict hard regs: 20-27 29-31

;; a5(r58,l0) conflicts:
;;   subobject 0: a3(r52,w0,l0) a3(r52,w1,l0) a4(r53,w0,l0) a4(r53,w1,l0)
;;     total conflict hard regs:
;;     conflict hard regs:


;;   subobject 1: a3(r52,w0,l0) a4(r53,w0,l0)
;;     total conflict hard regs:
;;     conflict hard regs:

;; a6(r55,l0) conflicts:
;;   subobject 0: a3(r52,w0,l0) a3(r52,w1,l0) a4(r53,w0,l0) a4(r53,w1,l0) 
a7(r57,w0,l0) a7(r57,w1,l0)
;;     total conflict hard regs:
;;     conflict hard regs:


;;   subobject 1: a3(r52,w0,l0) a4(r53,w0,l0) a7(r57,w0,l0)
;;     total conflict hard regs:
;;     conflict hard regs:

;; a7(r57,l0) conflicts:
;;   subobject 0: a3(r52,w0,l0) a3(r52,w1,l0) a4(r53,w0,l0) a4(r53,w1,l0) 
a6(r55,w0,l0) a6(r55,w1,l0)
;;     total conflict hard regs: 29
;;     conflict hard regs: 29


;;   subobject 1: a3(r52,w0,l0) a4(r53,w0,l0) a6(r55,w0,l0)
;;     total conflict hard regs: 29
;;     conflict hard regs: 29

;; a8(r56,l0) conflicts:
;;   subobject 0:
;;     total conflict hard regs: 29
;;     conflict hard regs: 29


;;   subobject 1:
;;     total conflict hard regs: 29
;;     conflict hard regs: 29


  cp0:a0(r54)<->a1(r51)@1000:constraint
  cp1:a1(r51)<->a3(r52)@1000:move
  cp2:a1(r51)<->a4(r53)@1000:move
  pref0:a0(r54)<-hr24@2000
  pref1:a2(r59)<-hr24@2000
  pref2:a5(r58)<-hr24@2000
  pref3:a8(r56)<-hr24@2000
  pref4:a7(r57)<-hr24@2000
  regions=1, blocks=9, points=14
    allocnos=9 (big 8), copies=3, conflicts=0, ranges=20

**** Allocnos coloring:


  Loop 0 (parent -1, header bb2, depth 0)
    bbs: 8 7 6 5 4 3 2
    all: 0r54 1r51 2r59 3r52 4r53 5r58 6r55 7r57 8r56
    modified regnos: 51 52 53 54 55 56 57 58 59
    border:
    Pressure: GENERAL_REGS=8
    Hard reg set forest:
      0:( 18-27 29-31)@84000
        1:( 18-27 30-31)@44000
          2:( 18-19)@32000
            3:( 18)@12000
      Allocno a0r54 of GENERAL_REGS(14) has 13 avail. regs  18-27 29-31, node:  
18-27 29-31 obj 0 (confl regs =  0-17 28 32-36),  obj 1 (confl regs =  0-17 28 
32-36)
      Allocno a1r51 of GENERAL_REGS(14) has 2 avail. regs  18-19, node:  18-19 
(confl regs =  0-17 20-28 30-36)
      Allocno a2r59 of GENERAL_REGS(14) has 13 avail. regs  18-27 29-31, node:  
18-27 29-31 obj 0 (confl regs =  0-17 28 32-36),  obj 1 (confl regs =  0-17 28 
32-36)
      Allocno a3r52 of GENERAL_REGS(14) has 2 avail. regs  18-19, node:  18-19 
obj 0 (confl regs =  0-17 20-36),  obj 1 (confl regs =  0-17 20-36)
      Allocno a4r53 of GENERAL_REGS(14) has 1 avail. regs  18, node:  18 obj 0 
(confl regs =  0-17 20-36),  obj 1 (confl regs =  0-17 20-36)
      Allocno a5r58 of GENERAL_REGS(14) has 13 avail. regs  18-27 29-31, node:  
18-27 29-31 obj 0 (confl regs =  0-17 28 32-36),  obj 1 (confl regs =  0-17 28 
32-36)
      Allocno a6r55 of GENERAL_REGS(14) has 13 avail. regs  18-27 29-31, node:  
18-27 29-31 obj 0 (confl regs =  0-17 28 32-36),  obj 1 (confl regs =  0-17 28 
32-36)
      Allocno a7r57 of GENERAL_REGS(14) has 12 avail. regs  18-27 30-31, node:  
18-27 30-31 obj 0 (confl regs =  0-17 28-29 32-36),  obj 1 (confl regs =  0-17 
28-29 32-36)
      Allocno a8r56 of GENERAL_REGS(14) has 12 avail. regs  18-27 30-31, node:  
18-27 30-31 obj 0 (confl regs =  0-17 28-29 32-36),  obj 1 (confl regs =  0-17 
28-29 32-36)
      Forming thread from colorable bucket:
        Forming thread by copy 0:a0r54-a1r51 (freq=1000):
          Result (freq=5000): a0r54(2000) a1r51(3000)
      Pushing a8(r56,l0)(cost 0)
      Pushing a5(r58,l0)(cost 0)
      Pushing a2(r59,l0)(cost 0)
      Pushing a7(r57,l0)(cost 0)
      Pushing a6(r55,l0)(cost 0)
      Pushing a0(r54,l0)(cost 0)
      Pushing a3(r52,l0)(potential spill: pri=12000, cost=12000)
      Forming thread from colorable bucket:
      Pushing a4(r53,l0)(potential spill: pri=12000, cost=12000)
      Forming thread from colorable bucket:
      Pushing a1(r51,l0)(potential spill: bad spill, pri=4000, cost=4000)
      Forming thread from colorable bucket:
      Popping a1(r51,l0)  -- (memory is more profitable 20000 vs 2147483647) 
spill
      Popping a4(r53,l0)  --         assign reg 18
      Popping a3(r52,l0)  -- spill
      Popping a0(r54,l0)  --         assign reg 24
      Popping a6(r55,l0)  --         assign reg 20
      Popping a7(r57,l0)  --         assign reg 24
      Popping a2(r59,l0)  --         assign reg 24
      Popping a5(r58,l0)  --         assign reg 24
      Popping a8(r56,l0)  --         assign reg 24
Disposition:
    1:r51  l0   mem    3:r52  l0   mem    4:r53  l0    18    0:r54  l0    24
    6:r55  l0    20    8:r56  l0    24    7:r57  l0    24    5:r58  l0    24
    2:r59  l0    24
New iteration of spill/restore move
+++Costs: overall 44000, reg 6000, mem 38000, ld 0, st 0, move 0
+++       move loops 0, new jumps 0
        Redundant move from 27(freq 1000):-1


func

Dataflow summary:
;;  fully invalidated by EH      0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 
[r6] 7 [r7] 8 [r8] 9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 
16 [r16] 17 [r17] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 
[r26] 27 [r27] 30 [r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;;  hardware regs used   28 [r28] 32 [__SP_L__] 34 [argL]
;;  regular block artificial uses        28 [r28] 32 [__SP_L__] 34 [argL]
;;  eh block artificial uses     28 [r28] 32 [__SP_L__] 34 [argL]
;;  entry block defs     20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 
28 [r28] 32 [__SP_L__] 34 [argL]
;;  exit block uses      28 [r28] 32 [__SP_L__]
;;  regs ever live       24 [r24] 25 [r25] 28 [r28] 29 [r29] 32 [__SP_L__]
;;  ref usage   r0={5d} r1={5d} r2={5d} r3={5d} r4={5d} r5={5d} r6={5d} r7={5d} 
r8={5d} r9={5d} r10={5d} r11={5d} r12={5d} r13={5d} r14={5d} r15={5d} r16={5d} 
r17={5d} r20={6d} r21={6d} r22={6d} r23={6d} r24={7d,6u} r25={11d,5u} r26={5d} 
r27={5d} r28={1d,10u,1e} r29={2u,1e} r30={5d} r31={5d} r32={1d,13u} r33={5d} 
r34={1d,7u} r35={5d} r36={5d} r51={2d,1u} r52={1d,1u} r53={1d,1u} r54={1d,1u} 
r55={1d,2u} r56={1d,1u} r57={1d,2u} r58={1d,1u} r59={1d,1u} 
;;    total ref usage 236{180d,54u,2e} in 21{16 regular + 5 call} insns.
(note 1 0 4 NOTE_INSN_DELETED)
;; basic block 2, loop depth 0, count 1073741824 (estimated locally, freq 
1.0000), maybe hot
;;  prev block 0, next block 3, flags: (REACHABLE, RTL)
;;  pred:       ENTRY [always]  count:1073741824 (estimated locally, freq 
1.0000) (FALLTHRU)
;; bb 2 artificial_defs: { }
;; bb 2 artificial_uses: { u-1(28){ }u-1(32){ }u-1(34){ }}
;; lr  in        24 [r24] 28 [r28] 29 [r29] 32 [__SP_L__] 34 [argL]
;; lr  use       24 [r24] 28 [r28] 29 [r29] 32 [__SP_L__] 34 [argL]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc] 52 53 55 56 57
(note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(insn 2 4 3 2 (set (mem/c:QI (plus:HI (reg/f:HI 28 r28)
                (const_int 1 [0x1])) [0 i+0 S1 A8])
        (reg:QI 24 r24 [ i ])) "pr116389-red.c":8:1 113 {movqi_insn_split}
     (expr_list:REG_DEAD (reg:QI 24 r24 [ i ])
        (nil)))
(note 3 2 6 2 NOTE_INSN_FUNCTION_BEG)
(call_insn 6 3 56 2 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pT") [flags 0x41]  
<function_decl 0x7f139fe82000 get_pT>) [0 get_pT S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":9:20 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pT") [flags 0x41]  
<function_decl 0x7f139fe82000 get_pT>)
        (nil))
    (nil))
(insn 56 6 7 2 (set (reg/f:HI 56 [ _1 ])
        (reg:HI 24 r24)) "pr116389-red.c":9:20 128 {*movhi_split}
     (expr_list:REG_DEAD (reg:HI 24 r24)
        (nil)))
(note 7 56 8 2 NOTE_INSN_DELETED)
(insn 8 7 9 2 (set (reg:HI 53 [ t$val ])
        (mem:HI (reg/f:HI 56 [ _1 ]) [1 _1->val+0 S2 A8])) 
"pr116389-red.c":9:14 discrim 1 128 {*movhi_split}
     (expr_list:REG_DEAD (reg/f:HI 56 [ _1 ])
        (nil)))
(call_insn 9 8 57 2 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":10:21 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(insn 57 9 10 2 (set (reg/f:HI 57 [ _2 ])
        (reg:HI 24 r24)) "pr116389-red.c":10:21 128 {*movhi_split}
     (expr_list:REG_DEAD (reg:HI 24 r24)
        (nil)))
(note 10 57 62 2 NOTE_INSN_DELETED)
(insn 62 10 11 2 (parallel [
            (set (reg/f:HI 55)
                (plus:HI (reg/f:HI 28 r28)
                    (const_int 1 [0x1])))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":10:32 discrim 1 204 {addhi3_clobber}
     (expr_list:REG_DEAD (reg:QI 29 r29)
        (expr_list:REG_DEAD (reg:QI 29 r29)
            (expr_list:REG_EQUIV (plus:HI (reg/f:HI 28 r28)
                    (const_int 1 [0x1]))
                (nil)))))
(insn 11 62 12 2 (parallel [
            (set (reg/v:HI 52 [ diff ])
                (minus:HI (reg/f:HI 57 [ _2 ])
                    (reg/f:HI 55)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":10:32 discrim 1 280 {subhi3}
     (nil))
(jump_insn 12 11 17 2 (parallel [
            (set (pc)
                (if_then_else (eq (reg/f:HI 57 [ _2 ])
                        (reg/f:HI 55))
                    (label_ref:HI 40)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":12:8 887 {cbranchhi4_insn}
     (expr_list:REG_DEAD (reg/f:HI 57 [ _2 ])
        (expr_list:REG_DEAD (reg/f:HI 55)
            (int_list:REG_BR_PROB 719407028 (nil))))
 -> 40)
;;  succ:       3 [33.0% (guessed)]  count:354334800 (estimated locally, freq 
0.3300) (FALLTHRU)
;;              8 [67.0% (guessed)]  count:719407024 (estimated locally, freq 
0.6700)
;; lr  out       28 [r28] 32 [__SP_L__] 34 [argL] 52 53

;; basic block 3, loop depth 0, count 354334800 (estimated locally, freq 
0.3300), maybe hot
;;  prev block 2, next block 4, flags: (REACHABLE, RTL)
;;  pred:       2 [33.0% (guessed)]  count:354334800 (estimated locally, freq 
0.3300) (FALLTHRU)
;; bb 3 artificial_defs: { }
;; bb 3 artificial_uses: { u-1(28){ }u-1(32){ }u-1(34){ }}
;; lr  in        28 [r28] 32 [__SP_L__] 34 [argL] 52 53
;; lr  use       28 [r28] 32 [__SP_L__] 34 [argL]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc] 58
(note 17 12 18 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
(call_insn 18 17 58 3 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":15:13 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(insn 58 18 19 3 (set (reg/f:HI 58 [ _4 ])
        (reg:HI 24 r24)) "pr116389-red.c":15:13 128 {*movhi_split}
     (expr_list:REG_DEAD (reg:HI 24 r24)
        (nil)))
(note 19 58 20 3 NOTE_INSN_DELETED)
(jump_insn 20 19 21 3 (parallel [
            (set (pc)
                (if_then_else (ne (reg/f:HI 58 [ _4 ])
                        (const_int 0 [0]))
                    (label_ref 25)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":15:12 discrim 1 887 {cbranchhi4_insn}
     (expr_list:REG_DEAD (reg/f:HI 58 [ _4 ])
        (int_list:REG_BR_PROB 751619284 (nil)))
 -> 25)
;;  succ:       5 [70.0% (guessed)]  count:248034361 (estimated locally, freq 
0.2310)
;;              4 [30.0% (guessed)]  count:106300439 (estimated locally, freq 
0.0990) (FALLTHRU)
;; lr  out       28 [r28] 32 [__SP_L__] 34 [argL] 52 53

;; basic block 4, loop depth 0, count 106300439 (estimated locally, freq 
0.0990), maybe hot
;;  prev block 3, next block 5, flags: (REACHABLE, RTL)
;;  pred:       3 [30.0% (guessed)]  count:106300439 (estimated locally, freq 
0.0990) (FALLTHRU)
;; bb 4 artificial_defs: { }
;; bb 4 artificial_uses: { u-1(28){ }u-1(32){ }u-1(34){ }}
;; lr  in        28 [r28] 32 [__SP_L__] 34 [argL] 53
;; lr  use       28 [r28] 32 [__SP_L__] 34 [argL] 53
;; lr  def       51
(note 21 20 22 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
(insn 22 21 60 4 (set (reg/v:SI 51 [ val32 ])
        (subreg:SI (reg:HI 53 [ t$val ]) 0)) "pr116389-red.c":14:14 146 
{*movsi_split}
     (expr_list:REG_DEAD (reg:HI 53 [ t$val ])
        (nil)))
(jump_insn 60 22 61 4 (set (pc)
        (label_ref 28)) 969 {jump}
     (nil)
 -> 28)
;;  succ:       6 [always]  count:106300439 (estimated locally, freq 0.0990)
;; lr  out       28 [r28] 32 [__SP_L__] 34 [argL] 51

(barrier 61 60 25)
;; basic block 5, loop depth 0, count 248034361 (estimated locally, freq 
0.2310), maybe hot
;;  prev block 4, next block 6, flags: (REACHABLE, RTL)
;;  pred:       3 [70.0% (guessed)]  count:248034361 (estimated locally, freq 
0.2310)
;; bb 5 artificial_defs: { }
;; bb 5 artificial_uses: { u-1(28){ }u-1(32){ }u-1(34){ }}
;; lr  in        28 [r28] 32 [__SP_L__] 34 [argL] 52
;; lr  use       28 [r28] 32 [__SP_L__] 34 [argL] 52
;; lr  def       51
(code_label 25 61 26 5 4 (nil) [1 uses])
(note 26 25 27 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(insn 27 26 28 5 (set (reg/v:SI 51 [ val32 ])
        (subreg:SI (reg/v:HI 52 [ diff ]) 0)) "pr116389-red.c":16:19 146 
{*movsi_split}
     (expr_list:REG_DEAD (reg/v:HI 52 [ diff ])
        (nil)))
;;  succ:       6 [always]  count:248034361 (estimated locally, freq 0.2310) 
(FALLTHRU)
;; lr  out       28 [r28] 32 [__SP_L__] 34 [argL] 51

;; basic block 6, loop depth 0, count 354334800 (estimated locally, freq 
0.3300), maybe hot
;;  prev block 5, next block 7, flags: (REACHABLE, RTL)
;;  pred:       5 [always]  count:248034361 (estimated locally, freq 0.2310) 
(FALLTHRU)
;;              4 [always]  count:106300439 (estimated locally, freq 0.0990)
;; bb 6 artificial_defs: { }
;; bb 6 artificial_uses: { u-1(28){ }u-1(32){ }u-1(34){ }}
;; lr  in        28 [r28] 32 [__SP_L__] 34 [argL] 51
;; lr  use       28 [r28] 32 [__SP_L__] 34 [argL]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc] 59
(code_label 28 27 29 6 5 (nil) [1 uses])
(note 29 28 30 6 [bb 6] NOTE_INSN_BASIC_BLOCK)
(call_insn 30 29 59 6 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":17:13 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(insn 59 30 31 6 (set (reg/f:HI 59 [ _5 ])
        (reg:HI 24 r24)) "pr116389-red.c":17:13 128 {*movhi_split}
     (expr_list:REG_DEAD (reg:HI 24 r24)
        (nil)))
(note 31 59 33 6 NOTE_INSN_DELETED)
(jump_insn 33 31 34 6 (parallel [
            (set (pc)
                (if_then_else (eq (reg/f:HI 59 [ _5 ])
                        (const_int 0 [0]))
                    (label_ref:HI 40)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":17:12 discrim 1 887 {cbranchhi4_insn}
     (expr_list:REG_DEAD (reg/f:HI 59 [ _5 ])
        (int_list:REG_BR_PROB 499612076 (nil)))
 -> 40)
;;  succ:       7 [53.5% (guessed)]  count:189462817 (estimated locally, freq 
0.1765) (FALLTHRU)
;;              8 [46.5% (guessed)]  count:164871983 (estimated locally, freq 
0.1535)
;; lr  out       28 [r28] 32 [__SP_L__] 34 [argL] 51

;; basic block 7, loop depth 0, count 189462817 (estimated locally, freq 
0.1765), maybe hot
;;  prev block 6, next block 8, flags: (REACHABLE, RTL)
;;  pred:       6 [53.5% (guessed)]  count:189462817 (estimated locally, freq 
0.1765) (FALLTHRU)
;; bb 7 artificial_defs: { }
;; bb 7 artificial_uses: { u-1(28){ }u-1(32){ }u-1(34){ }}
;; lr  in        28 [r28] 32 [__SP_L__] 34 [argL] 51
;; lr  use       28 [r28] 32 [__SP_L__] 34 [argL] 51
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc] 54
(note 34 33 35 7 [bb 7] NOTE_INSN_BASIC_BLOCK)
(insn 35 34 36 7 (set (reg:HI 54 [ _7 ])
        (ashift:HI (subreg:HI (reg/v:SI 51 [ val32 ]) 0)
            (const_int 1 [0x1]))) "pr116389-red.c":18:13 667 {ashlhi3}
     (expr_list:REG_DEAD (reg/v:SI 51 [ val32 ])
        (nil)))
(insn 36 35 37 7 (set (reg:HI 24 r24)
        (reg:HI 54 [ _7 ])) "pr116389-red.c":18:13 128 {*movhi_split}
     (expr_list:REG_DEAD (reg:HI 54 [ _7 ])
        (nil)))
(call_insn 37 36 40 7 (parallel [
            (call (mem:HI (symbol_ref:HI ("f_int") [flags 0x41]  <function_decl 
0x7f139fe63e00 f_int>) [0 f_int S2 A8])
                (const_int 0 [0]))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":18:13 970 {call_insn}
     (expr_list:REG_DEAD (reg:HI 24 r24)
        (expr_list:REG_CALL_DECL (symbol_ref:HI ("f_int") [flags 0x41]  
<function_decl 0x7f139fe63e00 f_int>)
            (nil)))
    (expr_list:HI (use (reg:HI 24 r24))
        (nil)))
;;  succ:       8 [always]  count:189462817 (estimated locally, freq 0.1765) 
(FALLTHRU) pr116389-red.c:20:1
;; lr  out       28 [r28] 32 [__SP_L__] 34 [argL]

;; basic block 8, loop depth 0, count 1073741824 (estimated locally, freq 
1.0000), maybe hot
;;  prev block 7, next block 1, flags: (REACHABLE, RTL)
;;  pred:       7 [always]  count:189462817 (estimated locally, freq 0.1765) 
(FALLTHRU) pr116389-red.c:20:1
;;              2 [67.0% (guessed)]  count:719407024 (estimated locally, freq 
0.6700)
;;              6 [46.5% (guessed)]  count:164871983 (estimated locally, freq 
0.1535)
;; bb 8 artificial_defs: { }
;; bb 8 artificial_uses: { u-1(28){ }u-1(32){ }u-1(34){ }}
;; lr  in        28 [r28] 32 [__SP_L__] 34 [argL]
;; lr  use       28 [r28] 32 [__SP_L__] 34 [argL]
;; lr  def      
(code_label 40 37 41 8 1 (nil) [2 uses])
(note 41 40 0 8 [bb 8] NOTE_INSN_BASIC_BLOCK)
;;  succ:       EXIT [always]  count:1073741824 (estimated locally, freq 
1.0000) (FALLTHRU)
;; lr  out       28 [r28] 32 [__SP_L__] 34 [argL]

;; Function func (func, funcdef_no=0, decl_uid=1937, cgraph_uid=1, 
symbol_order=0)

insn=2, live_throughout: 29, 32, dead_or_set: 24, 28
insn=6, live_throughout: 29, 32, dead_or_set: 24, 25
insn=56, live_throughout: 29, 32, dead_or_set: 24, 25, 56
insn=8, live_throughout: 29, 32, dead_or_set: 53, 56
insn=9, live_throughout: 29, 32, 53, dead_or_set: 24, 25
insn=57, live_throughout: 29, 32, 53, dead_or_set: 24, 25, 57
insn=62, live_throughout: 32, 53, 57, dead_or_set: 28, 29, 55
insn=11, live_throughout: 32, 53, 55, 57, dead_or_set: 52
insn=12, live_throughout: 32, 52, 53, dead_or_set: 55, 57
insn=18, live_throughout: 32, 52, 53, dead_or_set: 24, 25
insn=58, live_throughout: 32, 52, 53, dead_or_set: 24, 25, 58
insn=20, live_throughout: 32, 52, 53, dead_or_set: 58
insn=22, live_throughout: 32, dead_or_set: 51, 53
insn=60, live_throughout: 32, 51, dead_or_set: 
insn=25, live_throughout: 32, 52, dead_or_set: 
insn=27, live_throughout: 32, dead_or_set: 51, 52
insn=28, live_throughout: 32, 51, dead_or_set: 
insn=30, live_throughout: 32, 51, dead_or_set: 24, 25
insn=59, live_throughout: 32, 51, dead_or_set: 24, 25, 59
insn=33, live_throughout: 32, 51, dead_or_set: 59
insn=35, live_throughout: 32, dead_or_set: 51, 54
insn=36, live_throughout: 32, dead_or_set: 24, 25, 54
insn=37, live_throughout: 32, dead_or_set: 24, 25
insn=40, live_throughout: 32, dead_or_set: 
      Coalescing copy 1:a1r51-a3r52 (freq=1000)
      Slot 1 (freq,size): a3r52(2000,4)
 a1r51(3000,4)

      Assigning 51(freq=1000) a new slot 0
      Assigning 52(freq=1000) slot 0 of 51
changing reg in insn 8
changing reg in insn 35
changing reg in insn 36
changing reg in insn 62
changing reg in insn 12
changing reg in insn 11
changing reg in insn 56
changing reg in insn 8
changing reg in insn 57
changing reg in insn 12
changing reg in insn 11
changing reg in insn 58
changing reg in insn 20
changing reg in insn 59
changing reg in insn 33
Spilling for insn 2.
Spilling for insn 8.
Using reg 30 for reload 0
Spilling for insn 62.
Spilling for insn 11.
Using reg 22 for reload 0
Spilling for insn 22.
Spilling for insn 27.
Using reg 20 for reload 1
Spilling for insn 35.
Spilling for insn 2.
Spilling for insn 8.
Using reg 30 for reload 0
Spilling for insn 62.
Spilling for insn 11.
Using reg 22 for reload 0
Spilling for insn 22.
Spilling for insn 27.
Using reg 20 for reload 1
Spilling for insn 35.

Reloads for insn # 2
Reload 0: reload_out (QI) = (mem/c:QI (plus:HI (reg/f:HI 28 r28)
                                                        (const_int 1 [0x1])) [0 
i+0 S1 A8])
        NO_REGS, RELOAD_FOR_OUTPUT (opnum = 0), optional
        reload_out_reg: (mem/c:QI (plus:HI (reg/f:HI 28 r28)
                                                        (const_int 1 [0x1])) [0 
i+0 S1 A8])

Reloads for insn # 8
Reload 0: reload_in (HI) = (reg/f:HI 24 r24 [orig:56 _1 ] [56])
        POINTER_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 1)
        reload_in_reg: (reg/f:HI 24 r24 [orig:56 _1 ] [56])
        reload_reg_rtx: (reg:HI 30 r30)

Reloads for insn # 62
Reload 0: reload_in (HI) = (reg/f:HI 28 r28)
        reload_out (HI) = (reg/f:HI 20 r20 [55])
        LD_REGS, RELOAD_OTHER (opnum = 0)
        reload_in_reg: (reg/f:HI 28 r28)
        reload_out_reg: (reg/f:HI 20 r20 [55])
        reload_reg_rtx: (reg/f:HI 20 r20 [55])

Reloads for insn # 11
Reload 0: reload_in (HI) = (reg/f:HI 24 r24 [orig:57 _2 ] [57])
        reload_out (HI) = (reg/v:HI 52 [ diff ])
        GENERAL_REGS, RELOAD_OTHER (opnum = 0)
        reload_in_reg: (reg/f:HI 24 r24 [orig:57 _2 ] [57])
        reload_out_reg: (reg/v:HI 52 [ diff ])
        reload_reg_rtx: (reg:HI 22 r22)

Reloads for insn # 22
Reload 0: reload_out (SI) = (reg/v:SI 51 [ val32 ])
        NO_REGS, RELOAD_FOR_OUTPUT (opnum = 0), optional
        reload_out_reg: (reg/v:SI 51 [ val32 ])

Reloads for insn # 27
Reload 0: reload_out (SI) = (reg/v:SI 51 [ val32 ])
        NO_REGS, RELOAD_FOR_OUTPUT (opnum = 0), optional
        reload_out_reg: (reg/v:SI 51 [ val32 ])
Reload 1: reload_in (HI) = (reg/v:HI 52 [ diff ])
        GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 1)
        reload_in_reg: (reg/v:HI 52 [ diff ])
        reload_reg_rtx: (reg:HI 30 r30)

Reloads for insn # 35
Reload 0: reload_in (HI) = (mem/c:HI (plus:HI (reg/f:HI 28 r28)
                                                        (const_int 2 [0x2])) [4 
%sfp+2 S2 A8])
        reload_out (HI) = (reg:HI 24 r24 [orig:54 _7 ] [54])
        GENERAL_REGS, RELOAD_OTHER (opnum = 0), can't combine
        reload_in_reg: (subreg:HI (reg/v:SI 51 [ val32 ]) 0)
        reload_out_reg: (reg:HI 24 r24 [orig:54 _7 ] [54])
        reload_reg_rtx: (reg:HI 24 r24 [orig:54 _7 ] [54])
deleting insn with uid = 56.
deleting insn with uid = 57.
deleting insn with uid = 58.
deleting insn with uid = 59.
deleting insn with uid = 70.
deleting insn with uid = 36.


try_optimize_cfg iteration 1

starting the processing of deferred insns
ending the processing of deferred insns
verify found no changes in insn with uid = 6.
verify found no changes in insn with uid = 9.
verify found no changes in insn with uid = 18.
verify found no changes in insn with uid = 30.
verify found no changes in insn with uid = 37.
verify found no changes in insn with uid = 6.
verify found no changes in insn with uid = 9.
verify found no changes in insn with uid = 18.
verify found no changes in insn with uid = 30.
verify found no changes in insn with uid = 37.
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 11 count 9 (    1)
df_worklist_dataflow_doublequeue: n_basic_blocks 9 n_edges 11 count 9 (    1)


func

Dataflow summary:
;;  fully invalidated by EH      0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 
[r6] 7 [r7] 8 [r8] 9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 
16 [r16] 17 [r17] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 
[r26] 27 [r27] 30 [r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;;  hardware regs used   32 [__SP_L__]
;;  regular block artificial uses        28 [r28] 32 [__SP_L__]
;;  eh block artificial uses     28 [r28] 32 [__SP_L__] 34 [argL]
;;  entry block defs     20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 
28 [r28] 32 [__SP_L__]
;;  exit block uses      28 [r28] 32 [__SP_L__]
;;  regs ever live       18 [r18] 19 [r19] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 
24 [r24] 25 [r25] 28 [r28] 29 [r29] 30 [r30] 31 [r31] 32 [__SP_L__] 33 
[__SP_H__]
;;  ref usage   r0={5d} r1={5d} r2={5d} r3={5d} r4={5d} r5={5d} r6={5d} r7={5d} 
r8={5d} r9={5d} r10={5d} r11={5d} r12={5d} r13={5d} r14={5d} r15={5d} r16={5d} 
r17={5d} r18={1d,1u} r19={1d,1u} r20={8d,4u} r21={8d,4u} r22={8d,2u} 
r23={8d,2u} r24={8d,8u} r25={12d,7u} r26={5d} r27={5d} r28={1d,15u,1e} 
r29={7u,1e} r30={7d,2u} r31={7d,2u} r32={1d,14u} r33={5d,1u} r35={5d} r36={5d} 
;;    total ref usage 257{185d,70u,2e} in 22{17 regular + 5 call} insns.
(note 1 0 4 NOTE_INSN_DELETED)
;; basic block 2, loop depth 0, count 1073741824 (estimated locally, freq 
1.0000), maybe hot
;;  prev block 0, next block 3, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       ENTRY [always]  count:1073741824 (estimated locally, freq 
1.0000) (FALLTHRU)
;; bb 2 artificial_defs: { }
;; bb 2 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        24 [r24] 28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       24 [r24] 28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
18 [r18] 19 [r19] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 
[r26] 27 [r27] 30 [r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      24 [r24] 28 [r28] 32 [__SP_L__]
;; live  gen     18 [r18] 19 [r19] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 
25 [r25] 30 [r30] 31 [r31]
;; live  kill   
(note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(insn 2 4 3 2 (set (mem/c:QI (plus:HI (reg/f:HI 28 r28)
                (const_int 1 [0x1])) [0 i+0 S1 A8])
        (reg:QI 24 r24 [ i ])) "pr116389-red.c":8:1 113 {movqi_insn_split}
     (nil))
(note 3 2 6 2 NOTE_INSN_FUNCTION_BEG)
(call_insn 6 3 7 2 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pT") [flags 0x41]  
<function_decl 0x7f139fe82000 get_pT>) [0 get_pT S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":9:20 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pT") [flags 0x41]  
<function_decl 0x7f139fe82000 get_pT>)
        (nil))
    (nil))
(note 7 6 65 2 NOTE_INSN_DELETED)
(insn 65 7 8 2 (set (reg:HI 30 r30)
        (reg/f:HI 24 r24 [orig:56 _1 ] [56])) "pr116389-red.c":9:14 discrim 1 
128 {*movhi_split}
     (nil))
(insn 8 65 9 2 (set (reg:HI 18 r18 [orig:53 t$val ] [53])
        (mem:HI (reg:HI 30 r30) [1 _1->val+0 S2 A8])) "pr116389-red.c":9:14 
discrim 1 128 {*movhi_split}
     (nil))
(call_insn 9 8 10 2 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":10:21 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(note 10 9 66 2 NOTE_INSN_DELETED)
(insn 66 10 62 2 (set (reg/f:HI 20 r20 [55])
        (reg/f:HI 28 r28)) "pr116389-red.c":10:32 discrim 1 128 {*movhi_split}
     (nil))
(insn 62 66 67 2 (parallel [
            (set (reg/f:HI 20 r20 [55])
                (plus:HI (reg/f:HI 20 r20 [55])
                    (const_int 1 [0x1])))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":10:32 discrim 1 204 {addhi3_clobber}
     (expr_list:REG_EQUIV (plus:HI (reg/f:HI 28 r28)
            (const_int 1 [0x1]))
        (nil)))
(insn 67 62 11 2 (set (reg:HI 22 r22)
        (reg/f:HI 24 r24 [orig:57 _2 ] [57])) "pr116389-red.c":10:32 discrim 1 
128 {*movhi_split}
     (nil))
(insn 11 67 68 2 (parallel [
            (set (reg:HI 22 r22)
                (minus:HI (reg:HI 22 r22)
                    (reg/f:HI 20 r20 [55])))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":10:32 discrim 1 280 {subhi3}
     (nil))
(insn 68 11 12 2 (set (mem/c:HI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S2 A8])
        (reg:HI 22 r22)) "pr116389-red.c":10:32 discrim 1 128 {*movhi_split}
     (nil))
(jump_insn 12 68 17 2 (parallel [
            (set (pc)
                (if_then_else (eq (reg/f:HI 24 r24 [orig:57 _2 ] [57])
                        (reg/f:HI 20 r20 [55]))
                    (label_ref:HI 40)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":12:8 887 {cbranchhi4_insn}
     (int_list:REG_BR_PROB 719407028 (nil))
 -> 40)
;;  succ:       3 [33.0% (guessed)]  count:354334800 (estimated locally, freq 
0.3300) (FALLTHRU)
;;              8 [67.0% (guessed)]  count:719407024 (estimated locally, freq 
0.6700)
;; lr  out       18 [r18] 19 [r19] 28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]

;; basic block 3, loop depth 0, count 354334800 (estimated locally, freq 
0.3300), maybe hot
;;  prev block 2, next block 4, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       2 [33.0% (guessed)]  count:354334800 (estimated locally, freq 
0.3300) (FALLTHRU)
;; bb 3 artificial_defs: { }
;; bb 3 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        18 [r18] 19 [r19] 28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       28 [r28] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]
;; live  gen     24 [r24] 25 [r25]
;; live  kill   
(note 17 12 18 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
(call_insn 18 17 19 3 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":15:13 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(note 19 18 20 3 NOTE_INSN_DELETED)
(jump_insn 20 19 21 3 (parallel [
            (set (pc)
                (if_then_else (ne (reg/f:HI 24 r24 [orig:58 _4 ] [58])
                        (const_int 0 [0]))
                    (label_ref 25)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":15:12 discrim 1 887 {cbranchhi4_insn}
     (int_list:REG_BR_PROB 751619284 (nil))
 -> 25)
;;  succ:       5 [70.0% (guessed)]  count:248034361 (estimated locally, freq 
0.2310)
;;              4 [30.0% (guessed)]  count:106300439 (estimated locally, freq 
0.0990) (FALLTHRU)
;; lr  out       18 [r18] 19 [r19] 20 [r20] 21 [r21] 28 [r28] 29 [r29] 32 
[__SP_L__] 33 [__SP_H__]
;; live  out     18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]

;; basic block 4, loop depth 0, count 106300439 (estimated locally, freq 
0.0990), maybe hot
;;  prev block 3, next block 5, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       3 [30.0% (guessed)]  count:106300439 (estimated locally, freq 
0.0990) (FALLTHRU)
;; bb 4 artificial_defs: { }
;; bb 4 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        18 [r18] 19 [r19] 20 [r20] 21 [r21] 28 [r28] 29 [r29] 32 
[__SP_L__]
;; lr  use       18 [r18] 19 [r19] 20 [r20] 21 [r21] 28 [r28] 29 [r29] 32 
[__SP_L__]
;; lr  def      
;; live  in      18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]
;; live  gen    
;; live  kill   
(note 21 20 22 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
(insn 22 21 60 4 (set (mem/c:SI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S4 A8])
        (reg:SI 18 r18 [orig:53 t$val ] [53])) "pr116389-red.c":14:14 146 
{*movsi_split}
     (nil))
(jump_insn 60 22 61 4 (set (pc)
        (label_ref 28)) 969 {jump}
     (nil)
 -> 28)
;;  succ:       6 [always]  count:106300439 (estimated locally, freq 0.0990)
;; lr  out       28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

(barrier 61 60 25)
;; basic block 5, loop depth 0, count 248034361 (estimated locally, freq 
0.2310), maybe hot
;;  prev block 4, next block 6, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       3 [70.0% (guessed)]  count:248034361 (estimated locally, freq 
0.2310)
;; bb 5 artificial_defs: { }
;; bb 5 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 29 [r29] 32 [__SP_L__] 33 [__SP_H__]
;; lr  use       28 [r28] 29 [r29] 32 [__SP_L__] 33 [__SP_H__]
;; lr  def       30 [r30] 31 [r31]
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen     30 [r30] 31 [r31]
;; live  kill   
(code_label 25 61 26 5 4 (nil) [1 uses])
(note 26 25 69 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(insn 69 26 27 5 (set (reg:HI 30 r30)
        (mem/c:HI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S2 A8])) "pr116389-red.c":16:19 
128 {*movhi_split}
     (nil))
(insn 27 69 28 5 (set (mem/c:SI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S4 A8])
        (reg:SI 30 r30)) "pr116389-red.c":16:19 146 {*movsi_split}
     (nil))
;;  succ:       6 [always]  count:248034361 (estimated locally, freq 0.2310) 
(FALLTHRU)
;; lr  out       28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

;; basic block 6, loop depth 0, count 354334800 (estimated locally, freq 
0.3300), maybe hot
;;  prev block 5, next block 7, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       5 [always]  count:248034361 (estimated locally, freq 0.2310) 
(FALLTHRU)
;;              4 [always]  count:106300439 (estimated locally, freq 0.0990)
;; bb 6 artificial_defs: { }
;; bb 6 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       28 [r28] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen     24 [r24] 25 [r25]
;; live  kill   
(code_label 28 27 29 6 5 (nil) [1 uses])
(note 29 28 30 6 [bb 6] NOTE_INSN_BASIC_BLOCK)
(call_insn 30 29 31 6 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":17:13 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(note 31 30 33 6 NOTE_INSN_DELETED)
(jump_insn 33 31 34 6 (parallel [
            (set (pc)
                (if_then_else (eq (reg/f:HI 24 r24 [orig:59 _5 ] [59])
                        (const_int 0 [0]))
                    (label_ref:HI 40)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":17:12 discrim 1 887 {cbranchhi4_insn}
     (int_list:REG_BR_PROB 499612076 (nil))
 -> 40)
;;  succ:       7 [53.5% (guessed)]  count:189462817 (estimated locally, freq 
0.1765) (FALLTHRU)
;;              8 [46.5% (guessed)]  count:164871983 (estimated locally, freq 
0.1535)
;; lr  out       28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

;; basic block 7, loop depth 0, count 189462817 (estimated locally, freq 
0.1765), maybe hot
;;  prev block 6, next block 8, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       6 [53.5% (guessed)]  count:189462817 (estimated locally, freq 
0.1765) (FALLTHRU)
;; bb 7 artificial_defs: { }
;; bb 7 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen     24 [r24] 25 [r25]
;; live  kill   
(note 34 33 71 7 [bb 7] NOTE_INSN_BASIC_BLOCK)
(insn 71 34 35 7 (set (reg:HI 24 r24 [orig:54 _7 ] [54])
        (mem/c:HI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S2 A8])) "pr116389-red.c":18:13 
128 {*movhi_split}
     (nil))
(insn 35 71 37 7 (set (reg:HI 24 r24 [orig:54 _7 ] [54])
        (ashift:HI (reg:HI 24 r24 [orig:54 _7 ] [54])
            (const_int 1 [0x1]))) "pr116389-red.c":18:13 667 {ashlhi3}
     (nil))
(call_insn 37 35 40 7 (parallel [
            (call (mem:HI (symbol_ref:HI ("f_int") [flags 0x41]  <function_decl 
0x7f139fe63e00 f_int>) [0 f_int S2 A8])
                (const_int 0 [0]))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":18:13 970 {call_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("f_int") [flags 0x41]  
<function_decl 0x7f139fe63e00 f_int>)
        (nil))
    (expr_list:HI (use (reg:HI 24 r24))
        (nil)))
;;  succ:       8 [always]  count:189462817 (estimated locally, freq 0.1765) 
(FALLTHRU) pr116389-red.c:20:1
;; lr  out       28 [r28] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

;; basic block 8, loop depth 0, count 1073741824 (estimated locally, freq 
1.0000), maybe hot
;;  prev block 7, next block 1, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       7 [always]  count:189462817 (estimated locally, freq 0.1765) 
(FALLTHRU) pr116389-red.c:20:1
;;              2 [67.0% (guessed)]  count:719407024 (estimated locally, freq 
0.6700)
;;              6 [46.5% (guessed)]  count:164871983 (estimated locally, freq 
0.1535)
;; bb 8 artificial_defs: { }
;; bb 8 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 32 [__SP_L__]
;; lr  use       28 [r28] 32 [__SP_L__]
;; lr  def      
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen    
;; live  kill   
(code_label 40 37 41 8 1 (nil) [2 uses])
(note 41 40 63 8 [bb 8] NOTE_INSN_BASIC_BLOCK)
;;  succ:       EXIT [always]  count:1073741824 (estimated locally, freq 
1.0000) (FALLTHRU)
;; lr  out       28 [r28] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

(note 63 41 0 NOTE_INSN_DELETED)
;; Function func (func, funcdef_no=0, decl_uid=1937, cgraph_uid=1, 
symbol_order=0)




EMERGENCY DUMP:



func

Dataflow summary:
;;  fully invalidated by EH      0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 
[r6] 7 [r7] 8 [r8] 9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 
16 [r16] 17 [r17] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 
[r26] 27 [r27] 30 [r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;;  hardware regs used   32 [__SP_L__]
;;  regular block artificial uses        28 [r28] 32 [__SP_L__]
;;  eh block artificial uses     28 [r28] 32 [__SP_L__] 34 [argL]
;;  entry block defs     20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 
28 [r28] 32 [__SP_L__]
;;  exit block uses      28 [r28] 32 [__SP_L__]
;;  regs ever live       18 [r18] 19 [r19] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 
24 [r24] 25 [r25] 28 [r28] 29 [r29] 30 [r30] 31 [r31] 32 [__SP_L__] 33 
[__SP_H__]
;;  ref usage   r0={5d} r1={5d} r2={5d} r3={5d} r4={5d} r5={5d} r6={5d} r7={5d} 
r8={5d} r9={5d} r10={5d} r11={5d} r12={5d} r13={5d} r14={5d} r15={5d} r16={5d} 
r17={5d} r18={1d,1u} r19={1d,1u} r20={8d,4u} r21={8d,4u} r22={8d,2u} 
r23={8d,2u} r24={8d,8u} r25={12d,7u} r26={5d} r27={5d} r28={1d,15u,1e} 
r29={7u,1e} r30={7d,2u} r31={7d,2u} r32={1d,14u} r33={5d,1u} r35={5d} r36={5d} 
;;    total ref usage 257{185d,70u,2e} in 22{17 regular + 5 call} insns.
(note 1 0 4 NOTE_INSN_DELETED)
;; basic block 2, loop depth 0, count 1073741824 (estimated locally, freq 
1.0000), maybe hot
;;  prev block 0, next block 3, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       ENTRY [always]  count:1073741824 (estimated locally, freq 
1.0000) (FALLTHRU)
;; bb 2 artificial_defs: { }
;; bb 2 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        24 [r24] 28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       24 [r24] 28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
18 [r18] 19 [r19] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 
[r26] 27 [r27] 30 [r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      24 [r24] 28 [r28] 32 [__SP_L__]
;; live  gen     18 [r18] 19 [r19] 20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 
25 [r25] 30 [r30] 31 [r31]
;; live  kill   
(note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(insn 2 4 3 2 (set (mem/c:QI (plus:HI (reg/f:HI 28 r28)
                (const_int 1 [0x1])) [0 i+0 S1 A8])
        (reg:QI 24 r24 [ i ])) "pr116389-red.c":8:1 113 {movqi_insn_split}
     (nil))
(note 3 2 6 2 NOTE_INSN_FUNCTION_BEG)
(call_insn 6 3 7 2 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pT") [flags 0x41]  
<function_decl 0x7f139fe82000 get_pT>) [0 get_pT S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":9:20 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pT") [flags 0x41]  
<function_decl 0x7f139fe82000 get_pT>)
        (nil))
    (nil))
(note 7 6 65 2 NOTE_INSN_DELETED)
(insn 65 7 8 2 (set (reg:HI 30 r30)
        (reg/f:HI 24 r24 [orig:56 _1 ] [56])) "pr116389-red.c":9:14 discrim 1 
128 {*movhi_split}
     (nil))
(insn 8 65 9 2 (set (reg:HI 18 r18 [orig:53 t$val ] [53])
        (mem:HI (reg:HI 30 r30) [1 _1->val+0 S2 A8])) "pr116389-red.c":9:14 
discrim 1 128 {*movhi_split}
     (nil))
(call_insn 9 8 10 2 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":10:21 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(note 10 9 66 2 NOTE_INSN_DELETED)
(insn 66 10 62 2 (set (reg/f:HI 20 r20 [55])
        (reg/f:HI 28 r28)) "pr116389-red.c":10:32 discrim 1 128 {*movhi_split}
     (nil))
(insn 62 66 67 2 (parallel [
            (set (reg/f:HI 20 r20 [55])
                (plus:HI (reg/f:HI 20 r20 [55])
                    (const_int 1 [0x1])))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":10:32 discrim 1 204 {addhi3_clobber}
     (expr_list:REG_EQUIV (plus:HI (reg/f:HI 28 r28)
            (const_int 1 [0x1]))
        (nil)))
(insn 67 62 11 2 (set (reg:HI 22 r22)
        (reg/f:HI 24 r24 [orig:57 _2 ] [57])) "pr116389-red.c":10:32 discrim 1 
128 {*movhi_split}
     (nil))
(insn 11 67 68 2 (parallel [
            (set (reg:HI 22 r22)
                (minus:HI (reg:HI 22 r22)
                    (reg/f:HI 20 r20 [55])))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":10:32 discrim 1 280 {subhi3}
     (nil))
(insn 68 11 12 2 (set (mem/c:HI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S2 A8])
        (reg:HI 22 r22)) "pr116389-red.c":10:32 discrim 1 128 {*movhi_split}
     (nil))
(jump_insn 12 68 17 2 (parallel [
            (set (pc)
                (if_then_else (eq (reg/f:HI 24 r24 [orig:57 _2 ] [57])
                        (reg/f:HI 20 r20 [55]))
                    (label_ref:HI 40)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":12:8 887 {cbranchhi4_insn}
     (int_list:REG_BR_PROB 719407028 (nil))
 -> 40)
;;  succ:       3 [33.0% (guessed)]  count:354334800 (estimated locally, freq 
0.3300) (FALLTHRU)
;;              8 [67.0% (guessed)]  count:719407024 (estimated locally, freq 
0.6700)
;; lr  out       18 [r18] 19 [r19] 28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]

;; basic block 3, loop depth 0, count 354334800 (estimated locally, freq 
0.3300), maybe hot
;;  prev block 2, next block 4, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       2 [33.0% (guessed)]  count:354334800 (estimated locally, freq 
0.3300) (FALLTHRU)
;; bb 3 artificial_defs: { }
;; bb 3 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        18 [r18] 19 [r19] 28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       28 [r28] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]
;; live  gen     24 [r24] 25 [r25]
;; live  kill   
(note 17 12 18 3 [bb 3] NOTE_INSN_BASIC_BLOCK)
(call_insn 18 17 19 3 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":15:13 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(note 19 18 20 3 NOTE_INSN_DELETED)
(jump_insn 20 19 21 3 (parallel [
            (set (pc)
                (if_then_else (ne (reg/f:HI 24 r24 [orig:58 _4 ] [58])
                        (const_int 0 [0]))
                    (label_ref 25)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":15:12 discrim 1 887 {cbranchhi4_insn}
     (int_list:REG_BR_PROB 751619284 (nil))
 -> 25)
;;  succ:       5 [70.0% (guessed)]  count:248034361 (estimated locally, freq 
0.2310)
;;              4 [30.0% (guessed)]  count:106300439 (estimated locally, freq 
0.0990) (FALLTHRU)
;; lr  out       18 [r18] 19 [r19] 20 [r20] 21 [r21] 28 [r28] 29 [r29] 32 
[__SP_L__] 33 [__SP_H__]
;; live  out     18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]

;; basic block 4, loop depth 0, count 106300439 (estimated locally, freq 
0.0990), maybe hot
;;  prev block 3, next block 5, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       3 [30.0% (guessed)]  count:106300439 (estimated locally, freq 
0.0990) (FALLTHRU)
;; bb 4 artificial_defs: { }
;; bb 4 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        18 [r18] 19 [r19] 20 [r20] 21 [r21] 28 [r28] 29 [r29] 32 
[__SP_L__]
;; lr  use       18 [r18] 19 [r19] 20 [r20] 21 [r21] 28 [r28] 29 [r29] 32 
[__SP_L__]
;; lr  def      
;; live  in      18 [r18] 19 [r19] 28 [r28] 32 [__SP_L__]
;; live  gen    
;; live  kill   
(note 21 20 22 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
(insn 22 21 60 4 (set (mem/c:SI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S4 A8])
        (reg:SI 18 r18 [orig:53 t$val ] [53])) "pr116389-red.c":14:14 146 
{*movsi_split}
     (nil))
(jump_insn 60 22 61 4 (set (pc)
        (label_ref 28)) 969 {jump}
     (nil)
 -> 28)
;;  succ:       6 [always]  count:106300439 (estimated locally, freq 0.0990)
;; lr  out       28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

(barrier 61 60 25)
;; basic block 5, loop depth 0, count 248034361 (estimated locally, freq 
0.2310), maybe hot
;;  prev block 4, next block 6, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       3 [70.0% (guessed)]  count:248034361 (estimated locally, freq 
0.2310)
;; bb 5 artificial_defs: { }
;; bb 5 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 29 [r29] 32 [__SP_L__] 33 [__SP_H__]
;; lr  use       28 [r28] 29 [r29] 32 [__SP_L__] 33 [__SP_H__]
;; lr  def       30 [r30] 31 [r31]
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen     30 [r30] 31 [r31]
;; live  kill   
(code_label 25 61 26 5 4 (nil) [1 uses])
(note 26 25 69 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(insn 69 26 27 5 (set (reg:HI 30 r30)
        (mem/c:HI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S2 A8])) "pr116389-red.c":16:19 
128 {*movhi_split}
     (nil))
(insn 27 69 28 5 (set (mem/c:SI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S4 A8])
        (reg:SI 30 r30)) "pr116389-red.c":16:19 146 {*movsi_split}
     (nil))
;;  succ:       6 [always]  count:248034361 (estimated locally, freq 0.2310) 
(FALLTHRU)
;; lr  out       28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

;; basic block 6, loop depth 0, count 354334800 (estimated locally, freq 
0.3300), maybe hot
;;  prev block 5, next block 7, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       5 [always]  count:248034361 (estimated locally, freq 0.2310) 
(FALLTHRU)
;;              4 [always]  count:106300439 (estimated locally, freq 0.0990)
;; bb 6 artificial_defs: { }
;; bb 6 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       28 [r28] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen     24 [r24] 25 [r25]
;; live  kill   
(code_label 28 27 29 6 5 (nil) [1 uses])
(note 29 28 30 6 [bb 6] NOTE_INSN_BASIC_BLOCK)
(call_insn 30 29 31 6 (parallel [
            (set (reg:HI 24 r24)
                (call (mem:HI (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>) [0 get_pos S2 A8])
                    (const_int 0 [0])))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":17:13 971 {call_value_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("get_pos") [flags 0x41]  
<function_decl 0x7f139fe63f00 get_pos>)
        (nil))
    (nil))
(note 31 30 33 6 NOTE_INSN_DELETED)
(jump_insn 33 31 34 6 (parallel [
            (set (pc)
                (if_then_else (eq (reg/f:HI 24 r24 [orig:59 _5 ] [59])
                        (const_int 0 [0]))
                    (label_ref:HI 40)
                    (pc)))
            (clobber (scratch:QI))
        ]) "pr116389-red.c":17:12 discrim 1 887 {cbranchhi4_insn}
     (int_list:REG_BR_PROB 499612076 (nil))
 -> 40)
;;  succ:       7 [53.5% (guessed)]  count:189462817 (estimated locally, freq 
0.1765) (FALLTHRU)
;;              8 [46.5% (guessed)]  count:164871983 (estimated locally, freq 
0.1535)
;; lr  out       28 [r28] 29 [r29] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

;; basic block 7, loop depth 0, count 189462817 (estimated locally, freq 
0.1765), maybe hot
;;  prev block 6, next block 8, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       6 [53.5% (guessed)]  count:189462817 (estimated locally, freq 
0.1765) (FALLTHRU)
;; bb 7 artificial_defs: { }
;; bb 7 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  use       28 [r28] 29 [r29] 32 [__SP_L__]
;; lr  def       0 [r0] 1 [r1] 2 [r2] 3 [r3] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 
9 [r9] 10 [r10] 11 [r11] 12 [r12] 13 [r13] 14 [r14] 15 [r15] 16 [r16] 17 [r17] 
20 [r20] 21 [r21] 22 [r22] 23 [r23] 24 [r24] 25 [r25] 26 [r26] 27 [r27] 30 
[r30] 31 [r31] 33 [__SP_H__] 35 [argH] 36 [cc]
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen     24 [r24] 25 [r25]
;; live  kill   
(note 34 33 71 7 [bb 7] NOTE_INSN_BASIC_BLOCK)
(insn 71 34 35 7 (set (reg:HI 24 r24 [orig:54 _7 ] [54])
        (mem/c:HI (plus:HI (reg/f:HI 28 r28)
                (const_int 2 [0x2])) [4 %sfp+2 S2 A8])) "pr116389-red.c":18:13 
128 {*movhi_split}
     (nil))
(insn 35 71 37 7 (set (reg:HI 24 r24 [orig:54 _7 ] [54])
        (ashift:HI (reg:HI 24 r24 [orig:54 _7 ] [54])
            (const_int 1 [0x1]))) "pr116389-red.c":18:13 667 {ashlhi3}
     (nil))
(call_insn 37 35 40 7 (parallel [
            (call (mem:HI (symbol_ref:HI ("f_int") [flags 0x41]  <function_decl 
0x7f139fe63e00 f_int>) [0 f_int S2 A8])
                (const_int 0 [0]))
            (use (const_int 0 [0]))
        ]) "pr116389-red.c":18:13 970 {call_insn}
     (expr_list:REG_CALL_DECL (symbol_ref:HI ("f_int") [flags 0x41]  
<function_decl 0x7f139fe63e00 f_int>)
        (nil))
    (expr_list:HI (use (reg:HI 24 r24))
        (nil)))
;;  succ:       8 [always]  count:189462817 (estimated locally, freq 0.1765) 
(FALLTHRU) pr116389-red.c:20:1
;; lr  out       28 [r28] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

;; basic block 8, loop depth 0, count 1073741824 (estimated locally, freq 
1.0000), maybe hot
;;  prev block 7, next block 1, flags: (REACHABLE, RTL, MODIFIED)
;;  pred:       7 [always]  count:189462817 (estimated locally, freq 0.1765) 
(FALLTHRU) pr116389-red.c:20:1
;;              2 [67.0% (guessed)]  count:719407024 (estimated locally, freq 
0.6700)
;;              6 [46.5% (guessed)]  count:164871983 (estimated locally, freq 
0.1535)
;; bb 8 artificial_defs: { }
;; bb 8 artificial_uses: { u-1(28){ }u-1(32){ }}
;; lr  in        28 [r28] 32 [__SP_L__]
;; lr  use       28 [r28] 32 [__SP_L__]
;; lr  def      
;; live  in      28 [r28] 32 [__SP_L__]
;; live  gen    
;; live  kill   
(code_label 40 37 41 8 1 (nil) [2 uses])
(note 41 40 63 8 [bb 8] NOTE_INSN_BASIC_BLOCK)
;;  succ:       EXIT [always]  count:1073741824 (estimated locally, freq 
1.0000) (FALLTHRU)
;; lr  out       28 [r28] 32 [__SP_L__]
;; live  out     28 [r28] 32 [__SP_L__]

(note 63 41 0 NOTE_INSN_DELETED)

Reply via email to