Skip to content

Instantly share code, notes, and snippets.

@taewookoh
Created February 28, 2019 18:49
Show Gist options
  • Save taewookoh/3bbe848ee487473f8012028bc78da64a to your computer and use it in GitHub Desktop.
Save taewookoh/3bbe848ee487473f8012028bc78da64a to your computer and use it in GitHub Desktop.
llvm::SmallVectorTemplateBase<std::pair<std::unique_ptr<llvm::DwarfTypeUnit>, const llvm::DICompositeType*>, false>::grow (struct SmallVectorTemplateBase * const this, size_t MinSize)
{
void * Result;
void * D.1217160;
uint64_t A;
struct pair * __cur;
struct pair * __first$_M_current;
struct pair * E;
struct pair * NewElts;
size_t NewCapacity;
const long unsigned int D.1032703;
long unsigned int _2;
long unsigned int _4;
unsigned int _5;
void * _13;
struct DwarfTypeUnit * _18;
void * _21;
unsigned int _27;
struct pair * _28;
struct DwarfTypeUnit * _31;
const struct DICompositeType * _32;
struct pair * _33;
void * _35;
unsigned int _36;
long unsigned int _37;
long unsigned int _38;
struct pair * _39;
long unsigned int _41;
long unsigned int _42;
long unsigned int _43;
long unsigned int _45;
long unsigned int _47;
long unsigned int _49;
long unsigned int _51;
long unsigned int _53;
long unsigned int _55;
long unsigned int _56;
struct DwarfUnit * _69;
void * pretmp_121;
void * prephitmp_122;
<bb 2> [local count: 118111601]:
if (MinSize_58(D) > 4294967295)
goto <bb 3>; [33.00%]
else
goto <bb 4>; [67.00%]
<bb 3> [local count: 38976828]:
llvm::report_bad_alloc_error ("SmallVector capacity overflow during allocation", 1);
<bb 4> [local count: 118111601]:
# DEBUG D#4491 => &this_10(D)->D.680930.D.680870
_27 = MEM[(unsigned int *)this_10(D) + 12B];
# DEBUG D#85 => D#4491
# DEBUG this => D#85
# DEBUG BEGIN_STMT
_56 = (long unsigned int) _27;
_2 = _56 + 2;
# DEBUG A => _2
# DEBUG BEGIN_STMT
_43 = _2 >> 1;
A_44 = _2 | _43;
# DEBUG A => A_44
# DEBUG BEGIN_STMT
_45 = A_44 >> 2;
A_46 = A_44 | _45;
# DEBUG A => A_46
# DEBUG BEGIN_STMT
_47 = A_46 >> 4;
A_48 = A_46 | _47;
# DEBUG A => A_48
# DEBUG BEGIN_STMT
_49 = A_48 >> 8;
A_50 = A_48 | _49;
# DEBUG A => A_50
# DEBUG BEGIN_STMT
_51 = A_50 >> 16;
A_52 = A_50 | _51;
# DEBUG A => A_52
# DEBUG BEGIN_STMT
_53 = A_52 >> 32;
A_54 = A_52 | _53;
# DEBUG A => A_54
# DEBUG BEGIN_STMT
_55 = A_54 + 1;
# DEBUG A => NULL
# DEBUG NewCapacity => _55
# DEBUG __a => &NewCapacity
# DEBUG __b => &MinSize
_42 = MAX_EXPR <_55, MinSize_58(D)>;
# DEBUG __a => NULL
# DEBUG __b => NULL
# DEBUG __a => NULL
# DEBUG __b => &D.1032703
_41 = MIN_EXPR <_42, 4294967295>;
# DEBUG __a => NULL
# DEBUG __b => NULL
# DEBUG NewCapacity => _41
_4 = _41 * 16;
# DEBUG Sz => _4
# DEBUG BEGIN_STMT
Result_68 = malloc (_4);
# DEBUG Result => Result_68
# DEBUG BEGIN_STMT
if (Result_68 == 0B)
goto <bb 5>; [17.43%]
else
goto <bb 6>; [82.57%]
<bb 5> [local count: 20586852]:
# DEBUG BEGIN_STMT
llvm::report_bad_alloc_error ("Allocation failed", 1);
<bb 6> [local count: 118111601]:
# DEBUG BEGIN_STMT
# DEBUG Sz => NULL
# DEBUG Result => NULL
# DEBUG NewElts => Result_68
# DEBUG D#4492 => &this_10(D)->D.680930
# DEBUG this => D#4492
_35 = MEM[(void * *)this_10(D)];
# DEBUG D#627 => D#4492
# DEBUG this => D#627
# DEBUG D#628 => &D#4492->D.680870
_36 = MEM[(unsigned int *)this_10(D) + 8B];
# DEBUG D#81 => D#628
# DEBUG this => D#81
# DEBUG BEGIN_STMT
_37 = (long unsigned int) _36;
_38 = _37 * 16;
_39 = _35 + _38;
# DEBUG this => NULL
# DEBUG D#4493 => &this_10(D)->D.680930
# DEBUG D#627 => D#4493
# DEBUG this => D#627
# DEBUG I => _35
# DEBUG E => _39
# DEBUG Dest => Result_68
# DEBUG __first$_M_current => _35
# DEBUG __cur => Result_68
# DEBUG __x => &__first
# DEBUG __y => &__last
# DEBUG __x => &__first
# DEBUG __y => &__last
# DEBUG D#4486 => &__first
# DEBUG this => D#4486
# DEBUG D#4486 => &__last
# DEBUG this => D#4486
# DEBUG __x => NULL
# DEBUG __y => NULL
# DEBUG __x => NULL
# DEBUG __y => NULL
if (_35 != _39)
goto <bb 17>; [89.00%]
else
goto <bb 13>; [11.00%]
<bb 17> [local count: 105119325]:
<bb 7> [local count: 955630224]:
# __first$_M_current_84 = PHI <_35(17), _33(19)>
# __cur_85 = PHI <Result_68(17), __cur_34(19)>
# DEBUG __first$_M_current => __first$_M_current_84
# DEBUG __cur => __cur_85
# DEBUG this => D#4486
# DEBUG D#4486 => &__last
# DEBUG this => D#4486
# DEBUG __x => NULL
# DEBUG __y => NULL
# DEBUG __x => NULL
# DEBUG __y => NULL
# DEBUG D#3959 => &__first
# DEBUG this => D#3959
# DEBUG __r => __cur_85
# DEBUG __r => NULL
# DEBUG __p => __cur_85
# DEBUG __args#0 => __first$_M_current_84
# DEBUG __t => __first$_M_current_84
# DEBUG __t => NULL
# DEBUG D#78 => 16
# DEBUG __p => __cur_85
# DEBUG D.1182665 => D#78
# DEBUG BEGIN_STMT
# DEBUG __p => NULL
# DEBUG this => __cur_85
# DEBUG D.1189893 => __first$_M_current_84
MEM[(struct &)__cur_85] ={v} {CLOBBER};
# DEBUG D#3961 => &__cur_85->first
# DEBUG D#3960 => &__first$_M_current_84->first
# DEBUG this => D#3961
# DEBUG __u => D#3960
MEM[(struct &)__cur_85] ={v} {CLOBBER};
# DEBUG D#2410 => &D#3961->_M_t
# DEBUG this => D#3960
# DEBUG D#2399 => &D#3960->_M_t
# DEBUG this => D#2399
# DEBUG D#2409 => &MEM[(struct __uniq_ptr_impl *)D#3960]._M_t
# DEBUG __t => D#2409
# DEBUG __t => D#2409
# DEBUG __t => D#2409
# DEBUG __b => D#2409
# DEBUG __b => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG this => NULL
# DEBUG this => NULL
# DEBUG __t => D#2409
# DEBUG __t => NULL
# DEBUG this => D#3960
# DEBUG this => D#3960
# DEBUG D#1376 => &MEM[(const struct unique_ptr *)D#3960]._M_t
# DEBUG this => D#1376
# DEBUG D#1375 => &D#1376->_M_t
# DEBUG __t => D#1375
# DEBUG D#1374 => &D#1375->D.677963
# DEBUG __t => D#1374
# DEBUG __t => D#1374
# DEBUG D#1373 => &D#1374->D.676343
# DEBUG __b => D#1373
# DEBUG __b => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
_31 = MEM[(struct DwarfTypeUnit * const &)__first$_M_current_84];
# DEBUG this => NULL
# DEBUG this => NULL
# DEBUG __p => _31
# DEBUG D#1377 => &D#3960->_M_t
# DEBUG this => D#1377
# DEBUG D#1369 => &D#1377->_M_t
# DEBUG __t => D#1369
# DEBUG D#1368 => &D#1369->D.677963
# DEBUG __t => D#1368
# DEBUG __t => D#1368
# DEBUG D#1367 => &D#1368->D.676343
# DEBUG __b => D#1367
# DEBUG __b => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG this => NULL
MEM[(struct DwarfTypeUnit * &)__first$_M_current_84] = 0B;
# DEBUG this => NULL
# DEBUG this => D#2410
# DEBUG __p => _31
# DEBUG __d => D#2409
# DEBUG D#1372 => &D#2410->_M_t
# DEBUG __t => D#2409
# DEBUG __t => NULL
# DEBUG this => D#1372
# DEBUG __a1 => &__p
# DEBUG __a2 => D#2409
# DEBUG D#1371 => &D#1372->D.677963
# DEBUG __t => D#2409
# DEBUG __t => NULL
# DEBUG __t => &__p
# DEBUG __t => NULL
# DEBUG this => D#1371
# DEBUG __head => &__p
# DEBUG __tail#0 => D#2409
# DEBUG __t => D#2409
# DEBUG __t => NULL
# DEBUG this => D#1371
# DEBUG __head => D#2409
# DEBUG __t => D#2409
# DEBUG __t => NULL
# DEBUG this => D#1371
# DEBUG __h => D#2409
# DEBUG __t => D#2409
# DEBUG __t => NULL
# DEBUG this => NULL
# DEBUG __h => NULL
# DEBUG this => NULL
# DEBUG __head => NULL
# DEBUG D#1370 => &D#1371->D.676343
# DEBUG __t => &__p
# DEBUG __t => NULL
# DEBUG this => D#1370
# DEBUG __h => &__p
MEM[(struct &)__cur_85] ={v} {CLOBBER};
# DEBUG __t => &__p
# DEBUG __t => NULL
MEM[(struct _Head_base *)__cur_85]._M_head_impl = _31;
# DEBUG this => NULL
# DEBUG __h => NULL
# DEBUG this => NULL
# DEBUG __head => NULL
# DEBUG __tail#0 => NULL
# DEBUG this => NULL
# DEBUG __a1 => NULL
# DEBUG __a2 => NULL
# DEBUG this => NULL
# DEBUG __p => NULL
# DEBUG __d => NULL
# DEBUG this => NULL
# DEBUG __u => NULL
_32 = __first$_M_current_84->second;
__cur_85->second = _32;
# DEBUG this => NULL
# DEBUG D.1189893 => NULL
# DEBUG __p => NULL
# DEBUG __args#0 => NULL
# DEBUG this => &__first
_33 = __first$_M_current_84 + 16;
# DEBUG __first$_M_current => _33
# DEBUG this => NULL
__cur_34 = __cur_85 + 16;
# DEBUG __cur => __cur_34
# DEBUG __first$_M_current => _33
# DEBUG __cur => __cur_34
# DEBUG __x => &__first
# DEBUG __y => &__last
# DEBUG __x => &__first
# DEBUG __y => &__last
# DEBUG D#4486 => &__first
# DEBUG this => D#4486
# DEBUG D#4486 => &__last
# DEBUG this => D#4486
# DEBUG __x => NULL
# DEBUG __y => NULL
# DEBUG __x => NULL
# DEBUG __y => NULL
if (_33 != _39)
goto <bb 19>; [89.00%]
else
goto <bb 8>; [11.00%]
<bb 19> [local count: 850510900]:
goto <bb 7>; [100.00%]
<bb 8> [local count: 105119325]:
# DEBUG __result => NULL
# DEBUG __first$_M_current => NULL
# DEBUG __cur => NULL
# DEBUG D#4487 => {CLOBBER}
# DEBUG __first => D#4487
# DEBUG D#4488 => {CLOBBER}
# DEBUG __last => D#4488
# DEBUG __result => NULL
# DEBUG __last => NULL
# DEBUG __first => NULL
# DEBUG __cur => NULL
# DEBUG __first$_M_current => NULL
# DEBUG D#4489 => {CLOBBER}
# DEBUG __first => D#4489
# DEBUG D#4490 => {CLOBBER}
# DEBUG __last => D#4490
# DEBUG I => NULL
# DEBUG E => NULL
# DEBUG Dest => NULL
# DEBUG __first$_M_current => NULL
# DEBUG __cur => NULL
# DEBUG D#4494 => &this_10(D)->D.680930
# DEBUG this => D#4494
_13 = MEM[(void * *)this_10(D)];
# DEBUG D#627 => D#4494
# DEBUG this => D#627
# DEBUG D#628 => &D#4494->D.680870
# DEBUG D#81 => D#628
# DEBUG this => D#81
# DEBUG BEGIN_STMT
_28 = _13 + _38;
# DEBUG this => NULL
# DEBUG D#4495 => &this_10(D)->D.680930
# DEBUG D#627 => D#4495
# DEBUG this => D#627
# DEBUG S => _13
# DEBUG E => _28
# DEBUG E => _28
if (_13 == _28)
goto <bb 13>; [0.00%]
else
goto <bb 16>; [100.00%]
<bb 16> [local count: 105119325]:
<bb 9> [local count: 955630220]:
# E_81 = PHI <_28(16), E_19(18)>
# DEBUG E => E_81
E_19 = E_81 + 18446744073709551600;
# DEBUG E => E_19
# DEBUG this => E_19
# DEBUG D#2403 => &E_19->first
# DEBUG this => D#2403
# DEBUG D#2400 => &D#2403->_M_t
# DEBUG this => D#2400
# DEBUG D#1369 => &D#2400->_M_t
# DEBUG __t => D#1369
# DEBUG D#1368 => &D#1369->D.677963
# DEBUG __t => D#1368
# DEBUG __t => D#1368
# DEBUG D#1367 => &D#1368->D.676343
# DEBUG __b => D#1367
# DEBUG D#2402 => &MEM[(struct _Head_base &)D#2403]._M_head_impl
# DEBUG __b => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG this => NULL
# DEBUG __ptr => D#2402
_18 = MEM[(struct DwarfTypeUnit * &)E_19];
if (_18 != 0B)
goto <bb 10>; [53.47%]
else
goto <bb 11>; [46.53%]
<bb 10> [local count: 510975479]:
# DEBUG this => D#2403
# DEBUG D#2399 => &D#2403->_M_t
# DEBUG this => D#2399
# DEBUG D#2401 => &MEM[(struct __uniq_ptr_impl *)D#2403]._M_t
# DEBUG __t => D#2401
# DEBUG __t => D#2401
# DEBUG __t => D#2401
# DEBUG __b => D#2401
# DEBUG __b => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG __t => NULL
# DEBUG this => NULL
# DEBUG this => NULL
# DEBUG D#923 => D#2401
# DEBUG __ptr => _18
# DEBUG this => D#923
# DEBUG __ptr => _18
# DEBUG this => _18
# DEBUG this => _18
_18->D.695136.D.695018._vptr.DIEUnit = &MEM[(void *)&_ZTVN4llvm13DwarfTypeUnitE + 16B];
_69 = &_18->D.695136;
llvm::DwarfUnit::~DwarfUnit (_69);
MEM[(struct &)_18] ={v} {CLOBBER};
# DEBUG this => NULL
operator delete (_18);
<bb 11> [local count: 955630220]:
# DEBUG this => NULL
MEM[(struct &)E_19] ={v} {CLOBBER};
# DEBUG E => E_19
if (_13 == E_19)
goto <bb 12>; [11.00%]
else
goto <bb 18>; [89.00%]
<bb 18> [local count: 850510896]:
goto <bb 9>; [100.00%]
<bb 12> [local count: 105119324]:
pretmp_121 = MEM[(const struct SmallVectorTemplateCommon *)this_10(D)].D.680870.BeginX;
<bb 13> [local count: 118111600]:
# prephitmp_122 = PHI <_35(6), pretmp_121(12), _13(8)>
# DEBUG S => NULL
# DEBUG E => NULL
# DEBUG D#4496 => &this_10(D)->D.680930
# DEBUG this => D#4496
# DEBUG this => D#4496
_21 = &MEM[(void *)this_10(D) + 16B];
# DEBUG this => NULL
# DEBUG this => NULL
if (_21 != prephitmp_122)
goto <bb 14>; [53.47%]
else
goto <bb 15>; [46.53%]
<bb 14> [local count: 63154273]:
# DEBUG D#4497 => &this_10(D)->D.680930
# DEBUG D#627 => D#4497
# DEBUG this => D#627
free (prephitmp_122);
<bb 15> [local count: 118111600]:
this_10(D)->D.680930.D.680870.BeginX = Result_68;
_5 = (unsigned int) _41;
this_10(D)->D.680930.D.680870.Capacity = _5;
# DEBUG D#6669 => {CLOBBER}
# DEBUG NewCapacity => D#6669
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment