Created
November 3, 2021 14:33
-
-
Save marxin/7eadc43d12fdefac6f5b8151a47a8684 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- good 2021-11-03 15:29:19.510645266 +0100 | |
+++ bad 2021-11-03 15:29:12.078678678 +0100 | |
@@ -1,4343 +1,4365 @@ | |
;; Function csort1_ (__m_mergesorts_MOD_csort1_, funcdef_no=0, decl_uid=4252, cgraph_uid=2, symbol_order=1) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 5 6 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
***dbgcnt: lower limit 1 reached for back_threadfull2.*** | |
Jump threading proved probability of edge 20->21 too small (it is 11.0% (guessed) should be always (guessed)) | |
SSA replacement table | |
N_i -> { O_1 ... O_j } means that N_i replaces O_1, ..., O_j | |
.MEM_4 -> { .MEM_64 } | |
_17 -> { _119 } | |
_52 -> { _117 } | |
M.10_54 -> { M.10_120 } | |
_128 -> { _118 } | |
lb_133 -> { lb_75 } | |
M.10_154 -> { M.10_120 } | |
lb_279 -> { lb_75 } | |
Incremental SSA update started at block: 20 | |
Number of blocks in CFG: 45 | |
Number of blocks to update: 9 ( 20%) | |
Merging blocks 18 and 20 | |
Removing basic block 40 | |
Removing basic block 41 | |
Removing basic block 42 | |
Removing basic block 43 | |
__attribute__((fn spec (". w r r r w "))) | |
void csort1_ (struct array01_integer(kind=4) & restrict indx, struct array02_character(kind=1) & restrict keys, integer(kind=4) & restrict ikey, logical(kind=4) * descend, integer(kind=4) * stat, integer(kind=8) _keys) | |
{ | |
unsigned long ivtmp.444; | |
unsigned long ivtmp.438; | |
unsigned long ivtmp.436; | |
integer(kind=4) * vectp.431; | |
vector(2) integer(kind=4) * vectp_dt_parm.430; | |
unsigned int SR.428; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.17; | |
struct FRAME.csort1_ FRAME.190; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.0; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
sizetype _keys.172_5; | |
integer(kind=8) _6; | |
integer(kind=4) _7; | |
unsigned long _14; | |
integer(kind=8) _16; | |
integer(kind=4) _17; | |
unsigned int _21; | |
void * _22; | |
unsigned long _24; | |
unsigned long _26; | |
void * _29; | |
void * _30; | |
character(kind=1)[1:_keys] * _32; | |
integer(kind=8) iftmp.168_34; | |
integer(kind=8) iftmp.171_35; | |
integer(kind=8) _37; | |
integer(kind=4) _39; | |
sizetype _42; | |
sizetype _45; | |
sizetype _47; | |
integer(kind=8) _51; | |
integer(kind=4) _52; | |
integer(kind=4)[0:D.4544] * restrict _53; | |
integer(kind=4) M.10_54; | |
integer(kind=8) _59; | |
character(kind=1)[0:D.4540][1:_keys] * restrict _61; | |
integer(kind=8) _63; | |
integer(kind=8) _65; | |
unsigned long _68; | |
integer(kind=4) _71; | |
integer(kind=4) _74; | |
sizetype _76; | |
unsigned long prephitmp_77; | |
unsigned long size.14_79; | |
sizetype _85; | |
logical(kind=4) _90; | |
sizetype _95; | |
sizetype _100; | |
sizetype _111; | |
integer(kind=4) _117; | |
integer(kind=4) _118; | |
integer(kind=4) _119; | |
integer(kind=4) M.10_120; | |
integer(kind=8) _123; | |
integer(kind=8) _124; | |
integer(kind=4) _128; | |
sizetype _129; | |
integer(kind=4) _131; | |
integer(kind=4) _134; | |
integer(kind=8) _142; | |
integer(kind=8) _143; | |
integer(kind=8) _144; | |
integer(kind=4) _146; | |
integer(kind=8) _148; | |
integer(kind=4) pretmp_150; | |
integer(kind=4) _151; | |
integer(kind=4) M.10_154; | |
integer(kind=4) pretmp_155; | |
void * _156; | |
unsigned long _157; | |
void * _158; | |
character(kind=1)[1:_keys] * _159; | |
integer(kind=8) _160; | |
unsigned int _162; | |
logical(kind=4) _165; | |
integer(kind=8) _167; | |
unsigned long _168; | |
integer(kind=8) _169; | |
unsigned long _170; | |
integer(kind=8) _188; | |
unsigned long _189; | |
unsigned int _198; | |
integer(kind=8) _200; | |
integer(kind=8) _205; | |
unsigned long _209; | |
unsigned long _210; | |
void * _211; | |
integer(kind=4) _212; | |
void * _213; | |
integer(kind=4)[0:D.4544] * _216; | |
sizetype _218; | |
sizetype _220; | |
integer(kind=8) _223; | |
integer(kind=4) _230; | |
integer(kind=8) _231; | |
integer(kind=8) prephitmp_238; | |
integer(kind=8) _240; | |
integer(kind=8) _241; | |
unsigned long _242; | |
integer(kind=8) _245; | |
integer(kind=4) pretmp_246; | |
integer(kind=8) _247; | |
unsigned int _253; | |
sizetype _261; | |
sizetype _262; | |
void * _263; | |
sizetype _266; | |
integer(kind=8) _278; | |
<bb 2> [local count: 1073741824]: | |
_51 = *indx_50(D).dim[0].stride; | |
if (_51 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.168_34 = PHI <_51(2), 1(3)> | |
_53 = *indx_50(D).data; | |
_1 = *indx_50(D).dim[0].ubound; | |
_2 = *indx_50(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.0_55 = _3 + 1; | |
_59 = *keys_58(D).dim[0].stride; | |
if (_59 != 0) | |
goto <bb 5>; [50.00%] | |
else | |
goto <bb 6>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
_223 = -_59; | |
<bb 6> [local count: 1073741824]: | |
# iftmp.171_35 = PHI <_59(5), 1(4)> | |
# prephitmp_238 = PHI <_223(5), -1(4)> | |
_61 = *keys_58(D).data; | |
_63 = *keys_58(D).dim[1].stride; | |
_65 = prephitmp_238 - _63; | |
_keys.172_5 = (sizetype) _keys_48(D); | |
if (stat_69(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619562]: | |
*stat_69(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_6 = MAX_EXPR <ubound.0_55, 0>; | |
_71 = (integer(kind=4)) _6; | |
if (_71 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507591]: | |
_7 = MAX_EXPR <_71, 0>; | |
_14 = (unsigned long) _7; | |
size.14_79 = _14 * 4; | |
_68 = MAX_EXPR <size.14_79, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_77 = PHI <1(8), _68(9)> | |
_22 = __builtin_malloc (prephitmp_77); | |
if (_22 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_89(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325134]: | |
ierr = 5014; | |
dt_parm.17.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.17.common.line = 1120; | |
dt_parm.17.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.17.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.17] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.17); | |
_gfortran_transfer_character_write (&dt_parm.17, &"MCT(MPEU)::m_MergeSorts::cSort1_"[1]{lb: 1 sz: 1}, 32); | |
_gfortran_transfer_character_write (&dt_parm.17, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.17, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.17); | |
dt_parm.17 ={v} {CLOBBER}; | |
if (stat_69(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879733]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::cSort1_"[1]{lb: 1 sz: 1}, 32); | |
<bb 14> [local count: 217325134]: | |
*stat_69(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491636]: | |
_90 = *descend_89(D); | |
_253 = VIEW_CONVERT_EXPR<unsigned int>(_90); | |
<bb 16> [local count: 921485331]: | |
# SR.428_113 = PHI <0(11), _253(15)> | |
if (_71 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121945]: | |
_266 = (sizetype) iftmp.168_34; | |
_111 = _266 * 4; | |
<bb 18> [local count: 6929196228]: | |
# mstep_49 = PHI <lstep_114(19), 1(17)> | |
lstep_114 = mstep_49 * 2; | |
_117 = mstep_49 + 1; | |
_118 = _117 + -1; | |
_119 = mstep_49 + _118; | |
M.10_120 = MIN_EXPR <_119, _71>; | |
if (M.10_120 <= 0) | |
goto <bb 21>; [3.00%] | |
else | |
goto <bb 22>; [97.00%] | |
<bb 19> [local count: 6929197002]: | |
if (_71 <= lstep_114) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 18>; [89.00%] | |
<bb 20> [local count: 49896518755]: | |
# lb_279 = PHI <_134(35)> | |
_52 = mstep_49 + lb_279; | |
_128 = _52 + -1; | |
_17 = mstep_49 + _128; | |
M.10_54 = MIN_EXPR <_17, _71>; | |
<bb 21> [local count: 56063504130]: | |
# lb_133 = PHI <1(18), 1(34), lb_279(20)> | |
# M.10_154 = PHI <M.10_120(18), M.10_120(34), M.10_54(20)> | |
_123 = (integer(kind=8)) lb_133; | |
_124 = (integer(kind=8)) M.10_154; | |
if (_123 > _124) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896517865]: | |
_76 = 1; | |
_47 = _76 * 4; | |
_45 = _47 + 18446744073709551612; | |
_158 = _22 + _45; | |
ivtmp.444_81 = (unsigned long) _158; | |
_21 = (unsigned int) M.10_120; | |
_162 = 1; | |
_198 = _21 - _162; | |
_24 = (unsigned long) _198; | |
_26 = _24 + _76; | |
_210 = _26 * 4; | |
_242 = (unsigned long) _22; | |
_168 = _210 + _242; | |
<bb 23> [local count: 453604718470]: | |
# l2_56 = PHI <l2_252(34), _117(22)> | |
# l1_57 = PHI <l1_251(34), 1(22)> | |
# ivtmp.444_140 = PHI <ivtmp.444_138(34), ivtmp.444_81(22)> | |
if (l2_56 > M.10_120) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802358998]: | |
_212 = l1_57 + -1; | |
_16 = (integer(kind=8)) _212; | |
_37 = _16 * iftmp.168_34; | |
_151 = (*_53)[_37]; | |
l1_152 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802358998]: | |
_146 = l2_56 + -1; | |
_144 = (integer(kind=8)) _146; | |
_142 = iftmp.168_34 * _144; | |
pretmp_150 = (*_53)[_142]; | |
if (l1_57 >= _117) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401179499]: | |
l2_164 = l2_56 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401179499]: | |
_165 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.428_113); | |
_230 = l1_57 + -1; | |
_247 = (integer(kind=8)) _230; | |
_188 = (integer(kind=8)) pretmp_150; | |
_205 = _63 * _188; | |
_200 = _65 + _205; | |
pretmp_155 = *ikey_46(D); | |
_160 = (integer(kind=8)) pretmp_155; | |
_143 = iftmp.171_35 * _160; | |
_148 = _143 + _200; | |
_129 = (sizetype) _148; | |
_245 = iftmp.168_34 * _247; | |
pretmp_246 = (*_53)[_245]; | |
_240 = (integer(kind=8)) pretmp_246; | |
_241 = _63 * _240; | |
_167 = _65 + _241; | |
_169 = _143 + _167; | |
_42 = (sizetype) _169; | |
_95 = _42 * _keys.172_5; | |
_85 = _129 * _keys.172_5; | |
_159 = _61 + _85; | |
_32 = _61 + _95; | |
_39 = _gfortran_compare_string (_keys_48(D), _32, _keys_48(D), _159); | |
if (_165 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700589749]: | |
if (_39 >= 0) | |
goto <bb 29>; [59.00%] | |
else | |
goto <bb 30>; [41.00%] | |
<bb 29> [local count: 33453348417]: | |
l1_202 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 23247241807]: | |
l2_207 = l2_56 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700589749]: | |
if (_39 <= 0) | |
goto <bb 32>; [41.00%] | |
else | |
goto <bb 33>; [59.00%] | |
<bb 32> [local count: 23247241807]: | |
l1_244 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 33453348417]: | |
l2_249 = l2_56 + 1; | |
<bb 34> [local count: 453604718945]: | |
# l1_251 = PHI <l1_152(24), l1_57(26), l1_202(29), l1_57(30), l1_244(32), l1_57(33)> | |
# l2_252 = PHI <l2_56(24), l2_164(26), l2_56(29), l2_207(30), l2_56(32), l2_249(33)> | |
# _74 = PHI <_151(24), pretmp_150(26), pretmp_246(29), pretmp_150(30), pretmp_246(32), pretmp_150(33)> | |
_156 = (void *) ivtmp.444_140; | |
MEM[(integer(kind=4) *)_156] = _74; | |
ivtmp.444_138 = ivtmp.444_140 + 4; | |
if (ivtmp.444_138 == _168) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 23>; [89.00%] | |
<bb 35> [local count: 56063504182]: | |
_134 = M.10_154 + 1; | |
if (_71 <= _134) | |
goto <bb 19>; [11.00%] | |
else | |
goto <bb 20>; [89.00%] | |
<bb 36> [local count: 49896518709]: | |
_100 = (sizetype) lb_133; | |
_261 = _100 * 4; | |
_262 = _261 + 18446744073709551612; | |
_263 = _22 + _262; | |
ivtmp.436_101 = (unsigned long) _263; | |
_278 = _123 + -1; | |
_231 = iftmp.168_34 * _278; | |
_220 = (sizetype) _231; | |
_218 = _220 * 4; | |
_216 = _53 + _218; | |
ivtmp.438_94 = (unsigned long) _216; | |
_209 = (unsigned long) M.10_154; | |
_189 = _209 * 4; | |
_170 = (unsigned long) _22; | |
_157 = _189 + _170; | |
<bb 37> [local count: 453604718470]: | |
# ivtmp.436_62 = PHI <ivtmp.436_33(37), ivtmp.436_101(36)> | |
# ivtmp.438_264 = PHI <ivtmp.438_265(37), ivtmp.438_94(36)> | |
_213 = (void *) ivtmp.436_62; | |
_131 = MEM[(integer(kind=4) *)_213]; | |
_211 = (void *) ivtmp.438_264; | |
MEM[(integer(kind=4) *)_211] = _131; | |
ivtmp.436_33 = ivtmp.436_62 + 4; | |
ivtmp.438_265 = ivtmp.438_264 + _111; | |
if (ivtmp.436_33 == _157) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 37>; [89.00%] | |
<bb 38> [local count: 863575052]: | |
__builtin_free (_22); | |
<bb 39> [local count: 1073400065]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function dsort1_ (__m_mergesorts_MOD_dsort1_, funcdef_no=3, decl_uid=4275, cgraph_uid=5, symbol_order=4) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 5 6 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
Jump threading proved probability of edge 20->21 too small (it is 11.0% (guessed) should be always (guessed)) | |
SSA replacement table | |
N_i -> { O_1 ... O_j } means that N_i replaces O_1, ..., O_j | |
.MEM_4 -> { .MEM_63 } | |
_16 -> { _115 } | |
_51 -> { _113 } | |
M.28_53 -> { M.28_116 } | |
_124 -> { _114 } | |
lb_129 -> { lb_77 } | |
M.28_143 -> { M.28_116 } | |
lb_269 -> { lb_77 } | |
Incremental SSA update started at block: 20 | |
Number of blocks in CFG: 45 | |
Number of blocks to update: 9 ( 20%) | |
Merging blocks 18 and 20 | |
Removing basic block 40 | |
Removing basic block 41 | |
Removing basic block 42 | |
Removing basic block 43 | |
__attribute__((fn spec (". w r r r w "))) | |
void dsort1_ (struct array01_integer(kind=4) & restrict indx, struct array02_real(kind=8) & restrict keys, integer(kind=4) & restrict ikey, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
unsigned long ivtmp.469; | |
unsigned long ivtmp.464; | |
unsigned long ivtmp.462; | |
integer(kind=4) * vectp.457; | |
vector(2) integer(kind=4) * vectp_dt_parm.456; | |
unsigned int SR.454; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.35; | |
struct FRAME.dsort1_ FRAME.212; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.18; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
integer(kind=8) _5; | |
integer(kind=4) _6; | |
integer(kind=8) _7; | |
unsigned long _8; | |
unsigned long _10; | |
unsigned long _13; | |
integer(kind=8) _15; | |
integer(kind=4) _16; | |
unsigned int _20; | |
void * _21; | |
unsigned long _22; | |
void * _23; | |
integer(kind=4) pretmp_25; | |
void * _28; | |
void * _29; | |
integer(kind=8) iftmp.193_33; | |
integer(kind=8) iftmp.196_34; | |
integer(kind=8) _36; | |
integer(kind=8) _41; | |
sizetype _44; | |
sizetype _46; | |
integer(kind=8) _48; | |
integer(kind=4)[0:D.4648] * restrict _50; | |
integer(kind=4) _51; | |
integer(kind=4) M.28_53; | |
integer(kind=8) _56; | |
real(kind=8)[0:D.4644] * restrict _58; | |
integer(kind=8) _60; | |
integer(kind=8) _62; | |
integer(kind=4) _64; | |
integer(kind=4) _67; | |
integer(kind=4) _72; | |
integer(kind=8) _73; | |
unsigned long size.32_75; | |
integer(kind=8) _81; | |
sizetype _84; | |
logical(kind=4) _86; | |
void * _91; | |
sizetype _96; | |
integer(kind=4) pretmp_106; | |
sizetype _107; | |
integer(kind=4) _113; | |
integer(kind=4) _114; | |
integer(kind=4) _115; | |
integer(kind=4) M.28_116; | |
integer(kind=8) _119; | |
integer(kind=8) _120; | |
integer(kind=4) _124; | |
integer(kind=8) _125; | |
integer(kind=4) _127; | |
integer(kind=4) _130; | |
unsigned long _134; | |
unsigned long _135; | |
unsigned long _136; | |
unsigned long _141; | |
integer(kind=4) M.28_143; | |
integer(kind=8) _144; | |
unsigned int _146; | |
integer(kind=4) _147; | |
unsigned long _151; | |
void * _153; | |
unsigned long _156; | |
logical(kind=4) _161; | |
real(kind=8) pretmp_163; | |
integer(kind=8) _164; | |
void * _166; | |
unsigned int _167; | |
integer(kind=4) _170; | |
integer(kind=8) _183; | |
integer(kind=4)[0:D.4648] * _184; | |
real(kind=8) pretmp_193; | |
integer(kind=8) _198; | |
integer(kind=8) _202; | |
integer(kind=8) _203; | |
integer(kind=8) prephitmp_204; | |
integer(kind=4) _205; | |
unsigned long _206; | |
unsigned long prephitmp_209; | |
integer(kind=8) _222; | |
sizetype _223; | |
integer(kind=8) _230; | |
integer(kind=8) _231; | |
integer(kind=4) pretmp_232; | |
integer(kind=8) _237; | |
unsigned int _243; | |
sizetype _245; | |
integer(kind=8) _246; | |
sizetype _251; | |
sizetype _252; | |
void * _253; | |
sizetype _256; | |
integer(kind=8) _268; | |
<bb 2> [local count: 1073741824]: | |
_48 = *indx_47(D).dim[0].stride; | |
if (_48 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.193_33 = PHI <_48(2), 1(3)> | |
_50 = *indx_47(D).data; | |
_1 = *indx_47(D).dim[0].ubound; | |
_2 = *indx_47(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.18_52 = _3 + 1; | |
_56 = *keys_55(D).dim[0].stride; | |
if (_56 != 0) | |
goto <bb 5>; [50.00%] | |
else | |
goto <bb 6>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
_202 = -_56; | |
<bb 6> [local count: 1073741824]: | |
# iftmp.196_34 = PHI <_56(5), 1(4)> | |
# prephitmp_204 = PHI <_202(5), -1(4)> | |
_58 = *keys_55(D).data; | |
_60 = *keys_55(D).dim[1].stride; | |
_62 = prephitmp_204 - _60; | |
if (stat_65(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619514]: | |
*stat_65(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_5 = MAX_EXPR <ubound.18_52, 0>; | |
_67 = (integer(kind=4)) _5; | |
if (_67 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507700]: | |
_6 = MAX_EXPR <_67, 0>; | |
_13 = (unsigned long) _6; | |
size.32_75 = _13 * 4; | |
_206 = MAX_EXPR <size.32_75, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_209 = PHI <1(8), _206(9)> | |
_21 = __builtin_malloc (prephitmp_209); | |
if (_21 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_85(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325320]: | |
ierr = 5014; | |
dt_parm.35.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.35.common.line = 1003; | |
dt_parm.35.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.35.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.35] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.35); | |
_gfortran_transfer_character_write (&dt_parm.35, &"MCT(MPEU)::m_MergeSorts::dSort1_"[1]{lb: 1 sz: 1}, 32); | |
_gfortran_transfer_character_write (&dt_parm.35, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.35, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.35); | |
dt_parm.35 ={v} {CLOBBER}; | |
if (stat_65(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879682]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::dSort1_"[1]{lb: 1 sz: 1}, 32); | |
<bb 14> [local count: 217325320]: | |
*stat_65(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491315]: | |
_86 = *descend_85(D); | |
_243 = VIEW_CONVERT_EXPR<unsigned int>(_86); | |
<bb 16> [local count: 921485010]: | |
# SR.454_109 = PHI <0(11), _243(15)> | |
if (_67 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121659]: | |
_256 = (sizetype) iftmp.193_33; | |
_107 = _256 * 4; | |
<bb 18> [local count: 6929187988]: | |
# mstep_49 = PHI <lstep_110(19), 1(17)> | |
lstep_110 = mstep_49 * 2; | |
_113 = mstep_49 + 1; | |
_114 = _113 + -1; | |
_115 = mstep_49 + _114; | |
M.28_116 = MIN_EXPR <_115, _67>; | |
if (M.28_116 <= 0) | |
goto <bb 21>; [3.00%] | |
else | |
goto <bb 22>; [97.00%] | |
<bb 19> [local count: 6929187917]: | |
if (_67 <= lstep_110) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 18>; [89.00%] | |
<bb 20> [local count: 49896452583]: | |
# lb_269 = PHI <_130(35)> | |
_51 = mstep_49 + lb_269; | |
_124 = _51 + -1; | |
_16 = mstep_49 + _124; | |
M.28_53 = MIN_EXPR <_16, _67>; | |
<bb 21> [local count: 56063429779]: | |
# lb_129 = PHI <1(18), 1(34), lb_269(20)> | |
# M.28_143 = PHI <M.28_116(18), M.28_116(34), M.28_53(20)> | |
_119 = (integer(kind=8)) lb_129; | |
_120 = (integer(kind=8)) M.28_143; | |
if (_119 > _120) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896452537]: | |
_84 = 1; | |
_46 = _84 * 4; | |
_44 = _46 + 18446744073709551612; | |
_91 = _21 + _44; | |
ivtmp.469_87 = (unsigned long) _91; | |
_20 = (unsigned int) M.28_116; | |
_167 = 1; | |
_146 = _20 - _167; | |
_8 = (unsigned long) _146; | |
_10 = _8 + _84; | |
_22 = _10 * 4; | |
_151 = (unsigned long) _21; | |
_156 = _22 + _151; | |
<bb 23> [local count: 453604116900]: | |
# l2_54 = PHI <l2_242(34), _113(22)> | |
# l1_57 = PHI <l1_241(34), 1(22)> | |
# ivtmp.469_126 = PHI <ivtmp.469_123(34), ivtmp.469_87(22)> | |
if (l2_54 > M.28_116) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802058213]: | |
_205 = l1_57 + -1; | |
_15 = (integer(kind=8)) _205; | |
_36 = _15 * iftmp.193_33; | |
_147 = (*_50)[_36]; | |
l1_148 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802058213]: | |
_170 = l2_54 + -1; | |
_41 = (integer(kind=8)) _170; | |
_81 = iftmp.193_33 * _41; | |
pretmp_106 = (*_50)[_81]; | |
if (l1_57 >= _113) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401029106]: | |
l2_160 = l2_54 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401029106]: | |
_161 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.454_109); | |
_64 = l1_57 + -1; | |
_73 = (integer(kind=8)) _64; | |
_7 = iftmp.193_33 * _73; | |
pretmp_25 = (*_50)[_7]; | |
_203 = (integer(kind=8)) pretmp_25; | |
_222 = _60 * _203; | |
_237 = _62 + _222; | |
pretmp_232 = *ikey_45(D); | |
_164 = (integer(kind=8)) pretmp_232; | |
_183 = iftmp.196_34 * _164; | |
_198 = _183 + _237; | |
pretmp_193 = (*_58)[_198]; | |
_144 = (integer(kind=8)) pretmp_106; | |
_125 = _60 * _144; | |
_230 = _62 + _125; | |
_231 = _183 + _230; | |
pretmp_163 = (*_58)[_231]; | |
if (_161 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700514553]: | |
if (pretmp_163 <= pretmp_193) | |
goto <bb 29>; [50.00%] | |
else | |
goto <bb 30>; [50.00%] | |
<bb 29> [local count: 28350257277]: | |
l1_195 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 28350257277]: | |
l2_200 = l2_54 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700514553]: | |
if (pretmp_163 >= pretmp_193) | |
goto <bb 32>; [50.00%] | |
else | |
goto <bb 33>; [50.00%] | |
<bb 32> [local count: 28350257277]: | |
l1_234 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 28350257277]: | |
l2_239 = l2_54 + 1; | |
<bb 34> [local count: 453604116426]: | |
# l1_241 = PHI <l1_148(24), l1_57(26), l1_195(29), l1_57(30), l1_234(32), l1_57(33)> | |
# l2_242 = PHI <l2_54(24), l2_160(26), l2_54(29), l2_200(30), l2_54(32), l2_239(33)> | |
# _72 = PHI <_147(24), pretmp_106(26), pretmp_25(29), pretmp_106(30), pretmp_25(32), pretmp_106(33)> | |
_23 = (void *) ivtmp.469_126; | |
MEM[(integer(kind=4) *)_23] = _72; | |
ivtmp.469_123 = ivtmp.469_126 + 4; | |
if (ivtmp.469_123 == _156) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 23>; [89.00%] | |
<bb 35> [local count: 56063429831]: | |
_130 = M.28_143 + 1; | |
if (_67 <= _130) | |
goto <bb 19>; [11.00%] | |
else | |
goto <bb 20>; [89.00%] | |
<bb 36> [local count: 49896452537]: | |
_96 = (sizetype) lb_129; | |
_251 = _96 * 4; | |
_252 = _251 + 18446744073709551612; | |
_253 = _21 + _252; | |
ivtmp.462_97 = (unsigned long) _253; | |
_268 = _119 + -1; | |
_246 = iftmp.193_33 * _268; | |
_245 = (sizetype) _246; | |
_223 = _245 * 4; | |
_184 = _50 + _223; | |
ivtmp.464_90 = (unsigned long) _184; | |
_141 = (unsigned long) M.28_143; | |
_136 = _141 * 4; | |
_135 = (unsigned long) _21; | |
_134 = _136 + _135; | |
<bb 37> [local count: 453604116900]: | |
# ivtmp.462_61 = PHI <ivtmp.462_32(37), ivtmp.462_97(36)> | |
# ivtmp.464_254 = PHI <ivtmp.464_255(37), ivtmp.464_90(36)> | |
_166 = (void *) ivtmp.462_61; | |
_127 = MEM[(integer(kind=4) *)_166]; | |
_153 = (void *) ivtmp.464_254; | |
MEM[(integer(kind=4) *)_153] = _127; | |
ivtmp.462_32 = ivtmp.462_61 + 4; | |
ivtmp.464_255 = ivtmp.464_254 + _107; | |
if (ivtmp.462_32 == _134) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 37>; [89.00%] | |
<bb 38> [local count: 863574018]: | |
__builtin_free (_21); | |
<bb 39> [local count: 1073399116]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function rsort1_ (__m_mergesorts_MOD_rsort1_, funcdef_no=6, decl_uid=4292, cgraph_uid=8, symbol_order=7) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 5 6 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
Jump threading proved probability of edge 20->21 too small (it is 11.0% (guessed) should be always (guessed)) | |
SSA replacement table | |
N_i -> { O_1 ... O_j } means that N_i replaces O_1, ..., O_j | |
.MEM_4 -> { .MEM_63 } | |
_16 -> { _115 } | |
_51 -> { _113 } | |
M.46_53 -> { M.46_116 } | |
_124 -> { _114 } | |
lb_129 -> { lb_77 } | |
M.46_143 -> { M.46_116 } | |
lb_269 -> { lb_77 } | |
Incremental SSA update started at block: 20 | |
Number of blocks in CFG: 45 | |
Number of blocks to update: 9 ( 20%) | |
Merging blocks 18 and 20 | |
Removing basic block 40 | |
Removing basic block 41 | |
Removing basic block 42 | |
Removing basic block 43 | |
__attribute__((fn spec (". w r r r w "))) | |
void rsort1_ (struct array01_integer(kind=4) & restrict indx, struct array02_real(kind=4) & restrict keys, integer(kind=4) & restrict ikey, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
unsigned long ivtmp.494; | |
unsigned long ivtmp.489; | |
unsigned long ivtmp.487; | |
integer(kind=4) * vectp.482; | |
vector(2) integer(kind=4) * vectp_dt_parm.481; | |
unsigned int SR.479; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.53; | |
struct FRAME.rsort1_ FRAME.234; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.36; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
integer(kind=8) _5; | |
integer(kind=4) _6; | |
integer(kind=8) _7; | |
unsigned long _8; | |
unsigned long _10; | |
unsigned long _13; | |
integer(kind=8) _15; | |
integer(kind=4) _16; | |
unsigned int _20; | |
void * _21; | |
unsigned long _22; | |
void * _23; | |
integer(kind=4) pretmp_25; | |
void * _28; | |
void * _29; | |
integer(kind=8) iftmp.215_33; | |
integer(kind=8) iftmp.218_34; | |
integer(kind=8) _36; | |
integer(kind=8) _41; | |
sizetype _44; | |
sizetype _46; | |
integer(kind=8) _48; | |
integer(kind=4)[0:D.4751] * restrict _50; | |
integer(kind=4) _51; | |
integer(kind=4) M.46_53; | |
integer(kind=8) _56; | |
real(kind=4)[0:D.4747] * restrict _58; | |
integer(kind=8) _60; | |
integer(kind=8) _62; | |
integer(kind=4) _64; | |
integer(kind=4) _67; | |
integer(kind=4) _72; | |
integer(kind=8) _73; | |
unsigned long size.50_75; | |
integer(kind=8) _81; | |
sizetype _84; | |
logical(kind=4) _86; | |
void * _91; | |
sizetype _96; | |
integer(kind=4) pretmp_106; | |
sizetype _107; | |
integer(kind=4) _113; | |
integer(kind=4) _114; | |
integer(kind=4) _115; | |
integer(kind=4) M.46_116; | |
integer(kind=8) _119; | |
integer(kind=8) _120; | |
integer(kind=4) _124; | |
integer(kind=8) _125; | |
integer(kind=4) _127; | |
integer(kind=4) _130; | |
unsigned long _134; | |
unsigned long _135; | |
unsigned long _136; | |
unsigned long _141; | |
integer(kind=4) M.46_143; | |
integer(kind=8) _144; | |
unsigned int _146; | |
integer(kind=4) _147; | |
unsigned long _151; | |
void * _153; | |
unsigned long _156; | |
logical(kind=4) _161; | |
real(kind=4) pretmp_163; | |
integer(kind=8) _164; | |
void * _166; | |
unsigned int _167; | |
integer(kind=4) _170; | |
integer(kind=8) _183; | |
integer(kind=4)[0:D.4751] * _184; | |
real(kind=4) pretmp_193; | |
integer(kind=8) _198; | |
integer(kind=8) _202; | |
integer(kind=8) _203; | |
integer(kind=8) prephitmp_204; | |
integer(kind=4) _205; | |
unsigned long _206; | |
unsigned long prephitmp_209; | |
integer(kind=8) _222; | |
sizetype _223; | |
integer(kind=8) _230; | |
integer(kind=8) _231; | |
integer(kind=4) pretmp_232; | |
integer(kind=8) _237; | |
unsigned int _243; | |
sizetype _245; | |
integer(kind=8) _246; | |
sizetype _251; | |
sizetype _252; | |
void * _253; | |
sizetype _256; | |
integer(kind=8) _268; | |
<bb 2> [local count: 1073741824]: | |
_48 = *indx_47(D).dim[0].stride; | |
if (_48 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.215_33 = PHI <_48(2), 1(3)> | |
_50 = *indx_47(D).data; | |
_1 = *indx_47(D).dim[0].ubound; | |
_2 = *indx_47(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.36_52 = _3 + 1; | |
_56 = *keys_55(D).dim[0].stride; | |
if (_56 != 0) | |
goto <bb 5>; [50.00%] | |
else | |
goto <bb 6>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
_202 = -_56; | |
<bb 6> [local count: 1073741824]: | |
# iftmp.218_34 = PHI <_56(5), 1(4)> | |
# prephitmp_204 = PHI <_202(5), -1(4)> | |
_58 = *keys_55(D).data; | |
_60 = *keys_55(D).dim[1].stride; | |
_62 = prephitmp_204 - _60; | |
if (stat_65(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619514]: | |
*stat_65(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_5 = MAX_EXPR <ubound.36_52, 0>; | |
_67 = (integer(kind=4)) _5; | |
if (_67 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507700]: | |
_6 = MAX_EXPR <_67, 0>; | |
_13 = (unsigned long) _6; | |
size.50_75 = _13 * 4; | |
_206 = MAX_EXPR <size.50_75, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_209 = PHI <1(8), _206(9)> | |
_21 = __builtin_malloc (prephitmp_209); | |
if (_21 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_85(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325320]: | |
ierr = 5014; | |
dt_parm.53.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.53.common.line = 885; | |
dt_parm.53.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.53.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.53] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.53); | |
_gfortran_transfer_character_write (&dt_parm.53, &"MCT(MPEU)::m_MergeSorts::rSort1_"[1]{lb: 1 sz: 1}, 32); | |
_gfortran_transfer_character_write (&dt_parm.53, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.53, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.53); | |
dt_parm.53 ={v} {CLOBBER}; | |
if (stat_65(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879682]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::rSort1_"[1]{lb: 1 sz: 1}, 32); | |
<bb 14> [local count: 217325320]: | |
*stat_65(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491315]: | |
_86 = *descend_85(D); | |
_243 = VIEW_CONVERT_EXPR<unsigned int>(_86); | |
<bb 16> [local count: 921485010]: | |
# SR.479_109 = PHI <0(11), _243(15)> | |
if (_67 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121659]: | |
_256 = (sizetype) iftmp.215_33; | |
_107 = _256 * 4; | |
<bb 18> [local count: 6929187988]: | |
# mstep_49 = PHI <lstep_110(19), 1(17)> | |
lstep_110 = mstep_49 * 2; | |
_113 = mstep_49 + 1; | |
_114 = _113 + -1; | |
_115 = mstep_49 + _114; | |
M.46_116 = MIN_EXPR <_115, _67>; | |
if (M.46_116 <= 0) | |
goto <bb 21>; [3.00%] | |
else | |
goto <bb 22>; [97.00%] | |
<bb 19> [local count: 6929187917]: | |
if (_67 <= lstep_110) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 18>; [89.00%] | |
<bb 20> [local count: 49896452583]: | |
# lb_269 = PHI <_130(35)> | |
_51 = mstep_49 + lb_269; | |
_124 = _51 + -1; | |
_16 = mstep_49 + _124; | |
M.46_53 = MIN_EXPR <_16, _67>; | |
<bb 21> [local count: 56063429779]: | |
# lb_129 = PHI <1(18), 1(34), lb_269(20)> | |
# M.46_143 = PHI <M.46_116(18), M.46_116(34), M.46_53(20)> | |
_119 = (integer(kind=8)) lb_129; | |
_120 = (integer(kind=8)) M.46_143; | |
if (_119 > _120) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896452537]: | |
_84 = 1; | |
_46 = _84 * 4; | |
_44 = _46 + 18446744073709551612; | |
_91 = _21 + _44; | |
ivtmp.494_87 = (unsigned long) _91; | |
_20 = (unsigned int) M.46_116; | |
_167 = 1; | |
_146 = _20 - _167; | |
_8 = (unsigned long) _146; | |
_10 = _8 + _84; | |
_22 = _10 * 4; | |
_151 = (unsigned long) _21; | |
_156 = _22 + _151; | |
<bb 23> [local count: 453604116900]: | |
# l2_54 = PHI <l2_242(34), _113(22)> | |
# l1_57 = PHI <l1_241(34), 1(22)> | |
# ivtmp.494_126 = PHI <ivtmp.494_123(34), ivtmp.494_87(22)> | |
if (l2_54 > M.46_116) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802058213]: | |
_205 = l1_57 + -1; | |
_15 = (integer(kind=8)) _205; | |
_36 = _15 * iftmp.215_33; | |
_147 = (*_50)[_36]; | |
l1_148 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802058213]: | |
_170 = l2_54 + -1; | |
_41 = (integer(kind=8)) _170; | |
_81 = iftmp.215_33 * _41; | |
pretmp_106 = (*_50)[_81]; | |
if (l1_57 >= _113) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401029106]: | |
l2_160 = l2_54 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401029106]: | |
_161 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.479_109); | |
_64 = l1_57 + -1; | |
_73 = (integer(kind=8)) _64; | |
_7 = iftmp.215_33 * _73; | |
pretmp_25 = (*_50)[_7]; | |
_203 = (integer(kind=8)) pretmp_25; | |
_222 = _60 * _203; | |
_237 = _62 + _222; | |
pretmp_232 = *ikey_45(D); | |
_164 = (integer(kind=8)) pretmp_232; | |
_183 = iftmp.218_34 * _164; | |
_198 = _183 + _237; | |
pretmp_193 = (*_58)[_198]; | |
_144 = (integer(kind=8)) pretmp_106; | |
_125 = _60 * _144; | |
_230 = _62 + _125; | |
_231 = _183 + _230; | |
pretmp_163 = (*_58)[_231]; | |
if (_161 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700514553]: | |
if (pretmp_163 <= pretmp_193) | |
goto <bb 29>; [50.00%] | |
else | |
goto <bb 30>; [50.00%] | |
<bb 29> [local count: 28350257277]: | |
l1_195 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 28350257277]: | |
l2_200 = l2_54 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700514553]: | |
if (pretmp_163 >= pretmp_193) | |
goto <bb 32>; [50.00%] | |
else | |
goto <bb 33>; [50.00%] | |
<bb 32> [local count: 28350257277]: | |
l1_234 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 28350257277]: | |
l2_239 = l2_54 + 1; | |
<bb 34> [local count: 453604116426]: | |
# l1_241 = PHI <l1_148(24), l1_57(26), l1_195(29), l1_57(30), l1_234(32), l1_57(33)> | |
# l2_242 = PHI <l2_54(24), l2_160(26), l2_54(29), l2_200(30), l2_54(32), l2_239(33)> | |
# _72 = PHI <_147(24), pretmp_106(26), pretmp_25(29), pretmp_106(30), pretmp_25(32), pretmp_106(33)> | |
_23 = (void *) ivtmp.494_126; | |
MEM[(integer(kind=4) *)_23] = _72; | |
ivtmp.494_123 = ivtmp.494_126 + 4; | |
if (ivtmp.494_123 == _156) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 23>; [89.00%] | |
<bb 35> [local count: 56063429831]: | |
_130 = M.46_143 + 1; | |
if (_67 <= _130) | |
goto <bb 19>; [11.00%] | |
else | |
goto <bb 20>; [89.00%] | |
<bb 36> [local count: 49896452537]: | |
_96 = (sizetype) lb_129; | |
_251 = _96 * 4; | |
_252 = _251 + 18446744073709551612; | |
_253 = _21 + _252; | |
ivtmp.487_97 = (unsigned long) _253; | |
_268 = _119 + -1; | |
_246 = iftmp.215_33 * _268; | |
_245 = (sizetype) _246; | |
_223 = _245 * 4; | |
_184 = _50 + _223; | |
ivtmp.489_90 = (unsigned long) _184; | |
_141 = (unsigned long) M.46_143; | |
_136 = _141 * 4; | |
_135 = (unsigned long) _21; | |
_134 = _136 + _135; | |
<bb 37> [local count: 453604116900]: | |
# ivtmp.487_61 = PHI <ivtmp.487_32(37), ivtmp.487_97(36)> | |
# ivtmp.489_254 = PHI <ivtmp.489_255(37), ivtmp.489_90(36)> | |
_166 = (void *) ivtmp.487_61; | |
_127 = MEM[(integer(kind=4) *)_166]; | |
_153 = (void *) ivtmp.489_254; | |
MEM[(integer(kind=4) *)_153] = _127; | |
ivtmp.487_32 = ivtmp.487_61 + 4; | |
ivtmp.489_255 = ivtmp.489_254 + _107; | |
if (ivtmp.487_32 == _134) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 37>; [89.00%] | |
<bb 38> [local count: 863574018]: | |
__builtin_free (_21); | |
<bb 39> [local count: 1073399116]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function isort1_ (__m_mergesorts_MOD_isort1_, funcdef_no=9, decl_uid=4309, cgraph_uid=11, symbol_order=10) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 5 6 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
Jump threading proved probability of edge 20->21 too small (it is 11.0% (guessed) should be always (guessed)) | |
SSA replacement table | |
N_i -> { O_1 ... O_j } means that N_i replaces O_1, ..., O_j | |
.MEM_4 -> { .MEM_63 } | |
_16 -> { _115 } | |
_51 -> { _113 } | |
M.64_53 -> { M.64_116 } | |
_124 -> { _114 } | |
lb_129 -> { lb_77 } | |
M.64_143 -> { M.64_116 } | |
lb_269 -> { lb_77 } | |
Incremental SSA update started at block: 20 | |
Number of blocks in CFG: 45 | |
Number of blocks to update: 9 ( 20%) | |
Merging blocks 18 and 20 | |
Removing basic block 40 | |
Removing basic block 41 | |
Removing basic block 42 | |
Removing basic block 43 | |
__attribute__((fn spec (". w r r r w "))) | |
void isort1_ (struct array01_integer(kind=4) & restrict indx, struct array02_integer(kind=4) & restrict keys, integer(kind=4) & restrict ikey, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
unsigned long ivtmp.519; | |
unsigned long ivtmp.514; | |
unsigned long ivtmp.512; | |
integer(kind=4) * vectp.507; | |
vector(2) integer(kind=4) * vectp_dt_parm.506; | |
unsigned int SR.504; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.71; | |
struct FRAME.isort1_ FRAME.256; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.54; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
integer(kind=8) _5; | |
integer(kind=4) _6; | |
integer(kind=8) _7; | |
unsigned long _8; | |
unsigned long _10; | |
unsigned long _13; | |
integer(kind=8) _15; | |
integer(kind=4) _16; | |
unsigned int _20; | |
void * _21; | |
unsigned long _22; | |
void * _23; | |
integer(kind=4) pretmp_25; | |
void * _28; | |
void * _29; | |
integer(kind=8) iftmp.237_33; | |
integer(kind=8) iftmp.240_34; | |
integer(kind=8) _36; | |
integer(kind=8) _41; | |
sizetype _44; | |
sizetype _46; | |
integer(kind=8) _48; | |
integer(kind=4)[0:D.4853] * restrict _50; | |
integer(kind=4) _51; | |
integer(kind=4) M.64_53; | |
integer(kind=8) _56; | |
integer(kind=4)[0:D.4849] * restrict _58; | |
integer(kind=8) _60; | |
integer(kind=8) _62; | |
integer(kind=4) _64; | |
integer(kind=4) _67; | |
integer(kind=4) _72; | |
integer(kind=8) _73; | |
unsigned long size.68_75; | |
integer(kind=8) _81; | |
sizetype _84; | |
logical(kind=4) _86; | |
void * _91; | |
sizetype _96; | |
integer(kind=4) pretmp_106; | |
sizetype _107; | |
integer(kind=4) _113; | |
integer(kind=4) _114; | |
integer(kind=4) _115; | |
integer(kind=4) M.64_116; | |
integer(kind=8) _119; | |
integer(kind=8) _120; | |
integer(kind=4) _124; | |
integer(kind=8) _125; | |
integer(kind=4) _127; | |
integer(kind=4) _130; | |
unsigned long _134; | |
unsigned long _135; | |
unsigned long _136; | |
unsigned long _141; | |
integer(kind=4) M.64_143; | |
integer(kind=8) _144; | |
unsigned int _146; | |
integer(kind=4) _147; | |
unsigned long _151; | |
void * _153; | |
unsigned long _156; | |
logical(kind=4) _161; | |
integer(kind=4) pretmp_163; | |
integer(kind=8) _164; | |
void * _166; | |
unsigned int _167; | |
integer(kind=4) _170; | |
integer(kind=8) _183; | |
integer(kind=4)[0:D.4853] * _184; | |
integer(kind=4) pretmp_193; | |
integer(kind=8) _198; | |
integer(kind=8) _202; | |
integer(kind=8) _203; | |
integer(kind=8) prephitmp_204; | |
integer(kind=4) _205; | |
unsigned long _206; | |
unsigned long prephitmp_209; | |
integer(kind=8) _222; | |
sizetype _223; | |
integer(kind=8) _230; | |
integer(kind=8) _231; | |
integer(kind=4) pretmp_232; | |
integer(kind=8) _237; | |
unsigned int _243; | |
sizetype _245; | |
integer(kind=8) _246; | |
sizetype _251; | |
sizetype _252; | |
void * _253; | |
sizetype _256; | |
integer(kind=8) _268; | |
<bb 2> [local count: 1073741824]: | |
_48 = *indx_47(D).dim[0].stride; | |
if (_48 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.237_33 = PHI <_48(2), 1(3)> | |
_50 = *indx_47(D).data; | |
_1 = *indx_47(D).dim[0].ubound; | |
_2 = *indx_47(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.54_52 = _3 + 1; | |
_56 = *keys_55(D).dim[0].stride; | |
if (_56 != 0) | |
goto <bb 5>; [50.00%] | |
else | |
goto <bb 6>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
_202 = -_56; | |
<bb 6> [local count: 1073741824]: | |
# iftmp.240_34 = PHI <_56(5), 1(4)> | |
# prephitmp_204 = PHI <_202(5), -1(4)> | |
_58 = *keys_55(D).data; | |
_60 = *keys_55(D).dim[1].stride; | |
_62 = prephitmp_204 - _60; | |
if (stat_65(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619514]: | |
*stat_65(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_5 = MAX_EXPR <ubound.54_52, 0>; | |
_67 = (integer(kind=4)) _5; | |
if (_67 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507700]: | |
_6 = MAX_EXPR <_67, 0>; | |
_13 = (unsigned long) _6; | |
size.68_75 = _13 * 4; | |
_206 = MAX_EXPR <size.68_75, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_209 = PHI <1(8), _206(9)> | |
_21 = __builtin_malloc (prephitmp_209); | |
if (_21 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_85(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325320]: | |
ierr = 5014; | |
dt_parm.71.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.71.common.line = 767; | |
dt_parm.71.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.71.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.71] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.71); | |
_gfortran_transfer_character_write (&dt_parm.71, &"MCT(MPEU)::m_MergeSorts::iSort1_"[1]{lb: 1 sz: 1}, 32); | |
_gfortran_transfer_character_write (&dt_parm.71, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.71, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.71); | |
dt_parm.71 ={v} {CLOBBER}; | |
if (stat_65(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879682]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::iSort1_"[1]{lb: 1 sz: 1}, 32); | |
<bb 14> [local count: 217325320]: | |
*stat_65(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491315]: | |
_86 = *descend_85(D); | |
_243 = VIEW_CONVERT_EXPR<unsigned int>(_86); | |
<bb 16> [local count: 921485010]: | |
# SR.504_109 = PHI <0(11), _243(15)> | |
if (_67 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121659]: | |
_256 = (sizetype) iftmp.237_33; | |
_107 = _256 * 4; | |
<bb 18> [local count: 6929187988]: | |
# mstep_49 = PHI <lstep_110(19), 1(17)> | |
lstep_110 = mstep_49 * 2; | |
_113 = mstep_49 + 1; | |
_114 = _113 + -1; | |
_115 = mstep_49 + _114; | |
M.64_116 = MIN_EXPR <_115, _67>; | |
if (M.64_116 <= 0) | |
goto <bb 21>; [3.00%] | |
else | |
goto <bb 22>; [97.00%] | |
<bb 19> [local count: 6929187917]: | |
if (_67 <= lstep_110) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 18>; [89.00%] | |
<bb 20> [local count: 49896452583]: | |
# lb_269 = PHI <_130(35)> | |
_51 = mstep_49 + lb_269; | |
_124 = _51 + -1; | |
_16 = mstep_49 + _124; | |
M.64_53 = MIN_EXPR <_16, _67>; | |
<bb 21> [local count: 56063429779]: | |
# lb_129 = PHI <1(18), 1(34), lb_269(20)> | |
# M.64_143 = PHI <M.64_116(18), M.64_116(34), M.64_53(20)> | |
_119 = (integer(kind=8)) lb_129; | |
_120 = (integer(kind=8)) M.64_143; | |
if (_119 > _120) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896452537]: | |
_84 = 1; | |
_46 = _84 * 4; | |
_44 = _46 + 18446744073709551612; | |
_91 = _21 + _44; | |
ivtmp.519_87 = (unsigned long) _91; | |
_20 = (unsigned int) M.64_116; | |
_167 = 1; | |
_146 = _20 - _167; | |
_8 = (unsigned long) _146; | |
_10 = _8 + _84; | |
_22 = _10 * 4; | |
_151 = (unsigned long) _21; | |
_156 = _22 + _151; | |
<bb 23> [local count: 453604116900]: | |
# l2_54 = PHI <l2_242(34), _113(22)> | |
# l1_57 = PHI <l1_241(34), 1(22)> | |
# ivtmp.519_126 = PHI <ivtmp.519_123(34), ivtmp.519_87(22)> | |
if (l2_54 > M.64_116) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802058213]: | |
_205 = l1_57 + -1; | |
_15 = (integer(kind=8)) _205; | |
_36 = _15 * iftmp.237_33; | |
_147 = (*_50)[_36]; | |
l1_148 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802058213]: | |
_170 = l2_54 + -1; | |
_41 = (integer(kind=8)) _170; | |
_81 = iftmp.237_33 * _41; | |
pretmp_106 = (*_50)[_81]; | |
if (l1_57 >= _113) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401029106]: | |
l2_160 = l2_54 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401029106]: | |
_161 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.504_109); | |
_64 = l1_57 + -1; | |
_73 = (integer(kind=8)) _64; | |
_7 = iftmp.237_33 * _73; | |
pretmp_25 = (*_50)[_7]; | |
_203 = (integer(kind=8)) pretmp_25; | |
_222 = _60 * _203; | |
_237 = _62 + _222; | |
pretmp_232 = *ikey_45(D); | |
_164 = (integer(kind=8)) pretmp_232; | |
_183 = iftmp.240_34 * _164; | |
_198 = _183 + _237; | |
pretmp_193 = (*_58)[_198]; | |
_144 = (integer(kind=8)) pretmp_106; | |
_125 = _60 * _144; | |
_230 = _62 + _125; | |
_231 = _183 + _230; | |
pretmp_163 = (*_58)[_231]; | |
if (_161 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700514553]: | |
if (pretmp_163 <= pretmp_193) | |
goto <bb 29>; [50.00%] | |
else | |
goto <bb 30>; [50.00%] | |
<bb 29> [local count: 28350257277]: | |
l1_195 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 28350257277]: | |
l2_200 = l2_54 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700514553]: | |
if (pretmp_163 >= pretmp_193) | |
goto <bb 32>; [50.00%] | |
else | |
goto <bb 33>; [50.00%] | |
<bb 32> [local count: 28350257277]: | |
l1_234 = l1_57 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 28350257277]: | |
l2_239 = l2_54 + 1; | |
<bb 34> [local count: 453604116426]: | |
# l1_241 = PHI <l1_148(24), l1_57(26), l1_195(29), l1_57(30), l1_234(32), l1_57(33)> | |
# l2_242 = PHI <l2_54(24), l2_160(26), l2_54(29), l2_200(30), l2_54(32), l2_239(33)> | |
# _72 = PHI <_147(24), pretmp_106(26), pretmp_25(29), pretmp_106(30), pretmp_25(32), pretmp_106(33)> | |
_23 = (void *) ivtmp.519_126; | |
MEM[(integer(kind=4) *)_23] = _72; | |
ivtmp.519_123 = ivtmp.519_126 + 4; | |
if (ivtmp.519_123 == _156) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 23>; [89.00%] | |
<bb 35> [local count: 56063429831]: | |
_130 = M.64_143 + 1; | |
if (_67 <= _130) | |
goto <bb 19>; [11.00%] | |
else | |
goto <bb 20>; [89.00%] | |
<bb 36> [local count: 49896452537]: | |
_96 = (sizetype) lb_129; | |
_251 = _96 * 4; | |
_252 = _251 + 18446744073709551612; | |
_253 = _21 + _252; | |
ivtmp.512_97 = (unsigned long) _253; | |
_268 = _119 + -1; | |
_246 = iftmp.237_33 * _268; | |
_245 = (sizetype) _246; | |
_223 = _245 * 4; | |
_184 = _50 + _223; | |
ivtmp.514_90 = (unsigned long) _184; | |
_141 = (unsigned long) M.64_143; | |
_136 = _141 * 4; | |
_135 = (unsigned long) _21; | |
_134 = _136 + _135; | |
<bb 37> [local count: 453604116900]: | |
# ivtmp.512_61 = PHI <ivtmp.512_32(37), ivtmp.512_97(36)> | |
# ivtmp.514_254 = PHI <ivtmp.514_255(37), ivtmp.514_90(36)> | |
_166 = (void *) ivtmp.512_61; | |
_127 = MEM[(integer(kind=4) *)_166]; | |
_153 = (void *) ivtmp.514_254; | |
MEM[(integer(kind=4) *)_153] = _127; | |
ivtmp.512_32 = ivtmp.512_61 + 4; | |
ivtmp.514_255 = ivtmp.514_254 + _107; | |
if (ivtmp.512_32 == _134) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 37>; [89.00%] | |
<bb 38> [local count: 863574018]: | |
__builtin_free (_21); | |
<bb 39> [local count: 1073399116]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function csort_ (__m_mergesorts_MOD_csort_, funcdef_no=12, decl_uid=4326, cgraph_uid=14, symbol_order=13) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 6 5 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
-***dbgcnt: upper limit 5 reached for back_threadfull2.*** | |
Jump threading proved probability of edge 20->21 too small (it is 11.0% (guessed) should be always (guessed)) | |
SSA replacement table | |
N_i -> { O_1 ... O_j } means that N_i replaces O_1, ..., O_j | |
_44 -> { _112 } | |
M.80_80 -> { M.80_115 } | |
_90 -> { _113 } | |
lb_123 -> { lb_67 } | |
M.80_128 -> { M.80_115 } | |
.MEM_164 -> { .MEM_54 } | |
lb_217 -> { lb_67 } | |
_260 -> { _114 } | |
Incremental SSA update started at block: 20 | |
Number of blocks in CFG: 45 | |
Number of blocks to update: 9 ( 20%) | |
Merging blocks 18 and 20 | |
Removing basic block 40 | |
Removing basic block 41 | |
Removing basic block 42 | |
Removing basic block 43 | |
__attribute__((fn spec (". w r r w "))) | |
void csort_ (struct array01_integer(kind=4) & restrict indx, struct array01_character(kind=1) & restrict keys, logical(kind=4) * descend, integer(kind=4) * stat, integer(kind=8) _keys) | |
{ | |
unsigned long ivtmp.544; | |
unsigned long ivtmp.539; | |
unsigned long ivtmp.537; | |
integer(kind=4) * vectp.532; | |
vector(2) integer(kind=4) * vectp_dt_parm.531; | |
unsigned int SR.529; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.87; | |
struct FRAME.csort_ FRAME.281; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.72; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
sizetype _keys.263_4; | |
integer(kind=8) _5; | |
integer(kind=4) _6; | |
integer(kind=4) _7; | |
integer(kind=8) _8; | |
integer(kind=8) _10; | |
unsigned long _13; | |
void * _20; | |
void * _21; | |
integer(kind=4) pretmp_22; | |
integer(kind=8) _23; | |
integer(kind=8) _25; | |
void * _28; | |
void * _29; | |
integer(kind=8) iftmp.259_33; | |
integer(kind=8) iftmp.262_34; | |
unsigned int _41; | |
integer(kind=4) _44; | |
integer(kind=8) _48; | |
integer(kind=4)[0:D.4955] * restrict _50; | |
integer(kind=8) _56; | |
integer(kind=4) _57; | |
character(kind=1)[0:D.4951][1:_keys] * restrict _58; | |
integer(kind=4) _62; | |
unsigned int _63; | |
integer(kind=4) _66; | |
sizetype _68; | |
sizetype _69; | |
unsigned int _72; | |
unsigned long size.84_74; | |
integer(kind=4) M.80_80; | |
logical(kind=4) _85; | |
integer(kind=4) _90; | |
sizetype _95; | |
sizetype _106; | |
integer(kind=4) _112; | |
integer(kind=4) _113; | |
integer(kind=4) _114; | |
integer(kind=4) M.80_115; | |
integer(kind=8) _118; | |
integer(kind=8) _119; | |
unsigned long _124; | |
unsigned long _125; | |
integer(kind=4) _126; | |
integer(kind=4) M.80_128; | |
integer(kind=4) _129; | |
integer(kind=8) _132; | |
unsigned long _133; | |
unsigned long _135; | |
character(kind=1)[1:_keys] * _138; | |
unsigned long _140; | |
integer(kind=4) _143; | |
integer(kind=4) _146; | |
character(kind=1)[1:_keys] * _150; | |
void * _152; | |
void * _155; | |
logical(kind=4) _160; | |
integer(kind=8) _162; | |
sizetype _163; | |
void * _165; | |
sizetype _166; | |
integer(kind=4) pretmp_169; | |
sizetype _170; | |
integer(kind=8) _177; | |
sizetype _181; | |
integer(kind=4)[0:D.4955] * _182; | |
unsigned long _188; | |
sizetype _193; | |
sizetype _197; | |
integer(kind=8) _198; | |
sizetype _199; | |
unsigned long _201; | |
unsigned long prephitmp_204; | |
unsigned long _205; | |
integer(kind=8) _207; | |
unsigned long _212; | |
integer(kind=8) _213; | |
integer(kind=8) _216; | |
integer(kind=4) _221; | |
integer(kind=8) _222; | |
unsigned long _223; | |
integer(kind=8) _228; | |
unsigned int _234; | |
sizetype _242; | |
sizetype _243; | |
void * _244; | |
sizetype _247; | |
integer(kind=8) _256; | |
integer(kind=4) _260; | |
<bb 2> [local count: 1073741824]: | |
_48 = *indx_47(D).dim[0].stride; | |
if (_48 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.259_33 = PHI <_48(2), 1(3)> | |
_50 = *indx_47(D).data; | |
_1 = *indx_47(D).dim[0].ubound; | |
_2 = *indx_47(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.72_52 = _3 + 1; | |
_56 = *keys_55(D).dim[0].stride; | |
if (_56 != 0) | |
goto <bb 6>; [50.00%] | |
else | |
goto <bb 5>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
<bb 6> [local count: 1073741824]: | |
# iftmp.262_34 = PHI <_56(4), 1(5)> | |
_58 = *keys_55(D).data; | |
_keys.263_4 = (sizetype) _keys_45(D); | |
if (stat_64(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619562]: | |
*stat_64(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_5 = MAX_EXPR <ubound.72_52, 0>; | |
_66 = (integer(kind=4)) _5; | |
if (_66 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507591]: | |
_6 = MAX_EXPR <_66, 0>; | |
_13 = (unsigned long) _6; | |
size.84_74 = _13 * 4; | |
_201 = MAX_EXPR <size.84_74, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_204 = PHI <1(8), _201(9)> | |
_21 = __builtin_malloc (prephitmp_204); | |
if (_21 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_84(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325134]: | |
ierr = 5014; | |
dt_parm.87.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.87.common.line = 650; | |
dt_parm.87.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.87.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.87] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.87); | |
_gfortran_transfer_character_write (&dt_parm.87, &"MCT(MPEU)::m_MergeSorts::cSort_"[1]{lb: 1 sz: 1}, 31); | |
_gfortran_transfer_character_write (&dt_parm.87, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.87, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.87); | |
dt_parm.87 ={v} {CLOBBER}; | |
if (stat_64(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879733]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::cSort_"[1]{lb: 1 sz: 1}, 31); | |
<bb 14> [local count: 217325134]: | |
*stat_64(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491636]: | |
_85 = *descend_84(D); | |
_234 = VIEW_CONVERT_EXPR<unsigned int>(_85); | |
<bb 16> [local count: 921485331]: | |
# SR.529_108 = PHI <0(11), _234(15)> | |
if (_66 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121945]: | |
_247 = (sizetype) iftmp.259_33; | |
_106 = _247 * 4; | |
<bb 18> [local count: 6929196228]: | |
# mstep_259 = PHI <lstep_109(19), 1(17)> | |
lstep_109 = mstep_259 * 2; | |
_112 = mstep_259 + 1; | |
_113 = _112 + -1; | |
_114 = _113 + mstep_259; | |
M.80_115 = MIN_EXPR <_114, _66>; | |
if (M.80_115 <= 0) | |
goto <bb 21>; [3.00%] | |
else | |
goto <bb 22>; [97.00%] | |
<bb 19> [local count: 6166985421]: | |
if (_66 <= lstep_109) | |
goto <bb 38>; [3.00%] | |
else | |
goto <bb 18>; [97.00%] | |
<bb 20> [local count: 49896518755]: | |
# lb_217 = PHI <_129(35)> | |
_44 = lb_217 + mstep_259; | |
_90 = _44 + -1; | |
_260 = _90 + mstep_259; | |
M.80_80 = MIN_EXPR <_260, _66>; | |
<bb 21> [local count: 56063504130]: | |
# lb_123 = PHI <1(18), 1(34), lb_217(20)> | |
# M.80_128 = PHI <M.80_115(18), M.80_115(34), M.80_80(20)> | |
_118 = (integer(kind=8)) lb_123; | |
_119 = (integer(kind=8)) M.80_128; | |
if (_118 > _119) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896517865]: | |
_69 = 1; | |
_68 = _69 * 4; | |
_166 = _68 + 18446744073709551612; | |
_155 = _21 + _166; | |
ivtmp.544_70 = (unsigned long) _155; | |
_41 = (unsigned int) M.80_115; | |
_63 = 1; | |
_72 = _41 - _63; | |
_205 = (unsigned long) _72; | |
_212 = _69 + _205; | |
_223 = _212 * 4; | |
_188 = (unsigned long) _21; | |
_124 = _223 + _188; | |
<bb 23> [local count: 453604718470]: | |
# l2_46 = PHI <l2_233(34), _112(22)> | |
# l1_49 = PHI <l1_232(34), 1(22)> | |
# ivtmp.544_76 = PHI <ivtmp.544_71(34), ivtmp.544_70(22)> | |
if (l2_46 > M.80_115) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802358998]: | |
_57 = l1_49 + -1; | |
_256 = (integer(kind=8)) _57; | |
_132 = iftmp.259_33 * _256; | |
_146 = (*_50)[_132]; | |
l1_147 = l1_49 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802358998]: | |
_221 = l2_46 + -1; | |
_222 = (integer(kind=8)) _221; | |
_162 = iftmp.259_33 * _222; | |
pretmp_169 = (*_50)[_162]; | |
if (l1_49 >= _112) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401179499]: | |
l2_159 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401179499]: | |
_160 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.529_108); | |
_7 = l1_49 + -1; | |
_8 = (integer(kind=8)) _7; | |
_10 = _8 * iftmp.259_33; | |
pretmp_22 = (*_50)[_10]; | |
_23 = (integer(kind=8)) pretmp_22; | |
_25 = _23 + -1; | |
_198 = _25 * iftmp.262_34; | |
_216 = (integer(kind=8)) pretmp_169; | |
_228 = _216 + -1; | |
_163 = (sizetype) _198; | |
_170 = _163 * _keys.263_4; | |
_177 = iftmp.262_34 * _228; | |
_181 = (sizetype) _177; | |
_193 = _181 * _keys.263_4; | |
_150 = _58 + _193; | |
_138 = _58 + _170; | |
_143 = _gfortran_compare_string (_keys_45(D), _138, _keys_45(D), _150); | |
if (_160 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700589749]: | |
if (_143 >= 0) | |
goto <bb 29>; [59.00%] | |
else | |
goto <bb 30>; [41.00%] | |
<bb 29> [local count: 33453348417]: | |
l1_190 = l1_49 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 23247241807]: | |
l2_195 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700589749]: | |
if (_143 <= 0) | |
goto <bb 32>; [41.00%] | |
else | |
goto <bb 33>; [59.00%] | |
<bb 32> [local count: 23247241807]: | |
l1_225 = l1_49 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 33453348417]: | |
l2_230 = l2_46 + 1; | |
<bb 34> [local count: 453604718945]: | |
# l1_232 = PHI <l1_147(24), l1_49(26), l1_190(29), l1_49(30), l1_225(32), l1_49(33)> | |
# l2_233 = PHI <l2_46(24), l2_159(26), l2_46(29), l2_195(30), l2_46(32), l2_230(33)> | |
# _62 = PHI <_146(24), pretmp_169(26), pretmp_22(29), pretmp_169(30), pretmp_22(32), pretmp_169(33)> | |
_20 = (void *) ivtmp.544_76; | |
MEM[(integer(kind=4) *)_20] = _62; | |
ivtmp.544_71 = ivtmp.544_76 + 4; | |
if (ivtmp.544_71 == _124) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 23>; [89.00%] | |
<bb 35> [local count: 56063504182]: | |
_129 = M.80_128 + 1; | |
if (_66 <= _129) | |
goto <bb 19>; [11.00%] | |
else | |
goto <bb 20>; [89.00%] | |
<bb 36> [local count: 49896518709]: | |
_95 = (sizetype) lb_123; | |
_242 = _95 * 4; | |
_243 = _242 + 18446744073709551612; | |
_244 = _21 + _243; | |
ivtmp.537_96 = (unsigned long) _244; | |
_213 = _118 + -1; | |
_207 = iftmp.259_33 * _213; | |
_199 = (sizetype) _207; | |
_197 = _199 * 4; | |
_182 = _50 + _197; | |
ivtmp.539_89 = (unsigned long) _182; | |
_140 = (unsigned long) M.80_128; | |
_135 = _140 * 4; | |
_133 = (unsigned long) _21; | |
_125 = _135 + _133; | |
<bb 37> [local count: 453604718470]: | |
# ivtmp.537_53 = PHI <ivtmp.537_32(37), ivtmp.537_96(36)> | |
# ivtmp.539_245 = PHI <ivtmp.539_246(37), ivtmp.539_89(36)> | |
_165 = (void *) ivtmp.537_53; | |
_126 = MEM[(integer(kind=4) *)_165]; | |
_152 = (void *) ivtmp.539_245; | |
MEM[(integer(kind=4) *)_152] = _126; | |
ivtmp.537_32 = ivtmp.537_53 + 4; | |
ivtmp.539_246 = ivtmp.539_245 + _106; | |
if (ivtmp.537_32 == _125) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 37>; [89.00%] | |
<bb 38> [local count: 856074931]: | |
__builtin_free (_21); | |
<bb 39> [local count: 1073400065]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function dsort_ (__m_mergesorts_MOD_dsort_, funcdef_no=15, decl_uid=4348, cgraph_uid=17, symbol_order=16) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 6 5 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
+***dbgcnt: upper limit 6 reached for back_threadfull2.*** | |
+Jump threading proved probability of edge 20->21 too small (it is 11.0% (guessed) should be always (guessed)) | |
+ | |
+SSA replacement table | |
+N_i -> { O_1 ... O_j } means that N_i replaces O_1, ..., O_j | |
+ | |
+_43 -> { _108 } | |
+M.96_119 -> { M.96_111 } | |
+lb_124 -> { lb_65 } | |
+M.96_134 -> { M.96_111 } | |
+_151 -> { _109 } | |
+.MEM_181 -> { .MEM_54 } | |
+lb_227 -> { lb_65 } | |
+_250 -> { _110 } | |
+Incremental SSA update started at block: 20 | |
+Number of blocks in CFG: 45 | |
+Number of blocks to update: 9 ( 20%) | |
+ | |
+ | |
+Merging blocks 18 and 20 | |
+Removing basic block 40 | |
+Removing basic block 41 | |
+Removing basic block 42 | |
+Removing basic block 43 | |
__attribute__((fn spec (". w r r w "))) | |
void dsort_ (struct array01_integer(kind=4) & restrict indx, struct array01_real(kind=8) & restrict keys, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
unsigned long ivtmp.569; | |
unsigned long ivtmp.564; | |
unsigned long ivtmp.562; | |
integer(kind=4) * vectp.557; | |
vector(2) integer(kind=4) * vectp_dt_parm.556; | |
unsigned int SR.554; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.103; | |
struct FRAME.dsort_ FRAME.303; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.88; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
integer(kind=8) _4; | |
integer(kind=4) _5; | |
integer(kind=8) _6; | |
integer(kind=8) _7; | |
integer(kind=4) pretmp_9; | |
unsigned long _12; | |
void * _19; | |
void * _20; | |
integer(kind=8) _21; | |
integer(kind=8) _22; | |
void * _24; | |
void * _27; | |
void * _28; | |
integer(kind=8) iftmp.284_32; | |
integer(kind=8) iftmp.287_33; | |
+ integer(kind=4) _43; | |
integer(kind=8) _45; | |
integer(kind=4)[0:D.5055] * restrict _47; | |
integer(kind=8) _53; | |
real(kind=8)[0:D.5051] * restrict _55; | |
integer(kind=4) _56; | |
integer(kind=8) _59; | |
integer(kind=4) _62; | |
integer(kind=4) _64; | |
unsigned long prephitmp_66; | |
integer(kind=8) _68; | |
unsigned long size.100_70; | |
sizetype _79; | |
logical(kind=4) _81; | |
sizetype _91; | |
sizetype _102; | |
integer(kind=4) _108; | |
integer(kind=4) _109; | |
integer(kind=4) _110; | |
integer(kind=4) M.96_111; | |
integer(kind=8) _114; | |
integer(kind=8) _115; | |
sizetype _118; | |
+ integer(kind=4) M.96_119; | |
integer(kind=4) _122; | |
integer(kind=4) _125; | |
integer(kind=8) _128; | |
unsigned long _131; | |
+ integer(kind=4) M.96_134; | |
unsigned long _136; | |
integer(kind=4) _142; | |
unsigned int _146; | |
unsigned long _148; | |
+ integer(kind=4) _151; | |
logical(kind=4) _156; | |
integer(kind=4) _159; | |
unsigned long _161; | |
integer(kind=8) _166; | |
unsigned long _168; | |
integer(kind=8) _172; | |
void * _173; | |
sizetype _176; | |
void * _177; | |
integer(kind=4) pretmp_186; | |
integer(kind=8) _191; | |
integer(kind=4)[0:D.5055] * _193; | |
integer(kind=4) _194; | |
integer(kind=8) _197; | |
real(kind=8) pretmp_198; | |
unsigned int _199; | |
sizetype _200; | |
unsigned int _201; | |
unsigned long _204; | |
sizetype _205; | |
real(kind=8) pretmp_208; | |
integer(kind=8) _209; | |
unsigned long _212; | |
unsigned long _213; | |
unsigned long _216; | |
unsigned long _218; | |
unsigned int _224; | |
integer(kind=8) _226; | |
sizetype _232; | |
sizetype _233; | |
void * _234; | |
sizetype _237; | |
integer(kind=8) _246; | |
+ integer(kind=4) _250; | |
<bb 2> [local count: 1073741824]: | |
_45 = *indx_44(D).dim[0].stride; | |
if (_45 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.284_32 = PHI <_45(2), 1(3)> | |
_47 = *indx_44(D).data; | |
_1 = *indx_44(D).dim[0].ubound; | |
_2 = *indx_44(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.88_49 = _3 + 1; | |
_53 = *keys_52(D).dim[0].stride; | |
if (_53 != 0) | |
goto <bb 6>; [50.00%] | |
else | |
goto <bb 5>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
<bb 6> [local count: 1073741824]: | |
# iftmp.287_33 = PHI <_53(4), 1(5)> | |
_55 = *keys_52(D).data; | |
if (stat_60(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619514]: | |
*stat_60(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_4 = MAX_EXPR <ubound.88_49, 0>; | |
_62 = (integer(kind=4)) _4; | |
if (_62 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507700]: | |
_5 = MAX_EXPR <_62, 0>; | |
_12 = (unsigned long) _5; | |
size.100_70 = _12 * 4; | |
_161 = MAX_EXPR <size.100_70, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_66 = PHI <1(8), _161(9)> | |
_20 = __builtin_malloc (prephitmp_66); | |
if (_20 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_80(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325320]: | |
ierr = 5014; | |
dt_parm.103.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.103.common.line = 534; | |
dt_parm.103.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.103.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.103] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.103); | |
_gfortran_transfer_character_write (&dt_parm.103, &"MCT(MPEU)::m_MergeSorts::dSort_"[1]{lb: 1 sz: 1}, 31); | |
_gfortran_transfer_character_write (&dt_parm.103, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.103, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.103); | |
dt_parm.103 ={v} {CLOBBER}; | |
if (stat_60(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879682]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::dSort_"[1]{lb: 1 sz: 1}, 31); | |
<bb 14> [local count: 217325320]: | |
*stat_60(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491315]: | |
_81 = *descend_80(D); | |
_224 = VIEW_CONVERT_EXPR<unsigned int>(_81); | |
<bb 16> [local count: 921485010]: | |
# SR.554_104 = PHI <0(11), _224(15)> | |
if (_62 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121659]: | |
_237 = (sizetype) iftmp.284_32; | |
_102 = _237 * 4; | |
<bb 18> [local count: 6929187988]: | |
- # mstep_249 = PHI <lstep_105(40), 1(17)> | |
+ # mstep_249 = PHI <lstep_105(19), 1(17)> | |
lstep_105 = mstep_249 * 2; | |
- goto <bb 20>; [100.00%] | |
+ _108 = mstep_249 + 1; | |
+ _109 = _108 + -1; | |
+ _110 = _109 + mstep_249; | |
+ M.96_111 = MIN_EXPR <_110, _62>; | |
+ if (M.96_111 <= 0) | |
+ goto <bb 21>; [3.00%] | |
+ else | |
+ goto <bb 22>; [97.00%] | |
<bb 19> [local count: 6166977242]: | |
if (_62 <= lstep_105) | |
goto <bb 38>; [3.00%] | |
else | |
- goto <bb 40>; [97.00%] | |
- | |
- <bb 40> [local count: 5982135994]: | |
- goto <bb 18>; [100.00%] | |
- | |
- <bb 41> [local count: 49896452583]: | |
+ goto <bb 18>; [97.00%] | |
- <bb 20> [local count: 56063429779]: | |
- # lb_65 = PHI <_125(41), 1(18)> | |
- _108 = lb_65 + mstep_249; | |
- _109 = _108 + -1; | |
- _110 = _109 + mstep_249; | |
- M.96_111 = MIN_EXPR <_110, _62>; | |
- if (lb_65 > M.96_111) | |
- goto <bb 21>; [11.00%] | |
- else | |
- goto <bb 22>; [89.00%] | |
+ <bb 20> [local count: 49896452583]: | |
+ # lb_227 = PHI <_125(35)> | |
+ _43 = lb_227 + mstep_249; | |
+ _151 = _43 + -1; | |
+ _250 = _151 + mstep_249; | |
+ M.96_119 = MIN_EXPR <_250, _62>; | |
<bb 21> [local count: 56063429779]: | |
- _114 = (integer(kind=8)) lb_65; | |
- _115 = (integer(kind=8)) M.96_111; | |
+ # lb_124 = PHI <1(18), 1(34), lb_227(20)> | |
+ # M.96_134 = PHI <M.96_111(18), M.96_111(34), M.96_119(20)> | |
+ _114 = (integer(kind=8)) lb_124; | |
+ _115 = (integer(kind=8)) M.96_134; | |
if (_114 > _115) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896452537]: | |
- _118 = (sizetype) lb_65; | |
+ _118 = 1; | |
_79 = _118 * 4; | |
_176 = _79 + 18446744073709551612; | |
_24 = _20 + _176; | |
ivtmp.569_121 = (unsigned long) _24; | |
_146 = (unsigned int) M.96_111; | |
- _199 = (unsigned int) lb_65; | |
+ _199 = 1; | |
_201 = _146 - _199; | |
_216 = (unsigned long) _201; | |
_212 = _118 + _216; | |
_204 = _212 * 4; | |
_218 = (unsigned long) _20; | |
_213 = _204 + _218; | |
<bb 23> [local count: 453604116900]: | |
- # l2_46 = PHI <l2_223(43), _108(22)> | |
- # l1_48 = PHI <l1_222(43), lb_65(22)> | |
- # ivtmp.569_130 = PHI <ivtmp.569_129(43), ivtmp.569_121(22)> | |
+ # l2_46 = PHI <l2_223(34), _108(22)> | |
+ # l1_48 = PHI <l1_222(34), 1(22)> | |
+ # ivtmp.569_130 = PHI <ivtmp.569_129(34), ivtmp.569_121(22)> | |
if (l2_46 > M.96_111) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802058213]: | |
_56 = l1_48 + -1; | |
_246 = (integer(kind=8)) _56; | |
_128 = iftmp.284_32 * _246; | |
_142 = (*_47)[_128]; | |
l1_143 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802058213]: | |
_159 = l2_46 + -1; | |
_166 = (integer(kind=8)) _159; | |
_172 = iftmp.284_32 * _166; | |
pretmp_186 = (*_47)[_172]; | |
if (l1_48 >= _108) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401029106]: | |
l2_155 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401029106]: | |
_156 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.554_104); | |
_194 = l1_48 + -1; | |
_197 = (integer(kind=8)) _194; | |
_59 = (integer(kind=8)) pretmp_186; | |
_68 = _59 + -1; | |
_6 = iftmp.287_33 * _68; | |
_7 = iftmp.284_32 * _197; | |
pretmp_9 = (*_47)[_7]; | |
_21 = (integer(kind=8)) pretmp_9; | |
_22 = _21 + -1; | |
_191 = _22 * iftmp.287_33; | |
pretmp_198 = (*_55)[_191]; | |
pretmp_208 = (*_55)[_6]; | |
if (_156 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700514553]: | |
if (pretmp_198 >= pretmp_208) | |
goto <bb 29>; [50.00%] | |
else | |
goto <bb 30>; [50.00%] | |
<bb 29> [local count: 28350257277]: | |
l1_183 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 28350257277]: | |
l2_188 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700514553]: | |
if (pretmp_198 <= pretmp_208) | |
goto <bb 32>; [50.00%] | |
else | |
goto <bb 33>; [50.00%] | |
<bb 32> [local count: 28350257277]: | |
l1_215 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 28350257277]: | |
l2_220 = l2_46 + 1; | |
<bb 34> [local count: 453604116426]: | |
# l1_222 = PHI <l1_143(24), l1_48(26), l1_183(29), l1_48(30), l1_215(32), l1_48(33)> | |
# l2_223 = PHI <l2_46(24), l2_155(26), l2_46(29), l2_188(30), l2_46(32), l2_220(33)> | |
# _64 = PHI <_142(24), pretmp_186(26), pretmp_9(29), pretmp_186(30), pretmp_9(32), pretmp_186(33)> | |
_19 = (void *) ivtmp.569_130; | |
MEM[(integer(kind=4) *)_19] = _64; | |
ivtmp.569_129 = ivtmp.569_130 + 4; | |
if (ivtmp.569_129 == _213) | |
goto <bb 21>; [11.00%] | |
else | |
- goto <bb 43>; [89.00%] | |
- | |
- <bb 43> [local count: 403707663890]: | |
- goto <bb 23>; [100.00%] | |
+ goto <bb 23>; [89.00%] | |
<bb 35> [local count: 56063429831]: | |
- _125 = M.96_111 + 1; | |
+ _125 = M.96_134 + 1; | |
if (_62 <= _125) | |
goto <bb 19>; [11.00%] | |
else | |
- goto <bb 41>; [89.00%] | |
+ goto <bb 20>; [89.00%] | |
<bb 36> [local count: 49896452537]: | |
- _91 = (sizetype) lb_65; | |
+ _91 = (sizetype) lb_124; | |
_232 = _91 * 4; | |
_233 = _232 + 18446744073709551612; | |
_234 = _20 + _233; | |
ivtmp.562_92 = (unsigned long) _234; | |
_226 = _114 + -1; | |
_209 = iftmp.284_32 * _226; | |
_205 = (sizetype) _209; | |
_200 = _205 * 4; | |
_193 = _47 + _200; | |
ivtmp.564_85 = (unsigned long) _193; | |
- _168 = (unsigned long) M.96_111; | |
+ _168 = (unsigned long) M.96_134; | |
_148 = _168 * 4; | |
_136 = (unsigned long) _20; | |
_131 = _148 + _136; | |
<bb 37> [local count: 453604116900]: | |
- # ivtmp.562_51 = PHI <ivtmp.562_31(42), ivtmp.562_92(36)> | |
- # ivtmp.564_235 = PHI <ivtmp.564_236(42), ivtmp.564_85(36)> | |
+ # ivtmp.562_51 = PHI <ivtmp.562_31(37), ivtmp.562_92(36)> | |
+ # ivtmp.564_235 = PHI <ivtmp.564_236(37), ivtmp.564_85(36)> | |
_177 = (void *) ivtmp.562_51; | |
_122 = MEM[(integer(kind=4) *)_177]; | |
_173 = (void *) ivtmp.564_235; | |
MEM[(integer(kind=4) *)_173] = _122; | |
ivtmp.562_31 = ivtmp.562_51 + 4; | |
ivtmp.564_236 = ivtmp.564_235 + _102; | |
if (ivtmp.562_31 == _131) | |
goto <bb 35>; [11.00%] | |
else | |
- goto <bb 42>; [89.00%] | |
- | |
- <bb 42> [local count: 403707664311]: | |
- goto <bb 37>; [100.00%] | |
+ goto <bb 37>; [89.00%] | |
<bb 38> [local count: 856073795]: | |
__builtin_free (_20); | |
<bb 39> [local count: 1073399116]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function rsort_ (__m_mergesorts_MOD_rsort_, funcdef_no=18, decl_uid=4364, cgraph_uid=20, symbol_order=19) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 6 5 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
__attribute__((fn spec (". w r r w "))) | |
void rsort_ (struct array01_integer(kind=4) & restrict indx, struct array01_real(kind=4) & restrict keys, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
unsigned long ivtmp.594; | |
unsigned long ivtmp.589; | |
unsigned long ivtmp.587; | |
integer(kind=4) * vectp.582; | |
vector(2) integer(kind=4) * vectp_dt_parm.581; | |
unsigned int SR.579; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.119; | |
struct FRAME.rsort_ FRAME.325; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.104; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
integer(kind=8) _4; | |
integer(kind=4) _5; | |
integer(kind=8) _6; | |
integer(kind=8) _7; | |
integer(kind=4) pretmp_9; | |
unsigned long _12; | |
void * _19; | |
void * _20; | |
integer(kind=8) _21; | |
integer(kind=8) _22; | |
void * _24; | |
void * _27; | |
void * _28; | |
integer(kind=8) iftmp.306_32; | |
integer(kind=8) iftmp.309_33; | |
integer(kind=8) _45; | |
integer(kind=4)[0:D.5155] * restrict _47; | |
integer(kind=8) _53; | |
real(kind=4)[0:D.5151] * restrict _55; | |
integer(kind=4) _56; | |
integer(kind=8) _59; | |
integer(kind=4) _62; | |
integer(kind=4) _64; | |
unsigned long prephitmp_66; | |
integer(kind=8) _68; | |
unsigned long size.116_70; | |
sizetype _79; | |
logical(kind=4) _81; | |
sizetype _91; | |
sizetype _102; | |
integer(kind=4) _108; | |
integer(kind=4) _109; | |
integer(kind=4) _110; | |
integer(kind=4) M.112_111; | |
integer(kind=8) _114; | |
integer(kind=8) _115; | |
sizetype _118; | |
integer(kind=4) _122; | |
integer(kind=4) _125; | |
integer(kind=8) _128; | |
unsigned long _131; | |
unsigned long _136; | |
integer(kind=4) _142; | |
unsigned int _146; | |
unsigned long _148; | |
logical(kind=4) _156; | |
integer(kind=4) _159; | |
unsigned long _161; | |
integer(kind=8) _166; | |
unsigned long _168; | |
integer(kind=8) _172; | |
void * _173; | |
sizetype _176; | |
void * _177; | |
integer(kind=4) pretmp_186; | |
integer(kind=8) _191; | |
integer(kind=4)[0:D.5155] * _193; | |
integer(kind=4) _194; | |
integer(kind=8) _197; | |
real(kind=4) pretmp_198; | |
unsigned int _199; | |
sizetype _200; | |
unsigned int _201; | |
unsigned long _204; | |
sizetype _205; | |
real(kind=4) pretmp_208; | |
integer(kind=8) _209; | |
unsigned long _212; | |
unsigned long _213; | |
unsigned long _216; | |
unsigned long _218; | |
unsigned int _224; | |
integer(kind=8) _226; | |
sizetype _232; | |
sizetype _233; | |
void * _234; | |
sizetype _237; | |
integer(kind=8) _246; | |
<bb 2> [local count: 1073741824]: | |
_45 = *indx_44(D).dim[0].stride; | |
if (_45 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.306_32 = PHI <_45(2), 1(3)> | |
_47 = *indx_44(D).data; | |
_1 = *indx_44(D).dim[0].ubound; | |
_2 = *indx_44(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.104_49 = _3 + 1; | |
_53 = *keys_52(D).dim[0].stride; | |
if (_53 != 0) | |
goto <bb 6>; [50.00%] | |
else | |
goto <bb 5>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
<bb 6> [local count: 1073741824]: | |
# iftmp.309_33 = PHI <_53(4), 1(5)> | |
_55 = *keys_52(D).data; | |
if (stat_60(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619514]: | |
*stat_60(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_4 = MAX_EXPR <ubound.104_49, 0>; | |
_62 = (integer(kind=4)) _4; | |
if (_62 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507700]: | |
_5 = MAX_EXPR <_62, 0>; | |
_12 = (unsigned long) _5; | |
size.116_70 = _12 * 4; | |
_161 = MAX_EXPR <size.116_70, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_66 = PHI <1(8), _161(9)> | |
_20 = __builtin_malloc (prephitmp_66); | |
if (_20 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_80(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325320]: | |
ierr = 5014; | |
dt_parm.119.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.119.common.line = 417; | |
dt_parm.119.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.119.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.119] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.119); | |
_gfortran_transfer_character_write (&dt_parm.119, &"MCT(MPEU)::m_MergeSorts::rSort_"[1]{lb: 1 sz: 1}, 31); | |
_gfortran_transfer_character_write (&dt_parm.119, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.119, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.119); | |
dt_parm.119 ={v} {CLOBBER}; | |
if (stat_60(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879682]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::rSort_"[1]{lb: 1 sz: 1}, 31); | |
<bb 14> [local count: 217325320]: | |
*stat_60(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491315]: | |
_81 = *descend_80(D); | |
_224 = VIEW_CONVERT_EXPR<unsigned int>(_81); | |
<bb 16> [local count: 921485010]: | |
# SR.579_104 = PHI <0(11), _224(15)> | |
if (_62 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121659]: | |
_237 = (sizetype) iftmp.306_32; | |
_102 = _237 * 4; | |
<bb 18> [local count: 6929187988]: | |
# mstep_249 = PHI <lstep_105(40), 1(17)> | |
lstep_105 = mstep_249 * 2; | |
goto <bb 20>; [100.00%] | |
<bb 19> [local count: 6166977242]: | |
if (_62 <= lstep_105) | |
goto <bb 38>; [3.00%] | |
else | |
goto <bb 40>; [97.00%] | |
<bb 40> [local count: 5982135994]: | |
goto <bb 18>; [100.00%] | |
<bb 41> [local count: 49896452583]: | |
<bb 20> [local count: 56063429779]: | |
# lb_65 = PHI <_125(41), 1(18)> | |
_108 = lb_65 + mstep_249; | |
_109 = _108 + -1; | |
_110 = _109 + mstep_249; | |
M.112_111 = MIN_EXPR <_110, _62>; | |
if (lb_65 > M.112_111) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 22>; [89.00%] | |
<bb 21> [local count: 56063429779]: | |
_114 = (integer(kind=8)) lb_65; | |
_115 = (integer(kind=8)) M.112_111; | |
if (_114 > _115) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896452537]: | |
_118 = (sizetype) lb_65; | |
_79 = _118 * 4; | |
_176 = _79 + 18446744073709551612; | |
_24 = _20 + _176; | |
ivtmp.594_121 = (unsigned long) _24; | |
_146 = (unsigned int) M.112_111; | |
_199 = (unsigned int) lb_65; | |
_201 = _146 - _199; | |
_216 = (unsigned long) _201; | |
_212 = _118 + _216; | |
_204 = _212 * 4; | |
_218 = (unsigned long) _20; | |
_213 = _204 + _218; | |
<bb 23> [local count: 453604116900]: | |
# l2_46 = PHI <l2_223(43), _108(22)> | |
# l1_48 = PHI <l1_222(43), lb_65(22)> | |
# ivtmp.594_130 = PHI <ivtmp.594_129(43), ivtmp.594_121(22)> | |
if (l2_46 > M.112_111) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802058213]: | |
_56 = l1_48 + -1; | |
_246 = (integer(kind=8)) _56; | |
_128 = iftmp.306_32 * _246; | |
_142 = (*_47)[_128]; | |
l1_143 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802058213]: | |
_159 = l2_46 + -1; | |
_166 = (integer(kind=8)) _159; | |
_172 = iftmp.306_32 * _166; | |
pretmp_186 = (*_47)[_172]; | |
if (l1_48 >= _108) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401029106]: | |
l2_155 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401029106]: | |
_156 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.579_104); | |
_194 = l1_48 + -1; | |
_197 = (integer(kind=8)) _194; | |
_59 = (integer(kind=8)) pretmp_186; | |
_68 = _59 + -1; | |
_6 = iftmp.309_33 * _68; | |
_7 = iftmp.306_32 * _197; | |
pretmp_9 = (*_47)[_7]; | |
_21 = (integer(kind=8)) pretmp_9; | |
_22 = _21 + -1; | |
_191 = _22 * iftmp.309_33; | |
pretmp_198 = (*_55)[_191]; | |
pretmp_208 = (*_55)[_6]; | |
if (_156 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700514553]: | |
if (pretmp_198 >= pretmp_208) | |
goto <bb 29>; [50.00%] | |
else | |
goto <bb 30>; [50.00%] | |
<bb 29> [local count: 28350257277]: | |
l1_183 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 28350257277]: | |
l2_188 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700514553]: | |
if (pretmp_198 <= pretmp_208) | |
goto <bb 32>; [50.00%] | |
else | |
goto <bb 33>; [50.00%] | |
<bb 32> [local count: 28350257277]: | |
l1_215 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 28350257277]: | |
l2_220 = l2_46 + 1; | |
<bb 34> [local count: 453604116426]: | |
# l1_222 = PHI <l1_143(24), l1_48(26), l1_183(29), l1_48(30), l1_215(32), l1_48(33)> | |
# l2_223 = PHI <l2_46(24), l2_155(26), l2_46(29), l2_188(30), l2_46(32), l2_220(33)> | |
# _64 = PHI <_142(24), pretmp_186(26), pretmp_9(29), pretmp_186(30), pretmp_9(32), pretmp_186(33)> | |
_19 = (void *) ivtmp.594_130; | |
MEM[(integer(kind=4) *)_19] = _64; | |
ivtmp.594_129 = ivtmp.594_130 + 4; | |
if (ivtmp.594_129 == _213) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 43>; [89.00%] | |
<bb 43> [local count: 403707663890]: | |
goto <bb 23>; [100.00%] | |
<bb 35> [local count: 56063429831]: | |
_125 = M.112_111 + 1; | |
if (_62 <= _125) | |
goto <bb 19>; [11.00%] | |
else | |
goto <bb 41>; [89.00%] | |
<bb 36> [local count: 49896452537]: | |
_91 = (sizetype) lb_65; | |
_232 = _91 * 4; | |
_233 = _232 + 18446744073709551612; | |
_234 = _20 + _233; | |
ivtmp.587_92 = (unsigned long) _234; | |
_226 = _114 + -1; | |
_209 = iftmp.306_32 * _226; | |
_205 = (sizetype) _209; | |
_200 = _205 * 4; | |
_193 = _47 + _200; | |
ivtmp.589_85 = (unsigned long) _193; | |
_168 = (unsigned long) M.112_111; | |
_148 = _168 * 4; | |
_136 = (unsigned long) _20; | |
_131 = _148 + _136; | |
<bb 37> [local count: 453604116900]: | |
# ivtmp.587_51 = PHI <ivtmp.587_31(42), ivtmp.587_92(36)> | |
# ivtmp.589_235 = PHI <ivtmp.589_236(42), ivtmp.589_85(36)> | |
_177 = (void *) ivtmp.587_51; | |
_122 = MEM[(integer(kind=4) *)_177]; | |
_173 = (void *) ivtmp.589_235; | |
MEM[(integer(kind=4) *)_173] = _122; | |
ivtmp.587_31 = ivtmp.587_51 + 4; | |
ivtmp.589_236 = ivtmp.589_235 + _102; | |
if (ivtmp.587_31 == _131) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 42>; [89.00%] | |
<bb 42> [local count: 403707664311]: | |
goto <bb 37>; [100.00%] | |
<bb 38> [local count: 856073795]: | |
__builtin_free (_20); | |
<bb 39> [local count: 1073399116]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function isort_ (__m_mergesorts_MOD_isort_, funcdef_no=21, decl_uid=4380, cgraph_uid=23, symbol_order=22) | |
;; 5 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 43 35 36 37 42 38 39 | |
;; | |
;; Loop 1 | |
;; header 18, latch 40 | |
;; depth 1, outer 0 | |
;; nodes: 18 40 19 35 21 37 42 36 20 34 24 26 29 30 32 33 31 27 25 23 43 22 28 41 | |
;; | |
;; Loop 2 | |
;; header 20, latch 41 | |
;; depth 2, outer 1 | |
;; nodes: 20 41 35 21 37 42 36 34 24 26 29 30 32 33 31 27 25 23 43 22 28 | |
;; | |
;; Loop 3 | |
;; header 37, latch 42 | |
;; depth 3, outer 2 | |
;; nodes: 37 42 | |
;; | |
;; Loop 4 | |
;; header 23, latch 43 | |
;; depth 3, outer 2 | |
;; nodes: 23 43 34 24 26 29 30 32 33 31 27 25 28 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 6 5 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 7 succs { 8 } | |
;; 8 succs { 10 9 } | |
;; 9 succs { 10 } | |
;; 10 succs { 12 11 } | |
;; 11 succs { 15 16 } | |
;; 12 succs { 13 14 } | |
;; 13 succs { 14 } | |
;; 14 succs { 39 } | |
;; 15 succs { 16 } | |
;; 16 succs { 38 17 } | |
;; 17 succs { 18 } | |
;; 18 succs { 20 } | |
;; 19 succs { 38 40 } | |
;; 40 succs { 18 } | |
;; 41 succs { 20 } | |
;; 20 succs { 21 22 } | |
;; 21 succs { 35 36 } | |
;; 22 succs { 23 } | |
;; 23 succs { 24 25 } | |
;; 24 succs { 34 } | |
;; 25 succs { 26 27 } | |
;; 26 succs { 34 } | |
;; 27 succs { 28 31 } | |
;; 28 succs { 29 30 } | |
;; 29 succs { 34 } | |
;; 30 succs { 34 } | |
;; 31 succs { 32 33 } | |
;; 32 succs { 34 } | |
;; 33 succs { 34 } | |
;; 34 succs { 21 43 } | |
;; 43 succs { 23 } | |
;; 35 succs { 19 41 } | |
;; 36 succs { 37 } | |
;; 37 succs { 35 42 } | |
;; 42 succs { 37 } | |
;; 38 succs { 39 } | |
;; 39 succs { 1 } | |
__attribute__((fn spec (". w r r w "))) | |
void isort_ (struct array01_integer(kind=4) & restrict indx, struct array01_integer(kind=4) & restrict keys, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
unsigned long ivtmp.619; | |
unsigned long ivtmp.614; | |
unsigned long ivtmp.612; | |
integer(kind=4) * vectp.607; | |
vector(2) integer(kind=4) * vectp_dt_parm.606; | |
unsigned int SR.604; | |
integer(kind=4) l; | |
integer(kind=4) l1; | |
integer(kind=4) l2; | |
integer(kind=4) lb; | |
integer(kind=4) lstep; | |
integer(kind=4) mstep; | |
struct __st_parameter_dt dt_parm.135; | |
struct FRAME.isort_ FRAME.347; | |
integer(kind=4) ierr; | |
integer(kind=8) ubound.120; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
integer(kind=8) _4; | |
integer(kind=4) _5; | |
integer(kind=8) _6; | |
integer(kind=8) _7; | |
integer(kind=4) pretmp_9; | |
unsigned long _12; | |
void * _19; | |
void * _20; | |
integer(kind=8) _21; | |
integer(kind=8) _22; | |
void * _24; | |
void * _27; | |
void * _28; | |
integer(kind=8) iftmp.328_32; | |
integer(kind=8) iftmp.331_33; | |
integer(kind=8) _45; | |
integer(kind=4)[0:D.5255] * restrict _47; | |
integer(kind=8) _53; | |
integer(kind=4)[0:D.5251] * restrict _55; | |
integer(kind=4) _56; | |
integer(kind=8) _59; | |
integer(kind=4) _62; | |
integer(kind=4) _64; | |
unsigned long prephitmp_66; | |
integer(kind=8) _68; | |
unsigned long size.132_70; | |
sizetype _79; | |
logical(kind=4) _81; | |
sizetype _91; | |
sizetype _102; | |
integer(kind=4) _108; | |
integer(kind=4) _109; | |
integer(kind=4) _110; | |
integer(kind=4) M.128_111; | |
integer(kind=8) _114; | |
integer(kind=8) _115; | |
sizetype _118; | |
integer(kind=4) _122; | |
integer(kind=4) _125; | |
integer(kind=8) _128; | |
unsigned long _131; | |
unsigned long _136; | |
integer(kind=4) _142; | |
unsigned int _146; | |
unsigned long _148; | |
logical(kind=4) _156; | |
integer(kind=4) _159; | |
unsigned long _161; | |
integer(kind=8) _166; | |
unsigned long _168; | |
integer(kind=8) _172; | |
void * _173; | |
sizetype _176; | |
void * _177; | |
integer(kind=4) pretmp_186; | |
integer(kind=8) _191; | |
integer(kind=4)[0:D.5255] * _193; | |
integer(kind=4) _194; | |
integer(kind=8) _197; | |
integer(kind=4) pretmp_198; | |
unsigned int _199; | |
sizetype _200; | |
unsigned int _201; | |
unsigned long _204; | |
sizetype _205; | |
integer(kind=4) pretmp_208; | |
integer(kind=8) _209; | |
unsigned long _212; | |
unsigned long _213; | |
unsigned long _216; | |
unsigned long _218; | |
unsigned int _224; | |
integer(kind=8) _226; | |
sizetype _232; | |
sizetype _233; | |
void * _234; | |
sizetype _237; | |
integer(kind=8) _246; | |
<bb 2> [local count: 1073741824]: | |
_45 = *indx_44(D).dim[0].stride; | |
if (_45 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 536870912]: | |
<bb 4> [local count: 1073741824]: | |
# iftmp.328_32 = PHI <_45(2), 1(3)> | |
_47 = *indx_44(D).data; | |
_1 = *indx_44(D).dim[0].ubound; | |
_2 = *indx_44(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.120_49 = _3 + 1; | |
_53 = *keys_52(D).dim[0].stride; | |
if (_53 != 0) | |
goto <bb 6>; [50.00%] | |
else | |
goto <bb 5>; [50.00%] | |
<bb 5> [local count: 536870912]: | |
<bb 6> [local count: 1073741824]: | |
# iftmp.331_33 = PHI <_53(4), 1(5)> | |
_55 = *keys_52(D).data; | |
if (stat_60(D) != 0B) | |
goto <bb 7>; [70.00%] | |
else | |
goto <bb 8>; [30.00%] | |
<bb 7> [local count: 751619514]: | |
*stat_60(D) = 0; | |
<bb 8> [local count: 1073741824]: | |
_4 = MAX_EXPR <ubound.120_49, 0>; | |
_62 = (integer(kind=4)) _4; | |
if (_62 <= 0) | |
goto <bb 10>; [41.00%] | |
else | |
goto <bb 9>; [59.00%] | |
<bb 9> [local count: 633507700]: | |
_5 = MAX_EXPR <_62, 0>; | |
_12 = (unsigned long) _5; | |
size.132_70 = _12 * 4; | |
_161 = MAX_EXPR <size.132_70, 1>; | |
<bb 10> [local count: 1073741824]: | |
# prephitmp_66 = PHI <1(8), _161(9)> | |
_20 = __builtin_malloc (prephitmp_66); | |
if (_20 == 0B) | |
goto <bb 12>; [0.04%] | |
else | |
goto <bb 11>; [99.96%] | |
<bb 11> [local count: 1073312328]: | |
ierr = 0; | |
if (descend_80(D) != 0B) | |
goto <bb 15>; [70.00%] | |
else | |
goto <bb 16>; [30.00%] | |
<bb 12> [local count: 217325320]: | |
ierr = 5014; | |
dt_parm.135.common.filename = &"m_MergeSorts.fppized.f90"[1]{lb: 1 sz: 1}; | |
dt_parm.135.common.line = 300; | |
dt_parm.135.format = &"(2a,i4)"[1]{lb: 1 sz: 1}; | |
dt_parm.135.format_len = 7; | |
MEM <vector(2) integer(kind=4)> [(integer(kind=4) *)&dt_parm.135] = { 4096, 6 }; | |
_gfortran_st_write (&dt_parm.135); | |
_gfortran_transfer_character_write (&dt_parm.135, &"MCT(MPEU)::m_MergeSorts::iSort_"[1]{lb: 1 sz: 1}, 31); | |
_gfortran_transfer_character_write (&dt_parm.135, &": allocate(mtmp(:)) error, stat ="[1]{lb: 1 sz: 1}, 33); | |
_gfortran_transfer_integer_write (&dt_parm.135, &ierr, 4); | |
_gfortran_st_write_done (&dt_parm.135); | |
dt_parm.135 ={v} {CLOBBER}; | |
if (stat_60(D) == 0B) | |
goto <bb 13>; [17.43%] | |
else | |
goto <bb 14>; [82.57%] | |
<bb 13> [local count: 37879682]: | |
die0_ (&"MCT(MPEU)::m_MergeSorts::iSort_"[1]{lb: 1 sz: 1}, 31); | |
<bb 14> [local count: 217325320]: | |
*stat_60(D) = 5014; | |
goto <bb 39>; [100.00%] | |
<bb 15> [local count: 599491315]: | |
_81 = *descend_80(D); | |
_224 = VIEW_CONVERT_EXPR<unsigned int>(_81); | |
<bb 16> [local count: 921485010]: | |
# SR.604_104 = PHI <0(11), _224(15)> | |
if (_62 <= 1) | |
goto <bb 38>; [11.00%] | |
else | |
goto <bb 17>; [89.00%] | |
<bb 17> [local count: 820121659]: | |
_237 = (sizetype) iftmp.328_32; | |
_102 = _237 * 4; | |
<bb 18> [local count: 6929187988]: | |
# mstep_249 = PHI <lstep_105(40), 1(17)> | |
lstep_105 = mstep_249 * 2; | |
goto <bb 20>; [100.00%] | |
<bb 19> [local count: 6166977242]: | |
if (_62 <= lstep_105) | |
goto <bb 38>; [3.00%] | |
else | |
goto <bb 40>; [97.00%] | |
<bb 40> [local count: 5982135994]: | |
goto <bb 18>; [100.00%] | |
<bb 41> [local count: 49896452583]: | |
<bb 20> [local count: 56063429779]: | |
# lb_65 = PHI <_125(41), 1(18)> | |
_108 = lb_65 + mstep_249; | |
_109 = _108 + -1; | |
_110 = _109 + mstep_249; | |
M.128_111 = MIN_EXPR <_110, _62>; | |
if (lb_65 > M.128_111) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 22>; [89.00%] | |
<bb 21> [local count: 56063429779]: | |
_114 = (integer(kind=8)) lb_65; | |
_115 = (integer(kind=8)) M.128_111; | |
if (_114 > _115) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 36>; [89.00%] | |
<bb 22> [local count: 49896452537]: | |
_118 = (sizetype) lb_65; | |
_79 = _118 * 4; | |
_176 = _79 + 18446744073709551612; | |
_24 = _20 + _176; | |
ivtmp.619_121 = (unsigned long) _24; | |
_146 = (unsigned int) M.128_111; | |
_199 = (unsigned int) lb_65; | |
_201 = _146 - _199; | |
_216 = (unsigned long) _201; | |
_212 = _118 + _216; | |
_204 = _212 * 4; | |
_218 = (unsigned long) _20; | |
_213 = _204 + _218; | |
<bb 23> [local count: 453604116900]: | |
# l2_46 = PHI <l2_223(43), _108(22)> | |
# l1_48 = PHI <l1_222(43), lb_65(22)> | |
# ivtmp.619_130 = PHI <ivtmp.619_129(43), ivtmp.619_121(22)> | |
if (l2_46 > M.128_111) | |
goto <bb 24>; [50.00%] | |
else | |
goto <bb 25>; [50.00%] | |
<bb 24> [local count: 226802058213]: | |
_56 = l1_48 + -1; | |
_246 = (integer(kind=8)) _56; | |
_128 = iftmp.328_32 * _246; | |
_142 = (*_47)[_128]; | |
l1_143 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 25> [local count: 226802058213]: | |
_159 = l2_46 + -1; | |
_166 = (integer(kind=8)) _159; | |
_172 = iftmp.328_32 * _166; | |
pretmp_186 = (*_47)[_172]; | |
if (l1_48 >= _108) | |
goto <bb 26>; [50.00%] | |
else | |
goto <bb 27>; [50.00%] | |
<bb 26> [local count: 113401029106]: | |
l2_155 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 27> [local count: 113401029106]: | |
_156 = VIEW_CONVERT_EXPR<logical(kind=4)>(SR.604_104); | |
_194 = l1_48 + -1; | |
_197 = (integer(kind=8)) _194; | |
_59 = (integer(kind=8)) pretmp_186; | |
_68 = _59 + -1; | |
_6 = iftmp.331_33 * _68; | |
_7 = iftmp.328_32 * _197; | |
pretmp_9 = (*_47)[_7]; | |
_21 = (integer(kind=8)) pretmp_9; | |
_22 = _21 + -1; | |
_191 = _22 * iftmp.331_33; | |
pretmp_198 = (*_55)[_191]; | |
pretmp_208 = (*_55)[_6]; | |
if (_156 != 0) | |
goto <bb 28>; [50.00%] | |
else | |
goto <bb 31>; [50.00%] | |
<bb 28> [local count: 56700514553]: | |
if (pretmp_198 >= pretmp_208) | |
goto <bb 29>; [50.00%] | |
else | |
goto <bb 30>; [50.00%] | |
<bb 29> [local count: 28350257277]: | |
l1_183 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 30> [local count: 28350257277]: | |
l2_188 = l2_46 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 31> [local count: 56700514553]: | |
if (pretmp_198 <= pretmp_208) | |
goto <bb 32>; [50.00%] | |
else | |
goto <bb 33>; [50.00%] | |
<bb 32> [local count: 28350257277]: | |
l1_215 = l1_48 + 1; | |
goto <bb 34>; [100.00%] | |
<bb 33> [local count: 28350257277]: | |
l2_220 = l2_46 + 1; | |
<bb 34> [local count: 453604116426]: | |
# l1_222 = PHI <l1_143(24), l1_48(26), l1_183(29), l1_48(30), l1_215(32), l1_48(33)> | |
# l2_223 = PHI <l2_46(24), l2_155(26), l2_46(29), l2_188(30), l2_46(32), l2_220(33)> | |
# _64 = PHI <_142(24), pretmp_186(26), pretmp_9(29), pretmp_186(30), pretmp_9(32), pretmp_186(33)> | |
_19 = (void *) ivtmp.619_130; | |
MEM[(integer(kind=4) *)_19] = _64; | |
ivtmp.619_129 = ivtmp.619_130 + 4; | |
if (ivtmp.619_129 == _213) | |
goto <bb 21>; [11.00%] | |
else | |
goto <bb 43>; [89.00%] | |
<bb 43> [local count: 403707663890]: | |
goto <bb 23>; [100.00%] | |
<bb 35> [local count: 56063429831]: | |
_125 = M.128_111 + 1; | |
if (_62 <= _125) | |
goto <bb 19>; [11.00%] | |
else | |
goto <bb 41>; [89.00%] | |
<bb 36> [local count: 49896452537]: | |
_91 = (sizetype) lb_65; | |
_232 = _91 * 4; | |
_233 = _232 + 18446744073709551612; | |
_234 = _20 + _233; | |
ivtmp.612_92 = (unsigned long) _234; | |
_226 = _114 + -1; | |
_209 = iftmp.328_32 * _226; | |
_205 = (sizetype) _209; | |
_200 = _205 * 4; | |
_193 = _47 + _200; | |
ivtmp.614_85 = (unsigned long) _193; | |
_168 = (unsigned long) M.128_111; | |
_148 = _168 * 4; | |
_136 = (unsigned long) _20; | |
_131 = _148 + _136; | |
<bb 37> [local count: 453604116900]: | |
# ivtmp.612_51 = PHI <ivtmp.612_31(42), ivtmp.612_92(36)> | |
# ivtmp.614_235 = PHI <ivtmp.614_236(42), ivtmp.614_85(36)> | |
_177 = (void *) ivtmp.612_51; | |
_122 = MEM[(integer(kind=4) *)_177]; | |
_173 = (void *) ivtmp.614_235; | |
MEM[(integer(kind=4) *)_173] = _122; | |
ivtmp.612_31 = ivtmp.612_51 + 4; | |
ivtmp.614_236 = ivtmp.614_235 + _102; | |
if (ivtmp.612_31 == _131) | |
goto <bb 35>; [11.00%] | |
else | |
goto <bb 42>; [89.00%] | |
<bb 42> [local count: 403707664311]: | |
goto <bb 37>; [100.00%] | |
<bb 38> [local count: 856073795]: | |
__builtin_free (_20); | |
<bb 39> [local count: 1073399116]: | |
ierr ={v} {CLOBBER}; | |
return; | |
} | |
;; Function csortn_ (__m_mergesorts_MOD_csortn_, funcdef_no=24, decl_uid=4387, cgraph_uid=25, symbol_order=24) | |
;; 1 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 | |
;; 2 succs { 1 } | |
__attribute__((fn spec (". r w r r w "))) | |
void csortn_ (integer(kind=4) & restrict n, integer(kind=4)[0:D.5286] * restrict indx, character(kind=1)[0:][1:_keys] * restrict keys, logical(kind=4) * descend, integer(kind=4) * stat, integer(kind=8) _keys) | |
{ | |
signed char * vectp.631; | |
vector(2) signed char * vectp_parm.630; | |
integer(kind=8) * vectp.629; | |
vector(2) integer(kind=8) * vectp_parm.628; | |
signed char * vectp.627; | |
vector(2) signed char * vectp_parm.626; | |
struct array01_character(kind=1) parm.141; | |
struct array01_integer(kind=4) parm.140; | |
integer(kind=8) ubound.136; | |
integer(kind=4) _1; | |
sizetype _keys.352_2; | |
integer(kind=4) * _3; | |
character(kind=1)[1:_keys] * _4; | |
<bb 2> [local count: 1073741824]: | |
_1 = *n_6(D); | |
ubound.136_7 = (integer(kind=8)) _1; | |
_keys.352_2 = (sizetype) _keys_8(D); | |
MEM <c_char[8]> [(struct dtype_type *)&parm.140 + 24B] = {}; | |
parm.140.dtype.elem_len = 4; | |
MEM <vector(2) signed char> [(signed char *)&parm.140 + 28B] = { 1, 1 }; | |
parm.140.dim[0].lbound = 1; | |
parm.140.dim[0].ubound = ubound.136_7; | |
MEM <vector(2) integer(kind=8)> [(integer(kind=8) *)&parm.140 + 32B] = { 4, 1 }; | |
_3 = &(*indx_18(D))[0]; | |
parm.140.data = _3; | |
parm.140.offset = -1; | |
parm.141.span = _keys_8(D); | |
MEM <c_char[8]> [(struct dtype_type *)&parm.141 + 24B] = {}; | |
parm.141.dtype.elem_len = _keys.352_2; | |
MEM <vector(2) signed char> [(signed char *)&parm.141 + 28B] = { 1, 6 }; | |
parm.141.dim[0].lbound = 1; | |
parm.141.dim[0].ubound = ubound.136_7; | |
parm.141.dim[0].stride = 1; | |
_4 = &MEM[(character(kind=1)[0:D.5283][1:_keys] *)keys_9(D)][0]{lb: 0 sz: _keys.352_2}; | |
parm.141.data = _4; | |
parm.141.offset = -1; | |
csort_ (&parm.140, &parm.141, descend_31(D), stat_32(D), _keys_8(D)); | |
parm.140 ={v} {CLOBBER}; | |
parm.141 ={v} {CLOBBER}; | |
return; | |
} | |
;; Function dsortn_ (__m_mergesorts_MOD_dsortn_, funcdef_no=25, decl_uid=4399, cgraph_uid=26, symbol_order=25) | |
;; 1 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 | |
;; 2 succs { 1 } | |
__attribute__((fn spec (". r w r r w "))) | |
void dsortn_ (integer(kind=4) & restrict n, integer(kind=4)[0:D.5313] * restrict indx, real(kind=8)[0:D.5310] * restrict keys, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
integer(kind=8) * vectp.642; | |
vector(2) integer(kind=8) * vectp_parm.641; | |
signed char * vectp.640; | |
vector(2) signed char * vectp_parm.639; | |
integer(kind=8) * vectp.638; | |
vector(2) integer(kind=8) * vectp_parm.637; | |
signed char * vectp.636; | |
vector(2) signed char * vectp_parm.635; | |
struct array01_real(kind=8) parm.147; | |
struct array01_integer(kind=4) parm.146; | |
integer(kind=8) ubound.142; | |
integer(kind=4) _1; | |
integer(kind=4) * _2; | |
real(kind=8) * _3; | |
<bb 2> [local count: 1073741824]: | |
_1 = *n_5(D); | |
ubound.142_6 = (integer(kind=8)) _1; | |
MEM <c_char[8]> [(struct dtype_type *)&parm.146 + 24B] = {}; | |
parm.146.dtype.elem_len = 4; | |
MEM <vector(2) signed char> [(signed char *)&parm.146 + 28B] = { 1, 1 }; | |
parm.146.dim[0].lbound = 1; | |
parm.146.dim[0].ubound = ubound.142_6; | |
MEM <vector(2) integer(kind=8)> [(integer(kind=8) *)&parm.146 + 32B] = { 4, 1 }; | |
_2 = &(*indx_15(D))[0]; | |
parm.146.data = _2; | |
parm.146.offset = -1; | |
MEM <c_char[8]> [(struct dtype_type *)&parm.147 + 24B] = {}; | |
parm.147.dtype.elem_len = 8; | |
MEM <vector(2) signed char> [(signed char *)&parm.147 + 28B] = { 1, 3 }; | |
parm.147.dim[0].lbound = 1; | |
parm.147.dim[0].ubound = ubound.142_6; | |
MEM <vector(2) integer(kind=8)> [(integer(kind=8) *)&parm.147 + 32B] = { 8, 1 }; | |
_3 = &(*keys_26(D))[0]; | |
parm.147.data = _3; | |
parm.147.offset = -1; | |
dsort_ (&parm.146, &parm.147, descend_29(D), stat_30(D)); | |
parm.146 ={v} {CLOBBER}; | |
parm.147 ={v} {CLOBBER}; | |
return; | |
} | |
;; Function rsortn_ (__m_mergesorts_MOD_rsortn_, funcdef_no=26, decl_uid=4410, cgraph_uid=27, symbol_order=26) | |
;; 1 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 | |
;; 2 succs { 1 } | |
__attribute__((fn spec (". r w r r w "))) | |
void rsortn_ (integer(kind=4) & restrict n, integer(kind=4)[0:D.5340] * restrict indx, real(kind=4)[0:D.5337] * restrict keys, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
integer(kind=8) * vectp.653; | |
vector(2) integer(kind=8) * vectp_parm.652; | |
signed char * vectp.651; | |
vector(2) signed char * vectp_parm.650; | |
integer(kind=8) * vectp.649; | |
vector(2) integer(kind=8) * vectp_parm.648; | |
signed char * vectp.647; | |
vector(2) signed char * vectp_parm.646; | |
struct array01_real(kind=4) parm.153; | |
struct array01_integer(kind=4) parm.152; | |
integer(kind=8) ubound.148; | |
integer(kind=4) _1; | |
integer(kind=4) * _2; | |
real(kind=4) * _3; | |
<bb 2> [local count: 1073741824]: | |
_1 = *n_5(D); | |
ubound.148_6 = (integer(kind=8)) _1; | |
MEM <c_char[8]> [(struct dtype_type *)&parm.152 + 24B] = {}; | |
parm.152.dtype.elem_len = 4; | |
MEM <vector(2) signed char> [(signed char *)&parm.152 + 28B] = { 1, 1 }; | |
parm.152.dim[0].lbound = 1; | |
parm.152.dim[0].ubound = ubound.148_6; | |
MEM <vector(2) integer(kind=8)> [(integer(kind=8) *)&parm.152 + 32B] = { 4, 1 }; | |
_2 = &(*indx_15(D))[0]; | |
parm.152.data = _2; | |
parm.152.offset = -1; | |
MEM <c_char[8]> [(struct dtype_type *)&parm.153 + 24B] = {}; | |
parm.153.dtype.elem_len = 4; | |
MEM <vector(2) signed char> [(signed char *)&parm.153 + 28B] = { 1, 3 }; | |
parm.153.dim[0].lbound = 1; | |
parm.153.dim[0].ubound = ubound.148_6; | |
MEM <vector(2) integer(kind=8)> [(integer(kind=8) *)&parm.153 + 32B] = { 4, 1 }; | |
_3 = &(*keys_26(D))[0]; | |
parm.153.data = _3; | |
parm.153.offset = -1; | |
rsort_ (&parm.152, &parm.153, descend_29(D), stat_30(D)); | |
parm.152 ={v} {CLOBBER}; | |
parm.153 ={v} {CLOBBER}; | |
return; | |
} | |
;; Function isortn_ (__m_mergesorts_MOD_isortn_, funcdef_no=27, decl_uid=4421, cgraph_uid=28, symbol_order=27) | |
;; 1 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 | |
;; 2 succs { 1 } | |
__attribute__((fn spec (". r w r r w "))) | |
void isortn_ (integer(kind=4) & restrict n, integer(kind=4)[0:D.5367] * restrict indx, integer(kind=4)[0:D.5364] * restrict keys, logical(kind=4) * descend, integer(kind=4) * stat) | |
{ | |
integer(kind=8) * vectp.664; | |
vector(2) integer(kind=8) * vectp_parm.663; | |
signed char * vectp.662; | |
vector(2) signed char * vectp_parm.661; | |
integer(kind=8) * vectp.660; | |
vector(2) integer(kind=8) * vectp_parm.659; | |
signed char * vectp.658; | |
vector(2) signed char * vectp_parm.657; | |
struct array01_integer(kind=4) parm.159; | |
struct array01_integer(kind=4) parm.158; | |
integer(kind=8) ubound.154; | |
integer(kind=4) _1; | |
integer(kind=4) * _2; | |
integer(kind=4) * _3; | |
<bb 2> [local count: 1073741824]: | |
_1 = *n_5(D); | |
ubound.154_6 = (integer(kind=8)) _1; | |
MEM <c_char[8]> [(struct dtype_type *)&parm.158 + 24B] = {}; | |
parm.158.dtype.elem_len = 4; | |
MEM <vector(2) signed char> [(signed char *)&parm.158 + 28B] = { 1, 1 }; | |
parm.158.dim[0].lbound = 1; | |
parm.158.dim[0].ubound = ubound.154_6; | |
MEM <vector(2) integer(kind=8)> [(integer(kind=8) *)&parm.158 + 32B] = { 4, 1 }; | |
_2 = &(*indx_15(D))[0]; | |
parm.158.data = _2; | |
parm.158.offset = -1; | |
MEM <c_char[8]> [(struct dtype_type *)&parm.159 + 24B] = {}; | |
parm.159.dtype.elem_len = 4; | |
MEM <vector(2) signed char> [(signed char *)&parm.159 + 28B] = { 1, 1 }; | |
parm.159.dim[0].lbound = 1; | |
parm.159.dim[0].ubound = ubound.154_6; | |
MEM <vector(2) integer(kind=8)> [(integer(kind=8) *)&parm.159 + 32B] = { 4, 1 }; | |
_3 = &(*keys_26(D))[0]; | |
parm.159.data = _3; | |
parm.159.offset = -1; | |
isort_ (&parm.158, &parm.159, descend_29(D), stat_30(D)); | |
parm.158 ={v} {CLOBBER}; | |
parm.159 ={v} {CLOBBER}; | |
return; | |
} | |
;; Function set_ (__m_mergesorts_MOD_set_, funcdef_no=28, decl_uid=4435, cgraph_uid=29, symbol_order=28) | |
;; 2 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 3 4 5 6 8 7 | |
;; | |
;; Loop 1 | |
;; header 6, latch 8 | |
;; depth 1, outer 0 | |
;; nodes: 6 8 | |
;; 2 succs { 4 3 } | |
;; 3 succs { 4 } | |
;; 4 succs { 7 5 } | |
;; 5 succs { 6 } | |
;; 6 succs { 7 8 } | |
;; 8 succs { 6 } | |
;; 7 succs { 1 } | |
__attribute__((fn spec (". w "))) | |
void set_ (struct array01_integer(kind=4) & restrict indx) | |
{ | |
unsigned long ivtmp.674; | |
integer(kind=4)[0:D.5391] * restrict indx.0; | |
integer(kind=8) ubound.160; | |
integer(kind=4) i; | |
integer(kind=8) _1; | |
integer(kind=8) _2; | |
integer(kind=8) _3; | |
integer(kind=8) _5; | |
sizetype _6; | |
sizetype _7; | |
integer(kind=8) iftmp.370_8; | |
integer(kind=8) _12; | |
integer(kind=4) _16; | |
void * _25; | |
unsigned int _26; | |
unsigned int _27; | |
integer(kind=4) _28; | |
<bb 2> [local count: 118111600]: | |
_12 = *indx_11(D).dim[0].stride; | |
if (_12 != 0) | |
goto <bb 4>; [50.00%] | |
else | |
goto <bb 3>; [50.00%] | |
<bb 3> [local count: 59055800]: | |
<bb 4> [local count: 118111600]: | |
# iftmp.370_8 = PHI <_12(2), 1(3)> | |
indx.0_14 = *indx_11(D).data; | |
_1 = *indx_11(D).dim[0].ubound; | |
_2 = *indx_11(D).dim[0].lbound; | |
_3 = _1 - _2; | |
ubound.160_15 = _3 + 1; | |
_5 = MAX_EXPR <ubound.160_15, 0>; | |
_16 = (integer(kind=4)) _5; | |
if (_16 <= 0) | |
goto <bb 7>; [11.00%] | |
else | |
goto <bb 5>; [89.00%] | |
<bb 5> [local count: 105119324]: | |
_7 = (sizetype) iftmp.370_8; | |
_6 = _7 * 4; | |
ivtmp.674_24 = (unsigned long) indx.0_14; | |
_26 = (unsigned int) _5; | |
_27 = _26 + 1; | |
_28 = (integer(kind=4)) _27; | |
<bb 6> [local count: 955630225]: | |
# i_22 = PHI <i_18(8), 1(5)> | |
# ivtmp.674_21 = PHI <ivtmp.674_9(8), ivtmp.674_24(5)> | |
_25 = (void *) ivtmp.674_21; | |
MEM[(integer(kind=4) *)_25] = i_22; | |
i_18 = i_22 + 1; | |
ivtmp.674_9 = ivtmp.674_21 + _6; | |
if (i_18 == _28) | |
goto <bb 7>; [11.00%] | |
else | |
goto <bb 8>; [89.00%] | |
<bb 8> [local count: 850510901]: | |
goto <bb 6>; [100.00%] | |
<bb 7> [local count: 118111600]: | |
return; | |
} | |
;; Function setn_ (__m_mergesorts_MOD_setn_, funcdef_no=29, decl_uid=4439, cgraph_uid=30, symbol_order=29) | |
;; 2 loops found | |
;; | |
;; Loop 0 | |
;; header 0, latch 1 | |
;; depth 0, outer -1 | |
;; nodes: 0 1 2 5 3 6 4 | |
;; | |
;; Loop 1 | |
;; header 3, latch 6 | |
;; depth 1, outer 0 | |
;; nodes: 3 6 | |
;; 2 succs { 4 5 } | |
;; 5 succs { 3 } | |
;; 3 succs { 4 6 } | |
;; 6 succs { 3 } | |
;; 4 succs { 1 } | |
__attribute__((fn spec (". r w "))) | |
void setn_ (integer(kind=4) & restrict n, integer(kind=4)[0:D.5404] * restrict indx) | |
{ | |
sizetype ivtmp.682; | |
integer(kind=4) i; | |
integer(kind=8) ubound.165; | |
integer(kind=4) _1; | |
unsigned int _19; | |
integer(kind=4) _20; | |
<bb 2> [local count: 1073741824]: | |
_1 = *n_4(D); | |
_20 = MAX_EXPR <_1, 0>; | |
if (_1 <= 0) | |
goto <bb 4>; [11.00%] | |
else | |
goto <bb 5>; [89.00%] | |
<bb 5> [local count: 955630224]: | |
<bb 3> [local count: 8687547547]: | |
# ivtmp.682_10 = PHI <ivtmp.682_5(6), 1(5)> | |
_19 = (unsigned int) ivtmp.682_10; | |
i_7 = (integer(kind=4)) _19; | |
MEM <integer(kind=4)> [(integer(kind=4)[0:D.5391] *)indx_9(D) + -4B + ivtmp.682_10 * 4] = i_7; | |
ivtmp.682_5 = ivtmp.682_10 + 1; | |
i_27 = (integer(kind=4)) ivtmp.682_5; | |
if (_20 < i_27) | |
goto <bb 4>; [11.00%] | |
else | |
goto <bb 6>; [89.00%] | |
<bb 6> [local count: 7731917322]: | |
goto <bb 3>; [100.00%] | |
<bb 4> [local count: 1073741825]: | |
return; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment