Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save marxin/7eadc43d12fdefac6f5b8151a47a8684 to your computer and use it in GitHub Desktop.
Save marxin/7eadc43d12fdefac6f5b8151a47a8684 to your computer and use it in GitHub Desktop.
--- 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