Skip to content

Instantly share code, notes, and snippets.

@amurzeau
Created April 22, 2019 22:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amurzeau/5efb57a9cb0dc7e206fa72637a326476 to your computer and use it in GitHub Desktop.
Save amurzeau/5efb57a9cb0dc7e206fa72637a326476 to your computer and use it in GitHub Desktop.
GCC gimple dump before uninit phase (uninitialized use of .MEM_335 which is cnt_ inside counted_iterator, L325) (debian bug #926218)
;; Function ranges::v3::bad_variant_access::~bad_variant_access (_ZN6ranges2v318bad_variant_accessD2Ev, funcdef_no=6211, decl_uid=90493, cgraph_uid=1586, symbol_order=1718)
ranges::v3::bad_variant_access::~bad_variant_access (struct bad_variant_access * const this)
{
struct logic_error * _1;
<bb 2> [local count: 1073741825]:
[../include/range/v3/detail/variant.hpp:72:16] # .MEM_4 = VDEF <.MEM_2(D)>
this_3(D)->D.90508.D.26048._vptr.exception = [../include/range/v3/detail/variant.hpp:72:16] &MEM[(void *)&_ZTVN6ranges2v318bad_variant_accessE + 16B];
[../include/range/v3/detail/variant.hpp:72:16] _1 = [../include/range/v3/detail/variant.hpp:72:16] &this_3(D)->D.90508;
[../include/range/v3/detail/variant.hpp:72:16] # .MEM_5 = VDEF <.MEM_4>
std::logic_error::~logic_error (_1); [tail call]
[../include/range/v3/detail/variant.hpp:72:16] # VUSE <.MEM_5>
return;
}
;; Function ranges::v3::bad_variant_access::~bad_variant_access (_ZN6ranges2v318bad_variant_accessD0Ev, funcdef_no=6213, decl_uid=90487, cgraph_uid=1588, symbol_order=1720)
ranges::v3::bad_variant_access::~bad_variant_access (struct bad_variant_access * const this)
{
struct logic_error * _4;
<bb 2> [local count: 1073741825]:
[../include/range/v3/detail/variant.hpp:72:16] # .MEM_5 = VDEF <.MEM_1(D)>
this_2(D)->D.90508.D.26048._vptr.exception = [../include/range/v3/detail/variant.hpp:72:16] &MEM[(void *)&_ZTVN6ranges2v318bad_variant_accessE + 16B];
[../include/range/v3/detail/variant.hpp:72:16] _4 = [../include/range/v3/detail/variant.hpp:72:16] &this_2(D)->D.90508;
[../include/range/v3/detail/variant.hpp:72:16] # .MEM_6 = VDEF <.MEM_5>
std::logic_error::~logic_error (_4);
[../include/range/v3/detail/variant.hpp:72:16] # .MEM_3 = VDEF <.MEM_6>
operator delete (this_2(D), 16); [tail call]
[../include/range/v3/detail/variant.hpp:72:16] # VUSE <.MEM_3>
return;
}
;; Function ranges::v3::detail::get_fn<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, 0>::_ZNK6ranges2v36detail6get_fnINS0_16counted_iteratorINS0_14basic_iteratorINS0_9iota_viewIivEEEEvEELm0EEclINS0_16default_sentinelELm1EEEN4meta2v16detail4_if_INSD_4listIJSt17integral_constantIbXneT0_Lm0EEEEEESH_IbLb1EEE4typeENS0_15indexed_elementIT_XT0_EEE.isra.20 (_ZNK6ranges2v36detail6get_fnINS0_16counted_iteratorINS0_14basic_iteratorINS0_9iota_viewIivEEEEvEELm0EEclINS0_16default_sentinelELm1EEEN4meta2v16detail4_if_INSD_4listIJSt17integral_constantIbXneT0_Lm0EEEEEESH_IbLb1EEE4typeENS0_15indexed_elementIT_XT0_EEE.isra.20, funcdef_no=6581, decl_uid=181316, cgraph_uid=1566, symbol_order=4495) (executed once)
__attribute__((noreturn))
ranges::v3::detail::get_fn<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, 0>::_ZNK6ranges2v36detail6get_fnINS0_16counted_iteratorINS0_14basic_iteratorINS0_9iota_viewIivEEEEvEELm0EEclINS0_16default_sentinelELm1EEEN4meta2v16detail4_if_INSD_4listIJSt17integral_constantIbXneT0_Lm0EEEEEESH_IbLb1EEE4typeENS0_15indexed_elementIT_XT0_EEE.isra.20 ()
{
void * _1;
struct logic_error * _2;
<bb 2> [local count: 1073741825]:
[../include/range/v3/detail/variant.hpp:416:66] # .MEM_4 = VDEF <.MEM_3(D)>
_1 = __cxa_allocate_exception (16);
[../include/range/v3/detail/variant.hpp:79:42] _2 = [../include/range/v3/detail/variant.hpp:79:42] &MEM[(struct bad_variant_access *)_1].D.90508;
[../include/range/v3/detail/variant.hpp:79:42] # .MEM_6 = VDEF <.MEM_4>
std::logic_error::logic_error (_2, "bad variant access");
<bb 3> [count: 0]:
[../include/range/v3/detail/variant.hpp:79:42] # .MEM_7 = VDEF <.MEM_6>
MEM[(struct bad_variant_access *)_1].D.90508.D.26048._vptr.exception = [../include/range/v3/detail/variant.hpp:79:42] &MEM[(void *)&_ZTVN6ranges2v318bad_variant_accessE + 16B];
[../include/range/v3/detail/variant.hpp:416:66] # .MEM_8 = VDEF <.MEM_7>
__cxa_throw (_1, &_ZTIN6ranges2v318bad_variant_accessE, __dt_comp );
<bb 4> [count: 0]:
<L0>:
[../include/range/v3/detail/variant.hpp:416:66] # .MEM_9 = VDEF <.MEM_6>
__cxa_free_exception (_1);
resx 2
}
;; Function ranges::v3::operator==<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::default_sentinel, ranges::v3::default_sentinel> (_ZN6ranges2v3eqINS0_16counted_iteratorINS0_14basic_iteratorINS0_9iota_viewIivEEEEvEES7_NS0_16default_sentinelES8_Lb0ELPv0EEEbRKNS0_15common_iteratorIT_T1_EERKNSA_IT0_T2_EE, funcdef_no=5952, decl_uid=163543, cgraph_uid=1328, symbol_order=1460)
ranges::v3::operator==<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::default_sentinel, ranges::v3::default_sentinel> (const struct common_iterator & x, const struct common_iterator & y)
{
bool D.184208;
bool iftmp.25_1;
long unsigned int _7;
long int _9;
bool _10;
bool _12;
long int _13;
long int _14;
bool _15;
long unsigned int pretmp_17;
long int _22;
<bb 2> [local count: 1073741825]:
[../include/range/v3/utility/common_iterator.hpp:229:46] # VUSE <.MEM_3(D)>
_7 = [../include/range/v3/utility/common_iterator.hpp:229:46] MEM[(long unsigned int *)x_4(D) + 16B];
# VUSE <.MEM_3(D)>
pretmp_17 = MEM[(long unsigned int *)y_5(D) + 16B];
[../include/range/v3/utility/common_iterator.hpp:229:52] if (_7 == 1)
goto <bb 3>; [34.00%]
else
goto <bb 5>; [66.00%]
<bb 3> [local count: 365072220]:
[../include/range/v3/utility/common_iterator.hpp:230:50] if (pretmp_17 == 1)
goto <bb 9>; [34.00%]
else
goto <bb 4>; [66.00%]
<bb 9> [local count: 124124556]:
goto <bb 8>; [100.00%]
<bb 4> [local count: 240851286]:
[../include/range/v3/utility/counted_iterator.hpp:299:30] # VUSE <.MEM_3(D)>
_22 = MEM[(long int *)y_5(D) + 8B];
[../include/range/v3/utility/common_iterator.hpp:230:50] _12 = _22 == 0;
goto <bb 8>; [100.00%]
<bb 5> [local count: 708669604]:
[../include/range/v3/utility/common_iterator.hpp:233:91] if (pretmp_17 == 1)
goto <bb 6>; [34.00%]
else
goto <bb 7>; [66.00%]
<bb 6> [local count: 240851286]:
[../include/range/v3/utility/counted_iterator.hpp:299:30] # VUSE <.MEM_3(D)>
_9 = MEM[(long int *)x_4(D) + 8B];
[../include/range/v3/utility/counted_iterator.hpp:299:33] _10 = _9 == 0;
[0:0] goto <bb 8>; [100.00%]
<bb 7> [local count: 467721939]:
[../include/range/v3/utility/counted_iterator.hpp:290:18] # VUSE <.MEM_3(D)>
_13 = MEM[(long int *)x_4(D) + 8B];
[../include/range/v3/utility/counted_iterator.hpp:291:18] # VUSE <.MEM_3(D)>
_14 = MEM[(long int *)y_5(D) + 8B];
[../include/range/v3/utility/counted_iterator.hpp:293:25] _15 = _13 == _14;
<bb 8> [local count: 1073174963]:
# iftmp.25_1 = PHI <[../include/range/v3/utility/common_iterator.hpp:230:50] _12(4), [../include/range/v3/utility/common_iterator.hpp:233:55] _15(7), [../include/range/v3/utility/common_iterator.hpp:232:55] _10(6), [../include/range/v3/utility/common_iterator.hpp:230:50] 1(9)>
[../include/range/v3/utility/common_iterator.hpp:233:91] # VUSE <.MEM_3(D)>
return iftmp.25_1;
}
;; Function testype::assign2<ranges::v3::common_iterator<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::default_sentinel> > (_ZN7testype7assign2IN6ranges2v315common_iteratorINS2_16counted_iteratorINS2_14basic_iteratorINS2_9iota_viewIivEEEEvEENS2_16default_sentinelEEEEEvT_SC_, funcdef_no=5944, decl_uid=163257, cgraph_uid=1320, symbol_order=1452)
testype::assign2<ranges::v3::common_iterator<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::default_sentinel> > (struct testype * const this, struct common_iterator & restrict __first, struct common_iterator & restrict __last)
{
difference_type_t D__cnt__lsm.432;
difference_type_t D__cnt__lsm.431;
difference_type_t D__cnt__lsm.430;
unsigned long ivtmp.428;
unsigned long ivtmp.419;
unsigned long ivtmp.411;
difference_type_t D__cnt__lsm0.407;
difference_type_t D__cnt__lsm0.406;
difference_type_t D__cnt__lsm0.405;
int D__lsm.404;
struct common_iterator & D.184304;
bool D.184272;
bool D.184257;
int * __cur;
struct common_iterator D.184249;
struct common_iterator D.184248;
struct common_iterator D.167412;
struct common_iterator D.167417;
long unsigned int _6;
long unsigned int iftmp.47_10;
long unsigned int iftmp.47_11;
long unsigned int _12;
long unsigned int iftmp.47_14;
long unsigned int iftmp.47_15;
long unsigned int _21;
bool _25;
bool _26;
long unsigned int iftmp.47_28;
long unsigned int iftmp.47_32;
long unsigned int _35;
unsigned int _36;
unsigned int _38;
unsigned int _40;
bool _43;
int * _44;
long unsigned int _47;
long int _50;
long unsigned int _51;
bool _52;
long int _54;
unsigned int _55;
long unsigned int iftmp.47_56;
long int _59;
unsigned int _63;
long unsigned int _64;
int * _65;
int _66;
int _70;
long unsigned int _80;
bool _82;
long unsigned int _88;
long int _96;
int _98;
long int _104;
int _191;
long unsigned int _192;
long unsigned int _193;
long unsigned int _194;
long int _198;
unsigned int _199;
int _218;
long unsigned int _219;
long unsigned int _220;
unsigned int _222;
unsigned int _224;
unsigned int _225;
int * _244;
long unsigned int _272;
long unsigned int _274;
long int _279;
long int _293;
long unsigned int _309;
int * _310;
long unsigned int _327;
long int _328;
unsigned int _334;
unsigned int _336;
unsigned int _339;
int _340;
long int _343;
<bb 2> [local count: 1073741826]:
[../include/range/v3/detail/variant.hpp:606:13] # .MEM_18 = VDEF <.MEM_1(D)>
MEM[(struct &)[../test/container_conversion.cpp:42:4] &D.167417] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:229:21] # .MEM_19 = VDEF <.MEM_18>
MEM[(struct &)[../test/container_conversion.cpp:42:4] &D.167417] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:608:50] # VUSE <.MEM_19>
_12 = MEM[(long unsigned int *)__last_2(D) + 16B];
[../include/range/v3/detail/variant.hpp:290:31] if (_12 == 0)
goto <bb 3>; [50.00%]
else
goto <bb 4>; [50.00%]
<bb 3> [local count: 536870918]:
# .MEM_20 = VDEF <.MEM_19>
MEM[(struct Head *)[../test/container_conversion.cpp:42:4] &D.167417] = MEM[(const struct indexed_datum *)__last_2(D)];
goto <bb 5>; [100.00%]
<bb 4> [local count: 536870918]:
[../include/range/v3/detail/variant.hpp:290:31] _52 = _12 != 1;
[../include/range/v3/detail/variant.hpp:290:31] _51 = (long unsigned int) _52;
[../include/range/v3/detail/variant.hpp:290:31] iftmp.47_14 = _51 + 1;
<bb 5> [local count: 1073741826]:
# iftmp.47_15 = PHI <[../include/range/v3/detail/variant.hpp:290:31] 0(3), [../include/range/v3/detail/variant.hpp:290:31] iftmp.47_14(4)>
# .MEM_17 = PHI <.MEM_20(3), .MEM_19(4)>
[../include/range/v3/detail/variant.hpp:606:13] # .MEM_22 = VDEF <.MEM_17>
MEM[(struct &)[../test/container_conversion.cpp:42:4] &D.167412] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:229:21] # .MEM_23 = VDEF <.MEM_22>
MEM[(struct &)[../test/container_conversion.cpp:42:4] &D.167412] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:608:50] # VUSE <.MEM_23>
_6 = MEM[(long unsigned int *)__first_3(D) + 16B];
[../include/range/v3/detail/variant.hpp:290:31] if (_6 == 0)
goto <bb 6>; [50.00%]
else
goto <bb 7>; [50.00%]
<bb 6> [local count: 536870918]:
# .MEM_24 = VDEF <.MEM_23>
MEM[(struct Head *)[../test/container_conversion.cpp:42:4] &D.167412] = MEM[(const struct indexed_datum *)__first_3(D)];
goto <bb 8>; [100.00%]
<bb 7> [local count: 536870918]:
[../include/range/v3/detail/variant.hpp:290:31] _25 = _6 != 1;
[../include/range/v3/detail/variant.hpp:290:31] _64 = (long unsigned int) _25;
[../include/range/v3/detail/variant.hpp:290:31] iftmp.47_10 = _64 + 1;
<bb 8> [local count: 1073741826]:
# iftmp.47_11 = PHI <[../include/range/v3/detail/variant.hpp:290:31] 0(6), [../include/range/v3/detail/variant.hpp:290:31] iftmp.47_10(7)>
# .MEM_16 = PHI <.MEM_24(6), .MEM_23(7)>
[../include/range/v3/detail/variant.hpp:606:13] # .MEM_72 = VDEF <.MEM_16>
MEM[(struct &)[../test/container_conversion.cpp:48:4] &D.184248] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:229:21] # .MEM_73 = VDEF <.MEM_72>
MEM[(struct &)[../test/container_conversion.cpp:48:4] &D.184248] ={v} {CLOBBER}; // <------------ .MEM_335 is clobbered here
[../include/range/v3/detail/variant.hpp:290:31] if (iftmp.47_15 == 0)
goto <bb 9>; [50.00%]
else
goto <bb 10>; [50.00%]
<bb 9> [local count: 536870918]:
# .MEM_74 = VDEF <.MEM_73>
MEM[(struct Head *)[../test/container_conversion.cpp:48:4] &D.184248] = MEM[(const struct indexed_datum *)[../test/container_conversion.cpp:42:4] &D.167417];
[../include/range/v3/detail/variant.hpp:608:87] # .MEM_148 = VDEF <.MEM_74>
[../include/range/v3/detail/variant.hpp:608:87] MEM[(struct variant *)[../test/container_conversion.cpp:48:4] &D.184248].index_ = 0;
[../include/range/v3/detail/variant.hpp:606:13] # .MEM_228 = VDEF <.MEM_148>
MEM[(struct &)[../test/container_conversion.cpp:48:4] &D.184249] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:229:21] # .MEM_189 = VDEF <.MEM_228>
MEM[(struct &)[../test/container_conversion.cpp:48:4] &D.184249] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:290:31] if (iftmp.47_11 == 0)
goto <bb 40>; [50.00%]
else
goto <bb 41>; [50.00%]
<bb 10> [local count: 536870918]:
[../include/range/v3/detail/variant.hpp:290:31] _26 = iftmp.47_15 != 1;
[../include/range/v3/detail/variant.hpp:290:31] _21 = (long unsigned int) _26;
[../include/range/v3/detail/variant.hpp:290:31] iftmp.47_28 = _21 + 1;
[../include/range/v3/detail/variant.hpp:608:87] # .MEM_75 = VDEF <.MEM_73>
[../include/range/v3/detail/variant.hpp:608:87] MEM[(struct variant *)[../test/container_conversion.cpp:48:4] &D.184248].index_ = iftmp.47_28;
[../include/range/v3/detail/variant.hpp:606:13] # .MEM_76 = VDEF <.MEM_75>
MEM[(struct &)[../test/container_conversion.cpp:48:4] &D.184249] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:229:21] # .MEM_77 = VDEF <.MEM_76>
MEM[(struct &)[../test/container_conversion.cpp:48:4] &D.184249] ={v} {CLOBBER};
[../include/range/v3/detail/variant.hpp:290:31] if (iftmp.47_11 == 0)
goto <bb 11>; [50.00%]
else
goto <bb 42>; [50.00%]
<bb 42> [local count: 268435463]:
goto <bb 12>; [100.00%]
<bb 11> [local count: 439950673]:
# .MEM_78 = VDEF <.MEM_77>
MEM[(struct Head *)[../test/container_conversion.cpp:48:4] &D.184249] = MEM[(const struct indexed_datum *)[../test/container_conversion.cpp:42:4] &D.167412];
[../include/range/v3/detail/variant.hpp:608:87] # .MEM_335 = VDEF <.MEM_78>
[../include/range/v3/detail/variant.hpp:608:87] MEM[(struct variant *)[../test/container_conversion.cpp:48:4] &D.184249].index_ = 0;
[../test/container_conversion.cpp:77:18] # VUSE <.MEM_335>
__cur_338 = [../test/container_conversion.cpp:77:38] [../test/container_conversion.cpp:77:30] this_4(D)->D.120557.D.120504._M_impl._M_start;
[../include/range/v3/utility/counted_iterator.hpp:291:18] # VUSE <.MEM_335>
_293 = MEM[(long int *)[../test/container_conversion.cpp:48:4] &D.184248 + 8B]; // <--- the uninitialized use warning is caused by this statement
# VUSE <.MEM_335>
D__lsm.404_294 = MEM[(int *)[../test/container_conversion.cpp:48:4] &D.184249];
if (iftmp.47_28 == 1)
goto <bb 19>; [54.75%]
else
goto <bb 43>; [45.25%]
<bb 41> [local count: 268435459]:
<bb 12> [local count: 536870918]:
# iftmp.47_56 = PHI <[../include/range/v3/detail/variant.hpp:290:31] 0(41), [../include/range/v3/detail/variant.hpp:290:31] iftmp.47_28(42)>
# .MEM_58 = PHI <.MEM_189(41), .MEM_77(42)>
[../include/range/v3/detail/variant.hpp:290:31] _82 = iftmp.47_11 != 1;
[../include/range/v3/detail/variant.hpp:290:31] _80 = (long unsigned int) _82;
[../include/range/v3/detail/variant.hpp:290:31] iftmp.47_32 = _80 + 1;
[../include/range/v3/detail/variant.hpp:608:87] # .MEM_79 = VDEF <.MEM_58>
[../include/range/v3/detail/variant.hpp:608:87] MEM[(struct variant *)[../test/container_conversion.cpp:48:4] &D.184249].index_ = iftmp.47_32;
[../test/container_conversion.cpp:77:18] # VUSE <.MEM_79>
__cur_34 = [../test/container_conversion.cpp:77:38] [../test/container_conversion.cpp:77:30] this_4(D)->D.120557.D.120504._M_impl._M_start;
[../include/range/v3/utility/counted_iterator.hpp:291:18] # VUSE <.MEM_79>
_54 = MEM[(long int *)[../test/container_conversion.cpp:48:4] &D.184248 + 8B];
# VUSE <.MEM_79>
D__lsm.404_9 = MEM[(int *)[../test/container_conversion.cpp:48:4] &D.184249];
if (iftmp.47_32 == 1)
goto <bb 27>; [67.33%]
else
goto <bb 30>; [32.67%]
<bb 43> [local count: 199099386]:
<bb 13> [local count: 467534846]:
# _279 = PHI <[../include/range/v3/utility/counted_iterator.hpp:291:18] _343(40), [../include/range/v3/utility/counted_iterator.hpp:291:18] _293(43)>
# D__lsm.404_275 = PHI <D__lsm.404_232(40), D__lsm.404_294(43)>
# .MEM_276 = PHI <.MEM_302(40), .MEM_335(43)>
# __cur_277 = PHI <[../test/container_conversion.cpp:77:18] __cur_303(40), [../test/container_conversion.cpp:77:18] __cur_338(43)>
[../include/range/v3/utility/counted_iterator.hpp:290:18] # VUSE <.MEM_276>
_328 = MEM[(long int *)[../test/container_conversion.cpp:48:4] &D.184249 + 8B];
[../test/container_conversion.cpp:78:38] if (_279 == _328)
goto <bb 44>; [0.42%]
else
goto <bb 14>; [99.58%]
<bb 44> [local count: 1955079]:
goto <bb 32>; [100.00%]
<bb 14> [local count: 441410543]:
[../test/container_conversion.cpp:78:64] # VUSE <.MEM_276>
_310 = [../test/container_conversion.cpp:78:64] [../test/container_conversion.cpp:78:56] this_4(D)->D.120557.D.120504._M_impl._M_finish;
[../test/container_conversion.cpp:78:38] if (__cur_277 != _310)
goto <bb 15>; [94.50%]
else
goto <bb 45>; [5.50%]
<bb 45> [local count: 24277580]:
goto <bb 34>; [100.00%]
<bb 15> [local count: 417132963]:
[../test/container_conversion.cpp:80:21] # VUSE <.MEM_276>
_218 = *__cur_277;
[../test/container_conversion.cpp:80:21] _220 = (long unsigned int) _218;
_272 = _220 + 1;
_274 = _272 * 4;
[../test/container_conversion.cpp:78:13] __cur_236 = __cur_277 + _274;
_59 = _328 + -1;
ivtmp.411_61 = (unsigned long) _59;
goto <bb 18>; [100.00%]
<bb 16> [local count: 3639664595]:
[../test/container_conversion.cpp:78:38] if (__cur_245 != _310)
goto <bb 17>; [94.50%]
else
goto <bb 33>; [5.50%]
<bb 17> [local count: 3439483041]:
[../test/container_conversion.cpp:80:21] # VUSE <.MEM_276>
_191 = *__cur_245;
[../test/container_conversion.cpp:80:21] _192 = (long unsigned int) _191;
_193 = _192 + 1;
_194 = _193 * 4;
[../test/container_conversion.cpp:78:13] __cur_195 = __cur_245 + _194;
ivtmp.411_30 = ivtmp.411_107 + 18446744073709551615;
<bb 18> [local count: 3853531331]:
# __cur_245 = PHI <[../test/container_conversion.cpp:78:13] __cur_236(15), [../test/container_conversion.cpp:78:13] __cur_195(17)>
# ivtmp.411_107 = PHI <ivtmp.411_61(15), ivtmp.411_30(17)>
_36 = (unsigned int) _59;
_38 = (unsigned int) D__lsm.404_275;
_225 = _38 + 1;
_40 = (unsigned int) ivtmp.411_107;
_222 = _36 + _225;
_63 = _222 - _40;
_66 = (int) _63;
[../include/range/v3/utility/counted_iterator.hpp:149:17] _198 = (long int) ivtmp.411_107;
[../test/container_conversion.cpp:78:38] if (_198 == _279)
goto <bb 31>; [0.42%]
else
goto <bb 16>; [99.58%]
<bb 19> [local count: 240851288]:
[../include/range/v3/utility/counted_iterator.hpp:299:30] # VUSE <.MEM_335>
_104 = MEM[(long int *)[../test/container_conversion.cpp:48:4] &D.184249 + 8B];
[../test/container_conversion.cpp:78:38] if (_104 == 0)
goto <bb 46>; [0.42%]
else
goto <bb 20>; [99.58%]
<bb 46> [local count: 1007162]:
goto <bb 32>; [100.00%]
<bb 20> [local count: 227484307]:
[../test/container_conversion.cpp:78:64] # VUSE <.MEM_335>
_65 = [../test/container_conversion.cpp:78:64] [../test/container_conversion.cpp:78:56] this_4(D)->D.120557.D.120504._M_impl._M_finish;
[../test/container_conversion.cpp:78:38] if (_65 != __cur_338)
goto <bb 21>; [94.50%]
else
goto <bb 47>; [5.50%]
<bb 47> [local count: 12511637]:
goto <bb 34>; [100.00%]
<bb 21> [local count: 214972670]:
[../test/container_conversion.cpp:80:21] # VUSE <.MEM_335>
_70 = *__cur_338;
[../test/container_conversion.cpp:80:21] _327 = (long unsigned int) _70;
_309 = _327 + 1;
_219 = _309 * 4;
[../test/container_conversion.cpp:78:13] __cur_273 = __cur_338 + _219;
_50 = _104 + -1;
ivtmp.419_49 = (unsigned long) _50;
goto <bb 25>; [100.00%]
<bb 22> [local count: 1875729051]:
[../test/container_conversion.cpp:78:38] if (_65 != __cur_129)
goto <bb 24>; [94.50%]
else
goto <bb 23>; [5.50%]
<bb 23> [local count: 103165097]:
# .MEM_319 = VDEF <.MEM_335>
[../include/range/v3/utility/counted_iterator.hpp:149:19] MEM[(struct counted_iterator *)[../test/container_conversion.cpp:48:4] &D.184249].cnt_ = _96;
goto <bb 34>; [100.00%]
<bb 24> [local count: 1772563953]:
[../test/container_conversion.cpp:80:21] # VUSE <.MEM_335>
_98 = *__cur_129;
[../test/container_conversion.cpp:80:21] _35 = (long unsigned int) _98;
_47 = _35 + 1;
_88 = _47 * 4;
[../test/container_conversion.cpp:78:13] __cur_45 = __cur_129 + _88;
ivtmp.419_57 = ivtmp.419_87 + 18446744073709551615;
<bb 25> [local count: 1985946912]:
# __cur_129 = PHI <[../test/container_conversion.cpp:78:13] __cur_273(21), [../test/container_conversion.cpp:78:13] __cur_45(24)>
# ivtmp.419_87 = PHI <ivtmp.419_49(21), ivtmp.419_57(24)>
_55 = (unsigned int) _50;
_334 = (unsigned int) D__lsm.404_294;
_199 = _334 + 1;
_336 = (unsigned int) ivtmp.419_87;
_224 = _55 + _199;
_339 = _224 - _336;
_340 = (int) _339;
[../include/range/v3/utility/counted_iterator.hpp:149:17] _96 = (long int) ivtmp.419_87;
[../test/container_conversion.cpp:78:38] if (_96 == 0)
goto <bb 26>; [0.42%]
else
goto <bb 22>; [99.58%]
<bb 26> [local count: 8304586]:
# .MEM_320 = VDEF <.MEM_335>
[../include/range/v3/utility/counted_iterator.hpp:149:19] MEM[(struct counted_iterator *)[../test/container_conversion.cpp:48:4] &D.184249].cnt_ = 0;
goto <bb 32>; [100.00%]
<bb 27> [local count: 146029]:
if (_54 == 0)
goto <bb 48>; [50.00%]
else
goto <bb 28>; [50.00%]
<bb 28> [local count: 73015]:
if (iftmp.47_56 == 0)
goto <bb 29>; [99.96%]
else
goto <bb 49>; [0.04%]
<bb 49> [local count: 29]:
goto <bb 36>; [100.00%]
<bb 29> [local count: 637337]:
[../test/container_conversion.cpp:78:64] # VUSE <.MEM_79>
_244 = [../test/container_conversion.cpp:78:64] [../test/container_conversion.cpp:78:56] this_4(D)->D.120557.D.120504._M_impl._M_finish;
[../test/container_conversion.cpp:78:38] if (__cur_34 != _244)
goto <bb 35>; [94.50%]
else
goto <bb 50>; [5.50%]
<bb 50> [local count: 35054]:
goto <bb 34>; [100.00%]
<bb 30> [count: 0]:
[../include/range/v3/detail/variant.hpp:306:48] __builtin_unreachable ();
<bb 31> [local count: 16114218]:
# .MEM_187 = VDEF <.MEM_276>
[../include/range/v3/utility/counted_iterator.hpp:149:19] MEM[(struct counted_iterator *)[../test/container_conversion.cpp:48:4] &D.184249].cnt_ = _198;
<bb 32> [local count: 27380263]:
# D__lsm.404_85 = PHI <D__lsm.404_275(44), _66(31), _340(26), D__lsm.404_294(46)>
# __cur_105 = PHI <__cur_277(44), __cur_245(31), __cur_129(26), [../test/container_conversion.cpp:77:18] __cur_338(46)>
# .MEM_101 = PHI <.MEM_276(44), .MEM_187(31), .MEM_320(26), .MEM_335(46)>
# .MEM_100 = VDEF <.MEM_101>
MEM[(int *)[../test/container_conversion.cpp:48:4] &D.184249] = D__lsm.404_85;
goto <bb 36>; [100.00%]
<bb 33> [local count: 200181552]:
# .MEM_196 = VDEF <.MEM_276>
[../include/range/v3/utility/counted_iterator.hpp:149:19] MEM[(struct counted_iterator *)[../test/container_conversion.cpp:48:4] &D.184249].cnt_ = _198;
<bb 34> [local count: 515699744]:
# D__lsm.404_60 = PHI <_340(23), _66(33), D__lsm.404_275(45), D__lsm.404_294(47), D__lsm.404_9(50)>
# __cur_86 = PHI <__cur_129(23), _310(33), __cur_277(45), [../test/container_conversion.cpp:77:18] __cur_338(47), _244(50)>
# .MEM_81 = PHI <.MEM_319(23), .MEM_196(33), .MEM_276(45), .MEM_335(47), .MEM_79(50)>
# .MEM_99 = VDEF <.MEM_81>
MEM[(int *)[../test/container_conversion.cpp:48:4] &D.184249] = D__lsm.404_60;
goto <bb 36>; [100.00%]
<bb 35> [local count: 3542841]:
[../include/range/v3/utility/invoke.hpp:124:13] # .MEM_89 = VDEF <.MEM_79>
ranges::v3::detail::get_fn<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, 0>::_ZNK6ranges2v36detail6get_fnINS0_16counted_iteratorINS0_14basic_iteratorINS0_9iota_viewIivEEEEvEELm0EEclINS0_16default_sentinelELm1EEEN4meta2v16detail4_if_INSD_4listIJSt17integral_constantIbXneT0_Lm0EEEEEESH_IbLb1EEE4typeENS0_15indexed_elementIT_XT0_EEE.isra.20 ();
<bb 48> [local count: 73015]:
<bb 36> [local count: 1061413769]:
# .MEM_31 = PHI <.MEM_99(34), .MEM_100(32), .MEM_79(48), .MEM_79(49)>
# __cur_83 = PHI <__cur_86(34), __cur_105(32), [../test/container_conversion.cpp:77:18] __cur_34(48), [../test/container_conversion.cpp:77:18] __cur_34(49)>
[../test/container_conversion.cpp:82:25] # VUSE <.MEM_31>
_43 = ranges::v3::operator==<ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::counted_iterator<ranges::v3::basic_iterator<ranges::v3::iota_view<int> >, void>, ranges::v3::default_sentinel, ranges::v3::default_sentinel> ([../test/container_conversion.cpp:48:4] &D.184249, [../test/container_conversion.cpp:48:4] &D.184248);
[../test/container_conversion.cpp:82:13] if (_43 != 0)
goto <bb 37>; [50.00%]
else
goto <bb 51>; [50.00%]
<bb 51> [local count: 530706885]:
goto <bb 39>; [100.00%]
<bb 37> [local count: 530706885]:
[/usr/include/c++/8/bits/stl_vector.h:1656:36] # VUSE <.MEM_31>
_44 = MEM[(int * *)this_4(D) + 8B];
[/usr/include/c++/8/bits/stl_vector.h:1656:2] if (_44 != __cur_83)
goto <bb 38>; [70.00%]
else
goto <bb 52>; [30.00%]
<bb 52> [local count: 159212064]:
goto <bb 39>; [100.00%]
<bb 38> [local count: 371494817]:
[/usr/include/c++/8/bits/stl_vector.h:1660:6] # .MEM_90 = VDEF <.MEM_31>
MEM[(int * *)this_4(D) + 8B] = __cur_83;
<bb 39> [local count: 1061413769]:
# .MEM_71 = PHI <.MEM_90(38), .MEM_31(51), .MEM_31(52)>
[../test/container_conversion.cpp:48:4] # .MEM_91 = VDEF <.MEM_71>
D.184249 ={v} {CLOBBER};
[../test/container_conversion.cpp:48:4] # .MEM_92 = VDEF <.MEM_91>
D.184248 ={v} {CLOBBER};
[../test/container_conversion.cpp:42:4] # .MEM_7 = VDEF <.MEM_92>
D.167412 ={v} {CLOBBER};
[../test/container_conversion.cpp:42:4] # .MEM_8 = VDEF <.MEM_7>
D.167417 ={v} {CLOBBER};
[../test/container_conversion.cpp:42:63] # VUSE <.MEM_8>
return;
<bb 40> [local count: 268435461]:
# .MEM_301 = VDEF <.MEM_189>
MEM[(struct Head *)[../test/container_conversion.cpp:48:4] &D.184249] = MEM[(const struct indexed_datum *)[../test/container_conversion.cpp:42:4] &D.167412];
[../include/range/v3/detail/variant.hpp:608:87] # .MEM_302 = VDEF <.MEM_301>
[../include/range/v3/detail/variant.hpp:608:87] MEM[(struct variant *)[../test/container_conversion.cpp:48:4] &D.184249].index_ = 0;
[../test/container_conversion.cpp:77:18] # VUSE <.MEM_302>
__cur_303 = [../test/container_conversion.cpp:77:38] [../test/container_conversion.cpp:77:30] this_4(D)->D.120557.D.120504._M_impl._M_start;
[../include/range/v3/utility/counted_iterator.hpp:291:18] # VUSE <.MEM_302>
_343 = MEM[(long int *)[../test/container_conversion.cpp:48:4] &D.184248 + 8B];
# VUSE <.MEM_302>
D__lsm.404_232 = MEM[(int *)[../test/container_conversion.cpp:48:4] &D.184249];
goto <bb 13>; [100.00%]
}
@amurzeau
Copy link
Author

Generated with g++ (Debian 8.3.0-6) 8.3.0
/usr/lib/gcc/x86_64-linux-gnu/8/cc1plus -quiet -I ../include -imultiarch x86_64-linux-gnu -MD test/CMakeFiles/container_conversion.dir/container_conversion.cpp.d -MF test/CMakeFiles/container_conversion.dir/container_conversion.cpp.o.d -MT test/CMakeFiles/container_conversion.dir/container_conversion.cpp.o -D_GNU_SOURCE -D RANGES_BROKEN_CPO_LOOKUP=1 -D NDEBUG ../test/container_conversion.cpp -quiet -dumpbase container_conversion.cpp -mtune=generic -march=x86-64 -auxbase-strip test/CMakeFiles/container_conversion.dir/container_conversion.cpp.o -Ofast -Wall -Wextra -Wpedantic -pedantic-errors -Wno-padded -Wno-old-style-cast -Wno-shadow -Wno-noexcept-type -Werror -std=c++11 -fdiagnostics-show-template-tree -ftemplate-backtrace-limit=0 -fomit-frame-pointer -fstrict-aliasing -ffast-math -fsized-deallocation -fdump-tree-crited-details-lineno-verbose-vops-address -o /tmp/ccNEpkcT.s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment