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)