1,788 changes: 896 additions & 892 deletions 133.ll

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion 134.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4605,7 +4605,7 @@ cond.end5696: ; preds = %cond.end5666, %cond
br i1 %cmp5632.not, label %while.end5728, label %while.body5634, !llvm.loop !46

while.end5728: ; preds = %cond.end5696, %if.then5526, %while.cond5628.preheader
%.lcssa6625 = phi ptr [ %.pre6912, %while.cond5628.preheader ], [ %726, %if.then5526 ], [ %799, %cond.end5696 ]
%.lcssa6625 = phi ptr [ %783, %while.cond5628.preheader ], [ %726, %if.then5526 ], [ %799, %cond.end5696 ]
store ptr %.lcssa6625, ptr @zz_hold, align 8, !tbaa !8
%ou15729 = getelementptr inbounds %struct.word_type, ptr %.lcssa6625, i64 0, i32 1
%801 = load i8, ptr %ou15729, align 8, !tbaa !5
Expand Down
259 changes: 132 additions & 127 deletions 135.ll

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions 136.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2288,11 +2288,11 @@ cond.false194: ; preds = %if.else138, %if.the
store ptr %21, ptr %21, align 8, !tbaa !5
store ptr %21, ptr @xx_link, align 8, !tbaa !10
store ptr %21, ptr @zz_res, align 8, !tbaa !10
store ptr %hd, ptr @zz_hold, align 8, !tbaa !10
%22 = load ptr, ptr %hd, align 8, !tbaa !5
store ptr %stop_link, ptr @zz_hold, align 8, !tbaa !10
%22 = load ptr, ptr %stop_link, align 8, !tbaa !5
store ptr %22, ptr @zz_tmp, align 8, !tbaa !10
%23 = load ptr, ptr %21, align 8, !tbaa !5
store ptr %23, ptr %hd, align 8, !tbaa !5
store ptr %23, ptr %stop_link, align 8, !tbaa !5
%24 = load ptr, ptr @zz_hold, align 8, !tbaa !10
%25 = load ptr, ptr @zz_res, align 8, !tbaa !10
%26 = load ptr, ptr %25, align 8, !tbaa !5
Expand Down Expand Up @@ -2326,7 +2326,7 @@ cond.false198: ; preds = %cond.false194

if.end224: ; preds = %cond.false194, %cond.false198, %if.end46
%y.1 = phi ptr [ %y.0, %if.end46 ], [ %14, %cond.false198 ], [ %14, %cond.false194 ]
%stop_link.addr.0 = phi ptr [ %9, %if.end46 ], [ %hd, %cond.false198 ], [ %hd, %cond.false194 ]
%stop_link.addr.0 = phi ptr [ %9, %if.end46 ], [ %stop_link, %cond.false198 ], [ %stop_link, %cond.false194 ]
%oopt_components = getelementptr inbounds %struct.head_type, ptr %hd, i64 0, i32 8
%34 = load ptr, ptr %oopt_components, align 8, !tbaa !5
%cmp225.not = icmp eq ptr %34, null
Expand Down Expand Up @@ -6357,7 +6357,7 @@ cond.end253: ; preds = %cond.end223, %cond.
br i1 %cmp189.not, label %while.end285, label %while.body191, !llvm.loop !54

while.end285: ; preds = %cond.end253, %while.end, %while.cond185.preheader
%.lcssa765 = phi ptr [ %.pre796, %while.cond185.preheader ], [ %y.0, %while.end ], [ %45, %cond.end253 ]
%.lcssa765 = phi ptr [ %29, %while.cond185.preheader ], [ %y.0, %while.end ], [ %45, %cond.end253 ]
store ptr %.lcssa765, ptr @zz_hold, align 8, !tbaa !10
%ou1286 = getelementptr inbounds %struct.word_type, ptr %.lcssa765, i64 0, i32 1
%47 = load i8, ptr %ou1286, align 8, !tbaa !5
Expand Down
818 changes: 404 additions & 414 deletions 137.ll

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions 138.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2371,7 +2371,6 @@ do.body29: ; preds = %if.then28, %for.con
%arrayidx58 = getelementptr inbounds [300 x i32], ptr @npars_only, i64 0, i64 %indvars.iv.next
%arrayidx67 = getelementptr inbounds [300 x i32], ptr @vis_only, i64 0, i64 %indvars.iv.next
%arrayidx78 = getelementptr inbounds [300 x i32], ptr @body_ok, i64 0, i64 %indvars.iv.next
%ohas_body.us = getelementptr inbounds i8, ptr %22, i64 41
br i1 %.b.fr, label %for.cond41.preheader.us, label %for.cond41.preheader

for.cond41.preheader.us: ; preds = %do.body29, %for.inc447.us
Expand Down Expand Up @@ -2421,6 +2420,7 @@ land.lhs.true76.us: ; preds = %lor.lhs.false69.us,
br i1 %or.cond538.us, label %lor.lhs.false86.us, label %land.lhs.true96.us

lor.lhs.false86.us: ; preds = %land.lhs.true76.us
%ohas_body.us = getelementptr inbounds i8, ptr %24, i64 41
%bf.load89.us = load i24, ptr %ohas_body.us, align 1
%29 = and i24 %bf.load89.us, 256
%tobool93.us = icmp eq i24 %29, 0
Expand Down Expand Up @@ -2490,7 +2490,8 @@ land.lhs.true76: ; preds = %lor.lhs.false69, %l
br i1 %or.cond538, label %lor.lhs.false86, label %cleanup

lor.lhs.false86: ; preds = %land.lhs.true76
%bf.load89 = load i24, ptr %ohas_body.us, align 1
%ohas_body = getelementptr inbounds i8, ptr %31, i64 41
%bf.load89 = load i24, ptr %ohas_body, align 1
%36 = and i24 %bf.load89, 256
%tobool93 = icmp eq i24 %36, 0
%or.cond474 = select i1 %tobool93, i1 true, i1 %tobool75
Expand Down
2 changes: 1 addition & 1 deletion 139.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1475,7 +1475,7 @@ for.body6.i: ; preds = %for.body6.lr.ph.i,
br i1 %tobool.not.i55, label %if.end.i, label %for.inc.i

if.end.i: ; preds = %for.body6.i
store i8 %10, ptr %newword.i53, align 16, !tbaa !13
store i8 %10, ptr %r.078.i, align 1, !tbaa !13
%call16.i = call i32 @good(ptr noundef nonnull %newword.i53, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0) #13
%tobool17.not.i = icmp eq i32 %call16.i, 0
br i1 %tobool17.not.i, label %for.inc.i, label %if.then18.i
Expand Down
352 changes: 177 additions & 175 deletions 14.ll

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion 140.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1685,7 +1685,7 @@ if.then1032: ; preds = %skiptoword.exit
br label %if.end1034

if.end1034: ; preds = %if.then1032, %skiptoword.exit
%262 = phi ptr [ %.pre1352, %if.then1032 ], [ %258, %skiptoword.exit ]
%262 = phi ptr [ %.pre1352, %if.then1032 ], [ %261, %skiptoword.exit ]
%263 = load i8, ptr %262, align 1, !tbaa !5
%cmp1036 = icmp eq i8 %263, 0
br i1 %cmp1036, label %for.end1162, label %if.else.i1275
Expand Down
2 changes: 1 addition & 1 deletion 141.ll
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ for.cond.outer.split.split.us: ; preds = %for.cond.outer.spli
br i1 %cmp9.not.us244, label %if.then20.us, label %if.then11

if.then20.us: ; preds = %for.cond.outer.split.split.us, %if.else.us
store i8 0, ptr %str, align 1, !tbaa !11
store i8 0, ptr %s.0.ph, align 1, !tbaa !11
%5 = load ptr, ptr @xgets.current_F, align 8, !tbaa !9
%cmp21.us = icmp eq ptr %5, @xgets.F
br i1 %cmp21.us, label %if.then23, label %if.else.us
Expand Down
2 changes: 1 addition & 1 deletion 142.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1546,7 +1546,7 @@ invoke.cont8: ; preds = %if.then4
br i1 %cmp.i, label %invoke.cont8.invoke.cont10_crit_edge, label %if.end.i

invoke.cont8.invoke.cont10_crit_edge: ; preds = %invoke.cont8
%.pre95 = load ptr, ptr %postString, align 8, !tbaa !27
%.pre95 = load ptr, ptr %ref.tmp, align 8, !tbaa !27
br label %invoke.cont10

if.end.i: ; preds = %invoke.cont8
Expand Down
4 changes: 2 additions & 2 deletions 143.ll
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,7 @@ for.end: ; preds = %for.cond, %for.end.
br i1 %cmp.i18, label %for.end.invoke.cont_crit_edge, label %if.end.i

for.end.invoke.cont_crit_edge: ; preds = %for.end
%.pre = load ptr, ptr %dirPrefix, align 8, !tbaa !5
%.pre = load ptr, ptr %ref.tmp, align 8, !tbaa !5
br label %invoke.cont

if.end.i: ; preds = %for.end
Expand Down Expand Up @@ -605,7 +605,7 @@ _ZN11CStringBaseIwED2Ev.exit: ; preds = %invoke.cont, %delet
br i1 %cmp.i22, label %_ZN11CStringBaseIwED2Ev.exit.invoke.cont7_crit_edge, label %if.end.i28

_ZN11CStringBaseIwED2Ev.exit.invoke.cont7_crit_edge: ; preds = %_ZN11CStringBaseIwED2Ev.exit
%.pre59 = load ptr, ptr %name, align 8, !tbaa !5
%.pre59 = load ptr, ptr %ref.tmp4, align 8, !tbaa !5
br label %invoke.cont7

if.end.i28: ; preds = %_ZN11CStringBaseIwED2Ev.exit
Expand Down
2 changes: 1 addition & 1 deletion 144.ll
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ invoke.cont17: ; preds = %_ZN11CStringBaseIcE
br i1 %cmp.i, label %invoke.cont17.invoke.cont19_crit_edge, label %if.end.i

invoke.cont17.invoke.cont19_crit_edge: ; preds = %invoke.cont17
%.pre120 = load ptr, ptr %message, align 8, !tbaa !24
%.pre120 = load ptr, ptr %ref.tmp, align 8, !tbaa !24
br label %invoke.cont19

if.end.i: ; preds = %invoke.cont17
Expand Down
8 changes: 4 additions & 4 deletions 145.ll
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,7 @@ if.end: ; preds = %entry
br i1 %cmp.i, label %if.end.invoke.cont_crit_edge, label %if.end.i

if.end.invoke.cont_crit_edge: ; preds = %if.end
%.pre = load ptr, ptr %resultName, align 8, !tbaa !11
%.pre = load ptr, ptr %ref.tmp, align 8, !tbaa !11
br label %invoke.cont

if.end.i: ; preds = %if.end
Expand Down Expand Up @@ -866,7 +866,7 @@ if.end: ; preds = %entry
br i1 %cmp.i, label %if.end.invoke.cont_crit_edge, label %if.end.i

if.end.invoke.cont_crit_edge: ; preds = %if.end
%.pre = load ptr, ptr %resultName, align 8, !tbaa !11
%.pre = load ptr, ptr %ref.tmp, align 8, !tbaa !11
br label %invoke.cont

if.end.i: ; preds = %if.end
Expand Down Expand Up @@ -1025,7 +1025,7 @@ invoke.cont: ; preds = %_ZN11CStringBaseIcE
br i1 %cmp.i, label %invoke.cont.invoke.cont5_crit_edge, label %if.end.i

invoke.cont.invoke.cont5_crit_edge: ; preds = %invoke.cont
%.pre = load ptr, ptr %resultPath, align 8, !tbaa !11
%.pre = load ptr, ptr %ref.tmp, align 8, !tbaa !11
br label %invoke.cont5

if.end.i: ; preds = %invoke.cont
Expand Down Expand Up @@ -3649,7 +3649,7 @@ invoke.cont30: ; preds = %if.then25
br i1 %cmp.i, label %invoke.cont30.invoke.cont32_crit_edge, label %if.end.i

invoke.cont30.invoke.cont32_crit_edge: ; preds = %invoke.cont30
%.pre124 = load ptr, ptr %resultPath, align 8, !tbaa !11
%.pre124 = load ptr, ptr %ref.tmp28, align 8, !tbaa !11
br label %invoke.cont32

if.end.i: ; preds = %invoke.cont30
Expand Down
4 changes: 2 additions & 2 deletions 146.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4696,7 +4696,7 @@ if.then9: ; preds = %if.else6
br i1 %cmp.i134, label %if.then9.invoke.cont_crit_edge, label %if.end.i140

if.then9.invoke.cont_crit_edge: ; preds = %if.then9
%.pre = load ptr, ptr %base, align 8, !tbaa !61
%.pre = load ptr, ptr %ref.tmp, align 8, !tbaa !61
br label %invoke.cont

if.end.i140: ; preds = %if.then9
Expand Down Expand Up @@ -4856,7 +4856,7 @@ if.else18: ; preds = %if.else18.loopexit,
br i1 %cmp.i191, label %if.else18.invoke.cont21_crit_edge, label %if.end.i197

if.else18.invoke.cont21_crit_edge: ; preds = %if.else18
%.pre305 = load ptr, ptr %dir, align 8, !tbaa !61
%.pre305 = load ptr, ptr %ref.tmp19, align 8, !tbaa !61
br label %invoke.cont21

if.end.i197: ; preds = %if.else18
Expand Down
4 changes: 2 additions & 2 deletions 147.ll
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ if.else: ; preds = %_ZNK11CStringBaseIw
br i1 %cmp.i23, label %if.else.invoke.cont_crit_edge, label %if.end.i29

if.else.invoke.cont_crit_edge: ; preds = %if.else
%.pre = load ptr, ptr %pureName, align 8, !tbaa !11
%.pre = load ptr, ptr %ref.tmp, align 8, !tbaa !11
br label %invoke.cont

if.end.i29: ; preds = %if.else
Expand Down Expand Up @@ -440,7 +440,7 @@ _ZN11CStringBaseIwEaSEw.exit: ; preds = %_ZN11CStringBaseIwE
br i1 %cmp.i62, label %_ZN11CStringBaseIwEaSEw.exit.invoke.cont6_crit_edge, label %if.end.i68

_ZN11CStringBaseIwEaSEw.exit.invoke.cont6_crit_edge: ; preds = %_ZN11CStringBaseIwEaSEw.exit
%.pre101 = load ptr, ptr %extension, align 8, !tbaa !11
%.pre101 = load ptr, ptr %ref.tmp4, align 8, !tbaa !11
br label %invoke.cont6

if.end.i68: ; preds = %_ZN11CStringBaseIwEaSEw.exit
Expand Down
24 changes: 12 additions & 12 deletions 15.ll
Original file line number Diff line number Diff line change
Expand Up @@ -12855,7 +12855,7 @@ _ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit: ;
br label %if.end

if.end: ; preds = %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit, %if.else
%12 = phi ptr [ %0, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%12 = phi ptr [ %3, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%13 = phi ptr [ %2, %if.else ], [ %.pre190, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%14 = phi ptr [ %0, %if.else ], [ %7, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%__is_black_31 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %14, i64 0, i32 3
Expand Down Expand Up @@ -12899,14 +12899,13 @@ land.lhs.true41: ; preds = %if.else36
br i1 %tobool43.not, label %if.end70, label %if.else54

if.else54: ; preds = %land.lhs.true41, %if.else36
%__parent_.i.le = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 2
%__parent_.i117.le202 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%__parent_.i117.le201 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%20 = load ptr, ptr %0, align 8, !tbaa !44
%cmp.i143 = icmp eq ptr %20, %__x.addr.0183
br i1 %cmp.i143, label %if.then56, label %if.end59

if.then56: ; preds = %if.else54
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 1
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 1
%21 = load ptr, ptr %__right_.i146, align 8, !tbaa !64
store ptr %21, ptr %0, align 8, !tbaa !44
%cmp5.not.i147 = icmp eq ptr %21, null
Expand All @@ -12915,26 +12914,27 @@ if.then56: ; preds = %if.else54
if.then.i149: ; preds = %if.then56
%__parent_.i.i148 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %21, i64 0, i32 2
store ptr %0, ptr %__parent_.i.i148, align 8, !tbaa !42
%.pre = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !42
%.pre = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !42
br label %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155

_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155: ; preds = %if.then56, %if.then.i149
%22 = phi ptr [ %2, %if.then56 ], [ %.pre, %if.then.i149 ]
store ptr %22, ptr %__parent_.i.le, align 8, !tbaa !42
%23 = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !42
%__parent_7.i151 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 2
store ptr %22, ptr %__parent_7.i151, align 8, !tbaa !42
%23 = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !42
%24 = load ptr, ptr %23, align 8, !tbaa !44
%cmp.i.i152 = icmp eq ptr %24, %0
%__right_12.i153 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %23, i64 0, i32 1
%__right_12.sink.i154 = select i1 %cmp.i.i152, ptr %23, ptr %__right_12.i153
store ptr %__x.addr.0183, ptr %__right_12.sink.i154, align 8, !tbaa !31
store ptr %20, ptr %__right_12.sink.i154, align 8, !tbaa !31
store ptr %0, ptr %__right_.i146, align 8, !tbaa !64
store ptr %__x.addr.0183, ptr %__parent_.i117.le202, align 8, !tbaa !42
%.pre188 = load ptr, ptr %__parent_.i.le, align 8, !tbaa !42
store ptr %20, ptr %__parent_.i117.le201, align 8, !tbaa !42
%.pre188 = load ptr, ptr %__parent_7.i151, align 8, !tbaa !42
br label %if.end59

if.end59: ; preds = %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155, %if.else54
%25 = phi ptr [ %.pre188, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %2, %if.else54 ]
%26 = phi ptr [ %__x.addr.0183, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%26 = phi ptr [ %20, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%__is_black_62 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %26, i64 0, i32 3
store i8 1, ptr %__is_black_62, align 8, !tbaa !67
%__is_black_65 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %25, i64 0, i32 3
Expand Down Expand Up @@ -36365,7 +36365,7 @@ _ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_I
br label %_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE7__clearB7v170000Ev.exit.i.i16572

_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE7__clearB7v170000Ev.exit.i.i16572: ; preds = %_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE7__clearB7v170000Ev.exit.loopexit.i.i16571, %if.then.i.i16558
%2202 = phi ptr [ %.pre10.i.i16570, %_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE7__clearB7v170000Ev.exit.loopexit.i.i16571 ], [ %call.i.i.i.i.i11.i94.i, %if.then.i.i16558 ]
%2202 = phi ptr [ %.pre10.i.i16570, %_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE7__clearB7v170000Ev.exit.loopexit.i.i16571 ], [ %.pr, %if.then.i.i16558 ]
store ptr %.pr, ptr %__end_.i92.i, align 8, !tbaa !105
call void @_ZdlPv(ptr noundef %2202) #20
br label %ehcleanup.i4463
Expand Down
2 changes: 1 addition & 1 deletion 150.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2485,7 +2485,7 @@ invoke.cont13: ; preds = %if.then9
br i1 %cmp.i25, label %invoke.cont13.invoke.cont15_crit_edge, label %if.end.i

invoke.cont13.invoke.cont15_crit_edge: ; preds = %invoke.cont13
%.pre35 = load ptr, ptr %agg.result, align 8, !tbaa !62
%.pre35 = load ptr, ptr %ref.tmp, align 8, !tbaa !62
br label %invoke.cont15

if.end.i: ; preds = %invoke.cont13
Expand Down
13 changes: 7 additions & 6 deletions 151.ll
Original file line number Diff line number Diff line change
Expand Up @@ -779,13 +779,14 @@ for.body: ; preds = %entry, %for.body
br i1 %cmp.not, label %for.end, label %for.body, !llvm.loop !64

for.end: ; preds = %for.body, %entry
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %add.ptr, ptr noundef nonnull align 1 dereferenceable(6) %tmp, i64 6, i1 false), !tbaa.struct !63
%s.0.lcssa = phi ptr [ %3, %entry ], [ %add.ptr, %for.body ]
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %s.0.lcssa, ptr noundef nonnull align 1 dereferenceable(6) %tmp, i64 6, i1 false), !tbaa.struct !63
call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %tmp)
%4 = load ptr, ptr %p, align 8, !tbaa !41
%SummFreq = getelementptr inbounds %struct.CPpmd7_Context_, ptr %4, i64 0, i32 1
%5 = load i16, ptr %SummFreq, align 2, !tbaa !45
%conv = zext i16 %5 to i32
%Freq = getelementptr inbounds %struct.CPpmd_State, ptr %add.ptr, i64 0, i32 1
%Freq = getelementptr inbounds %struct.CPpmd_State, ptr %s.0.lcssa, i64 0, i32 1
%6 = load i8, ptr %Freq, align 1, !tbaa !51
%conv3 = zext i8 %6 to i32
%sub = sub nsw i32 %conv, %conv3
Expand All @@ -805,7 +806,7 @@ for.end: ; preds = %for.body, %entry
br label %do.body

do.body: ; preds = %do.cond54, %for.end
%s.1 = phi ptr [ %add.ptr, %for.end ], [ %incdec.ptr19, %do.cond54 ]
%s.1 = phi ptr [ %s.0.lcssa, %for.end ], [ %incdec.ptr19, %do.cond54 ]
%escFreq.0 = phi i32 [ %sub, %for.end ], [ %sub22, %do.cond54 ]
%sumFreq.0 = phi i32 [ %shr, %for.end ], [ %add31, %do.cond54 ]
%i.0 = phi i32 [ %sub18, %for.end ], [ %dec, %do.cond54 ]
Expand Down Expand Up @@ -845,8 +846,7 @@ land.rhs: ; preds = %do.body41
br i1 %cmp52, label %do.body41, label %do.end, !llvm.loop !65

do.end: ; preds = %do.body41, %land.rhs
%arrayidx43.lcssa = phi ptr [ %add.ptr, %do.body41 ], [ %arrayidx43, %land.rhs ]
store i8 %tmp40.sroa.0.0.copyload, ptr %arrayidx43.lcssa, align 1, !tbaa.struct !63
store i8 %tmp40.sroa.0.0.copyload, ptr %arrayidx43, align 1, !tbaa.struct !63
%tmp40.sroa.4.0..sroa_idx155 = getelementptr %struct.CPpmd_State, ptr %s1.0, i64 -1, i32 1
store i8 %conv27, ptr %tmp40.sroa.4.0..sroa_idx155, align 1, !tbaa.struct !66
%tmp40.sroa.5.0..sroa_idx157 = getelementptr %struct.CPpmd_State, ptr %s1.0, i64 -1, i32 2
Expand Down Expand Up @@ -890,7 +890,8 @@ do.end71: ; preds = %do.body64

if.then85: ; preds = %do.end71
%tmp86.sroa.0.0.copyload = load i8, ptr %add.ptr, align 1, !tbaa.struct !63
%tmp86.sroa.4.0.copyload = load i8, ptr %Freq, align 1, !tbaa.struct !66
%tmp86.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %add.ptr, i64 1
%tmp86.sroa.4.0.copyload = load i8, ptr %tmp86.sroa.4.0..sroa_idx, align 1, !tbaa.struct !66
%tmp86.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %add.ptr, i64 2
%18 = load i32, ptr %tmp86.sroa.7.0..sroa_idx, align 1
br label %do.body87
Expand Down
21 changes: 11 additions & 10 deletions 152.ll
Original file line number Diff line number Diff line change
Expand Up @@ -733,13 +733,14 @@ for.body: ; preds = %entry, %for.body
br i1 %cmp.not, label %for.end, label %for.body, !llvm.loop !68

for.end: ; preds = %for.body, %entry
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %add.ptr, ptr noundef nonnull align 1 dereferenceable(6) %tmp, i64 6, i1 false), !tbaa.struct !67
%s.0.lcssa = phi ptr [ %3, %entry ], [ %add.ptr, %for.body ]
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %s.0.lcssa, ptr noundef nonnull align 1 dereferenceable(6) %tmp, i64 6, i1 false), !tbaa.struct !67
call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %tmp)
%4 = load ptr, ptr %p, align 8, !tbaa !42
%SummFreq = getelementptr inbounds %struct.CPpmd8_Context_, ptr %4, i64 0, i32 2
%5 = load i16, ptr %SummFreq, align 2, !tbaa !47
%conv = zext i16 %5 to i32
%Freq = getelementptr inbounds %struct.CPpmd_State, ptr %add.ptr, i64 0, i32 1
%Freq = getelementptr inbounds %struct.CPpmd_State, ptr %s.0.lcssa, i64 0, i32 1
%6 = load i8, ptr %Freq, align 1, !tbaa !53
%conv3 = zext i8 %6 to i32
%sub = sub nsw i32 %conv, %conv3
Expand All @@ -758,7 +759,7 @@ for.end: ; preds = %for.body, %entry
br label %do.body

do.body: ; preds = %do.cond53, %for.end
%s.1 = phi ptr [ %add.ptr, %for.end ], [ %incdec.ptr18, %do.cond53 ]
%s.1 = phi ptr [ %s.0.lcssa, %for.end ], [ %incdec.ptr18, %do.cond53 ]
%escFreq.0 = phi i32 [ %sub, %for.end ], [ %sub21, %do.cond53 ]
%sumFreq.0 = phi i32 [ %shr, %for.end ], [ %add30, %do.cond53 ]
%i.0 = phi i32 [ %conv17, %for.end ], [ %dec, %do.cond53 ]
Expand Down Expand Up @@ -798,8 +799,7 @@ land.rhs: ; preds = %do.body40
br i1 %cmp51, label %do.body40, label %do.end, !llvm.loop !69

do.end: ; preds = %do.body40, %land.rhs
%arrayidx42.lcssa = phi ptr [ %add.ptr, %do.body40 ], [ %arrayidx42, %land.rhs ]
store i8 %tmp39.sroa.0.0.copyload, ptr %arrayidx42.lcssa, align 1, !tbaa.struct !67
store i8 %tmp39.sroa.0.0.copyload, ptr %arrayidx42, align 1, !tbaa.struct !67
%tmp39.sroa.4.0..sroa_idx206 = getelementptr %struct.CPpmd_State, ptr %s1.0, i64 -1, i32 1
store i8 %conv26, ptr %tmp39.sroa.4.0..sroa_idx206, align 1, !tbaa.struct !70
%tmp39.sroa.5.0..sroa_idx208 = getelementptr %struct.CPpmd_State, ptr %s1.0, i64 -1, i32 2
Expand Down Expand Up @@ -852,7 +852,8 @@ do.end70: ; preds = %do.body63

cleanup.thread: ; preds = %do.end70
%tmp85.sroa.0.0.copyload = load i8, ptr %add.ptr, align 1, !tbaa.struct !67
%tmp85.sroa.5.0.copyload = load i8, ptr %Freq, align 1, !tbaa.struct !70
%tmp85.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %add.ptr, i64 1
%tmp85.sroa.5.0.copyload = load i8, ptr %tmp85.sroa.5.0..sroa_idx, align 1, !tbaa.struct !70
%tmp85.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %add.ptr, i64 2
%18 = load i32, ptr %tmp85.sroa.9.0..sroa_idx, align 1
%conv87 = zext i8 %tmp85.sroa.5.0.copyload to i32
Expand Down Expand Up @@ -2786,7 +2787,7 @@ if.then.i: ; preds = %if.then
br label %SpecialFreeUnit.exit

if.else.i: ; preds = %if.then
%add.ptr.i = getelementptr inbounds i8, ptr %add.ptr6, i64 12
%add.ptr.i = getelementptr inbounds i8, ptr %11, i64 12
store ptr %add.ptr.i, ptr %UnitsStart.i, align 8, !tbaa !34
%.pre.pre = load ptr, ptr %Base, align 8, !tbaa !5
br label %SpecialFreeUnit.exit
Expand Down Expand Up @@ -3793,7 +3794,7 @@ if.then.i: ; preds = %if.end29
br label %cleanup

if.else.i: ; preds = %if.end29
%add.ptr.i = getelementptr inbounds i8, ptr %ctx, i64 12
%add.ptr.i = getelementptr inbounds i8, ptr %9, i64 12
store ptr %add.ptr.i, ptr %UnitsStart, align 8, !tbaa !34
br label %cleanup

Expand Down Expand Up @@ -3915,7 +3916,7 @@ if.else.i236: ; preds = %do.end.i
%34 = load i8, ptr %arrayidx20.i, align 1, !tbaa !13
%conv21.i = zext i8 %34 to i64
%mul.i = mul nuw nsw i64 %conv21.i, 12
%add.ptr23.i = getelementptr inbounds i8, ptr %add.ptr33, i64 %mul.i
%add.ptr23.i = getelementptr inbounds i8, ptr %15, i64 %mul.i
store ptr %add.ptr23.i, ptr %UnitsStart.i228, align 8, !tbaa !34
br label %for.body.lr.ph

Expand Down Expand Up @@ -4055,7 +4056,7 @@ if.then.i275: ; preds = %if.then110
br label %cleanup

if.else.i277: ; preds = %if.then110
%add.ptr.i276 = getelementptr inbounds i8, ptr %ctx, i64 12
%add.ptr.i276 = getelementptr inbounds i8, ptr %46, i64 12
store ptr %add.ptr.i276, ptr %UnitsStart.i228, align 8, !tbaa !34
br label %cleanup

Expand Down
16 changes: 6 additions & 10 deletions 153.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8757,18 +8757,14 @@ tabtospace.exit.i.us: ; preds = %while.body.i.i.us,
while.body.i.us: ; preds = %tabtospace.exit.i.us, %if.end15.i.us
%4 = phi i8 [ %.pr.i.us, %if.end15.i.us ], [ %3, %tabtospace.exit.i.us ]
%val.029.i.us = phi ptr [ %val.1.ph.i.us, %if.end15.i.us ], [ %add.ptr.us, %tabtospace.exit.i.us ]
%str.addr.028.i.us = phi ptr [ %str.addr.1.ph.i.us, %if.end15.i.us ], [ %add.ptr.us, %tabtospace.exit.i.us ]
%str.addr.028.i.us = phi ptr [ %incdec.ptr8.i.us, %if.end15.i.us ], [ %add.ptr.us, %tabtospace.exit.i.us ]
%cmp.i.us = icmp eq ptr %val.029.i.us, %str.addr.028.i.us
%cmp1.i.us = icmp eq i8 %4, 32
%or.cond.i.us = select i1 %cmp.i.us, i1 %cmp1.i.us, i1 false
br i1 %or.cond.i.us, label %if.then.i.us, label %if.else.i.us

if.else.i.us: ; preds = %while.body.i.us
br i1 %cmp1.i.us, label %if.end15.thread.i.us, label %if.then7.i.us

if.then7.i.us: ; preds = %if.else.i.us
%incdec.ptr8.i.us = getelementptr inbounds i8, ptr %str.addr.028.i.us, i64 1
br label %if.end15.i.us
br i1 %cmp1.i.us, label %if.end15.thread.i.us, label %if.end15.i.us

if.end15.thread.i.us: ; preds = %if.else.i.us
store i8 0, ptr %str.addr.028.i.us, align 1, !tbaa !17
Expand All @@ -8778,10 +8774,10 @@ if.then.i.us: ; preds = %while.body.i.us
%incdec.ptr.i.us = getelementptr inbounds i8, ptr %val.029.i.us, i64 1
br label %if.end15.i.us

if.end15.i.us: ; preds = %if.then.i.us, %if.then7.i.us
%str.addr.1.ph.i.us = phi ptr [ %incdec.ptr8.i.us, %if.then7.i.us ], [ %incdec.ptr.i.us, %if.then.i.us ]
%val.1.ph.i.us = phi ptr [ %val.029.i.us, %if.then7.i.us ], [ %incdec.ptr.i.us, %if.then.i.us ]
%.pr.i.us = load i8, ptr %str.addr.1.ph.i.us, align 1, !tbaa !17
if.end15.i.us: ; preds = %if.then.i.us, %if.else.i.us
%val.1.ph.i.us = phi ptr [ %incdec.ptr.i.us, %if.then.i.us ], [ %val.029.i.us, %if.else.i.us ]
%incdec.ptr8.i.us = getelementptr inbounds i8, ptr %str.addr.028.i.us, i64 1
%.pr.i.us = load i8, ptr %incdec.ptr8.i.us, align 1, !tbaa !17
%tobool.not.i.us = icmp eq i8 %.pr.i.us, 0
br i1 %tobool.not.i.us, label %extractfirstword.exit.us, label %while.body.i.us, !llvm.loop !213

Expand Down
4 changes: 2 additions & 2 deletions 154.ll
Original file line number Diff line number Diff line change
Expand Up @@ -16369,7 +16369,7 @@ if.then.i.us.us: ; preds = %if.then163.us.us
br label %addlocalhom2_e.exit.us.us

addlocalhom2_e.exit.us.us: ; preds = %if.then.i.us.us, %if.then163.us.us
%call.sink.i.us.us = phi ptr [ %call.i.us.us, %if.then.i.us.us ], [ %arrayidx167.us.us, %if.then163.us.us ]
%call.sink.i.us.us = phi ptr [ %call.i.us.us, %if.then.i.us.us ], [ %66, %if.then163.us.us ]
store ptr %call.sink.i.us.us, ptr %last.us.us, align 8
%73 = load i32, ptr %arrayidx167.us.us, align 8, !tbaa !448
%inc.i.us.us = add nsw i32 %73, 1
Expand Down Expand Up @@ -16411,7 +16411,7 @@ if.then.i414.us.us: ; preds = %addlocalhom2_e.exit
br label %addlocalhom2_e.exit424.us.us

addlocalhom2_e.exit424.us.us: ; preds = %if.then.i414.us.us, %addlocalhom2_e.exit.us.us
%call.sink.i415.us.us = phi ptr [ %call.i412.us.us, %if.then.i414.us.us ], [ %arrayidx207.us.us, %addlocalhom2_e.exit.us.us ]
%call.sink.i415.us.us = phi ptr [ %call.i412.us.us, %if.then.i414.us.us ], [ %75, %addlocalhom2_e.exit.us.us ]
store ptr %call.sink.i415.us.us, ptr %last208.us.us, align 8
%81 = load i32, ptr %arrayidx207.us.us, align 8, !tbaa !448
%inc.i416.us.us = add nsw i32 %81, 1
Expand Down
2,283 changes: 1,140 additions & 1,143 deletions 155.ll

Large diffs are not rendered by default.

9 changes: 3 additions & 6 deletions 156.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2480,8 +2480,7 @@ land.rhs: ; preds = %do.body
br i1 %call22, label %do.body, label %do.end, !llvm.loop !83

do.end: ; preds = %do.body, %land.rhs
%__k.0.lcssa = phi ptr [ %__first, %do.body ], [ %__k.0, %land.rhs ]
store double %65, ptr %__k.0.lcssa, align 8, !tbaa !28
store double %65, ptr %__k.0, align 8, !tbaa !28
%inc = add i32 %__count.082, 1
%cmp23.not = icmp eq i32 %inc, 8
br i1 %cmp23.not, label %cleanup.thread, label %if.end29
Expand Down Expand Up @@ -3834,8 +3833,7 @@ land.rhs: ; preds = %do.body
br i1 %cmp.i66, label %do.body, label %do.end, !llvm.loop !108

do.end: ; preds = %do.body, %land.rhs
%__k.0.lcssa = phi ptr [ %__first, %do.body ], [ %__k.0, %land.rhs ]
store double %19, ptr %__k.0.lcssa, align 8, !tbaa !28
store double %19, ptr %__k.0, align 8, !tbaa !28
%inc = add i32 %__count.082, 1
%cmp23.not = icmp eq i32 %inc, 8
br i1 %cmp23.not, label %cleanup.thread, label %if.end29
Expand Down Expand Up @@ -5180,8 +5178,7 @@ land.rhs: ; preds = %do.body
br i1 %cmp.i66, label %do.body, label %do.end, !llvm.loop !133

do.end: ; preds = %do.body, %land.rhs
%__k.0.lcssa = phi ptr [ %__first, %do.body ], [ %__k.0, %land.rhs ]
store double %19, ptr %__k.0.lcssa, align 8, !tbaa !28
store double %19, ptr %__k.0, align 8, !tbaa !28
%inc = add i32 %__count.082, 1
%cmp23.not = icmp eq i32 %inc, 8
br i1 %cmp23.not, label %cleanup.thread, label %if.end29
Expand Down
481 changes: 243 additions & 238 deletions 157.ll

Large diffs are not rendered by default.

428 changes: 216 additions & 212 deletions 158.ll

Large diffs are not rendered by default.

55 changes: 27 additions & 28 deletions 159.ll
Original file line number Diff line number Diff line change
Expand Up @@ -390,13 +390,13 @@ if.then: ; preds = %sw.bb5
br i1 %cmp.i59, label %invoke.cont11.thread, label %if.else.i66

invoke.cont11.thread: ; preds = %if.then
%__end_cap_.i.i.i.i.i.i61 = getelementptr inbounds %"class.std::__1::vector.0", ptr %30, i64 0, i32 2
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %30, i8 0, i64 24, i1 false)
%__end_cap_.i.i.i.i.i.i61 = getelementptr inbounds %"class.std::__1::vector.0", ptr %31, i64 0, i32 2
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %31, i8 0, i64 24, i1 false)
%33 = load <2 x ptr>, ptr %ref.tmp9, align 16, !tbaa !18
store <2 x ptr> %33, ptr %30, align 8, !tbaa !18
store <2 x ptr> %33, ptr %31, align 8, !tbaa !18
%34 = load ptr, ptr %__end_cap_.i.i.i54, align 16, !tbaa !18
store ptr %34, ptr %__end_cap_.i.i.i.i.i.i61, align 8, !tbaa !18
%incdec.ptr.i.i64 = getelementptr inbounds %class.BigInt, ptr %30, i64 1
%incdec.ptr.i.i64 = getelementptr inbounds %class.BigInt, ptr %31, i64 1
store ptr %incdec.ptr.i.i64, ptr %__end_.i, align 8, !tbaa !5
br label %_ZN6BigIntD2Ev.exit72

Expand Down Expand Up @@ -697,7 +697,7 @@ _ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3
br i1 %cmp.not.i.i.i.i, label %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i, label %while.body.i.i.i.i

_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i: ; preds = %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i, %invoke.cont.thread, %invoke.cont
%8 = phi ptr [ %.pre18, %invoke.cont ], [ %1, %invoke.cont.thread ], [ %.pre, %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i ]
%8 = phi ptr [ %1, %invoke.cont.thread ], [ %.pre, %invoke.cont ], [ %.pre, %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i ]
%tobool.not.i = icmp eq ptr %8, null
br i1 %tobool.not.i, label %if.end7, label %if.then.i

Expand Down Expand Up @@ -3674,13 +3674,7 @@ invoke.cont: ; preds = %_ZNSt3__119__alloca
%5 = load ptr, ptr %__end_.i, align 8, !tbaa !5
%6 = load ptr, ptr %this, align 8, !tbaa !12
%cmp.i.not19.i.i = icmp eq ptr %5, %6
br i1 %cmp.i.not19.i.i, label %invoke.cont7.thread, label %invoke.cont4.i.i

invoke.cont7.thread: ; preds = %invoke.cont
store ptr %add.ptr.i, ptr %this, align 8, !tbaa !18
store ptr %incdec.ptr, ptr %__end_.i, align 8, !tbaa !18
store ptr %add.ptr6.i, ptr %__end_cap_.i, align 8, !tbaa !18
br label %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i
br i1 %cmp.i.not19.i.i, label %invoke.cont7, label %invoke.cont4.i.i

invoke.cont4.i.i: ; preds = %invoke.cont, %invoke.cont4.i.i
%7 = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %invoke.cont4.i.i ], [ %add.ptr.i, %invoke.cont ]
Expand All @@ -3697,41 +3691,46 @@ invoke.cont4.i.i: ; preds = %invoke.cont, %invok
store ptr %10, ptr %__end_cap_.i.i.i.i.i.i, align 8, !tbaa !18
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %incdec.ptr.i.i.i, i8 0, i64 24, i1 false)
%cmp.i.not.i.i = icmp eq ptr %incdec.ptr.i.i.i, %6
br i1 %cmp.i.not.i.i, label %invoke.cont7, label %invoke.cont4.i.i, !llvm.loop !27
br i1 %cmp.i.not.i.i, label %invoke.cont7.loopexit, label %invoke.cont4.i.i, !llvm.loop !27

invoke.cont7: ; preds = %invoke.cont4.i.i
invoke.cont7.loopexit: ; preds = %invoke.cont4.i.i
%.pre = load ptr, ptr %this, align 8, !tbaa !18
%.pre21 = load ptr, ptr %__end_.i, align 8, !tbaa !18
store ptr %incdec.ptr.i.i.i.i.i.i, ptr %this, align 8, !tbaa !18
br label %invoke.cont7

invoke.cont7: ; preds = %invoke.cont7.loopexit, %invoke.cont
%11 = phi ptr [ %5, %invoke.cont ], [ %.pre21, %invoke.cont7.loopexit ]
%12 = phi ptr [ %6, %invoke.cont ], [ %.pre, %invoke.cont7.loopexit ]
%retval.sroa.2.0.copyload.i.i = phi ptr [ %add.ptr.i, %invoke.cont ], [ %incdec.ptr.i.i.i.i.i.i, %invoke.cont7.loopexit ]
store ptr %retval.sroa.2.0.copyload.i.i, ptr %this, align 8, !tbaa !18
store ptr %incdec.ptr, ptr %__end_.i, align 8, !tbaa !18
store ptr %add.ptr6.i, ptr %__end_cap_.i, align 8, !tbaa !18
%cmp.not4.i.i.i.i = icmp eq ptr %.pre21, %.pre
%cmp.not4.i.i.i.i = icmp eq ptr %11, %12
br i1 %cmp.not4.i.i.i.i, label %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i, label %while.body.i.i.i.i

while.body.i.i.i.i: ; preds = %invoke.cont7, %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i
%11 = phi ptr [ %incdec.ptr.i.i.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i ], [ %.pre21, %invoke.cont7 ]
%incdec.ptr.i.i.i.i = getelementptr inbounds %class.BigInt, ptr %11, i64 -1
%12 = load ptr, ptr %incdec.ptr.i.i.i.i, align 8, !tbaa !17
%cmp.not.i.i.i.i.i.i.i.i.i = icmp eq ptr %12, null
%13 = phi ptr [ %incdec.ptr.i.i.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i ], [ %11, %invoke.cont7 ]
%incdec.ptr.i.i.i.i = getelementptr inbounds %class.BigInt, ptr %13, i64 -1
%14 = load ptr, ptr %incdec.ptr.i.i.i.i, align 8, !tbaa !17
%cmp.not.i.i.i.i.i.i.i.i.i = icmp eq ptr %14, null
br i1 %cmp.not.i.i.i.i.i.i.i.i.i, label %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i.i

if.then.i.i.i.i.i.i.i.i.i: ; preds = %while.body.i.i.i.i
%__end_.i.i.i.i.i.i.i.i.i.i.i = getelementptr %class.BigInt, ptr %11, i64 -1, i32 0, i32 1
store ptr %12, ptr %__end_.i.i.i.i.i.i.i.i.i.i.i, align 8, !tbaa !13
tail call void @_ZdlPv(ptr noundef nonnull %12) #24
%__end_.i.i.i.i.i.i.i.i.i.i.i = getelementptr %class.BigInt, ptr %13, i64 -1, i32 0, i32 1
store ptr %14, ptr %__end_.i.i.i.i.i.i.i.i.i.i.i, align 8, !tbaa !13
tail call void @_ZdlPv(ptr noundef nonnull %14) #24
br label %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i

_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i, %while.body.i.i.i.i
%cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %.pre
%cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %12
br i1 %cmp.not.i.i.i.i, label %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i, label %while.body.i.i.i.i

_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i: ; preds = %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i, %invoke.cont7.thread, %invoke.cont7
%13 = phi ptr [ %.pre21, %invoke.cont7 ], [ %5, %invoke.cont7.thread ], [ %.pre, %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i ]
%tobool.not.i = icmp eq ptr %13, null
_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i: ; preds = %_ZNSt3__116allocator_traitsINS_9allocatorI6BigIntEEE7destroyB7v170000IS2_vEEvRS3_PT_.exit.i.i.i.i, %invoke.cont7
%tobool.not.i = icmp eq ptr %12, null
br i1 %tobool.not.i, label %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEED2Ev.exit, label %if.then.i20

if.then.i20: ; preds = %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i
tail call void @_ZdlPv(ptr noundef nonnull %13) #24
tail call void @_ZdlPv(ptr noundef nonnull %12) #24
br label %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEED2Ev.exit

_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEED2Ev.exit: ; preds = %_ZNSt3__114__split_bufferI6BigIntRNS_9allocatorIS1_EEE5clearB7v170000Ev.exit.i, %if.then.i20
Expand Down
24 changes: 12 additions & 12 deletions 16.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2091,7 +2091,7 @@ _ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit: ;
br label %if.end

if.end: ; preds = %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit, %if.else
%12 = phi ptr [ %0, %if.else ], [ %.pre177, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%12 = phi ptr [ %3, %if.else ], [ %.pre177, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%13 = phi ptr [ %2, %if.else ], [ %.pre176, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%14 = phi ptr [ %0, %if.else ], [ %7, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%__is_black_24 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %14, i64 0, i32 3
Expand Down Expand Up @@ -2135,14 +2135,13 @@ land.lhs.true32: ; preds = %if.else28
br i1 %tobool34.not, label %if.end56, label %if.else43

if.else43: ; preds = %land.lhs.true32, %if.else28
%__parent_.i.le = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0169, i64 0, i32 2
%__parent_.i103.le188 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%__parent_.i103.le187 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%20 = load ptr, ptr %0, align 8, !tbaa !36
%cmp.i129 = icmp eq ptr %20, %__x.addr.0169
br i1 %cmp.i129, label %if.then45, label %if.end47

if.then45: ; preds = %if.else43
%__right_.i132 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0169, i64 0, i32 1
%__right_.i132 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 1
%21 = load ptr, ptr %__right_.i132, align 8, !tbaa !39
store ptr %21, ptr %0, align 8, !tbaa !36
%cmp5.not.i133 = icmp eq ptr %21, null
Expand All @@ -2151,26 +2150,27 @@ if.then45: ; preds = %if.else43
if.then.i135: ; preds = %if.then45
%__parent_.i.i134 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %21, i64 0, i32 2
store ptr %0, ptr %__parent_.i.i134, align 8, !tbaa !42
%.pre = load ptr, ptr %__parent_.i103.le188, align 8, !tbaa !42
%.pre = load ptr, ptr %__parent_.i103.le187, align 8, !tbaa !42
br label %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141

_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141: ; preds = %if.then45, %if.then.i135
%22 = phi ptr [ %2, %if.then45 ], [ %.pre, %if.then.i135 ]
store ptr %22, ptr %__parent_.i.le, align 8, !tbaa !42
%23 = load ptr, ptr %__parent_.i103.le188, align 8, !tbaa !42
%__parent_7.i137 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 2
store ptr %22, ptr %__parent_7.i137, align 8, !tbaa !42
%23 = load ptr, ptr %__parent_.i103.le187, align 8, !tbaa !42
%24 = load ptr, ptr %23, align 8, !tbaa !36
%cmp.i.i138 = icmp eq ptr %24, %0
%__right_12.i139 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %23, i64 0, i32 1
%__right_12.sink.i140 = select i1 %cmp.i.i138, ptr %23, ptr %__right_12.i139
store ptr %__x.addr.0169, ptr %__right_12.sink.i140, align 8, !tbaa !35
store ptr %20, ptr %__right_12.sink.i140, align 8, !tbaa !35
store ptr %0, ptr %__right_.i132, align 8, !tbaa !39
store ptr %__x.addr.0169, ptr %__parent_.i103.le188, align 8, !tbaa !42
%.pre174 = load ptr, ptr %__parent_.i.le, align 8, !tbaa !42
store ptr %20, ptr %__parent_.i103.le187, align 8, !tbaa !42
%.pre174 = load ptr, ptr %__parent_7.i137, align 8, !tbaa !42
br label %if.end47

if.end47: ; preds = %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141, %if.else43
%25 = phi ptr [ %.pre174, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %2, %if.else43 ]
%26 = phi ptr [ %__x.addr.0169, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %0, %if.else43 ]
%26 = phi ptr [ %20, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %0, %if.else43 ]
%__is_black_49 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %26, i64 0, i32 3
store i8 1, ptr %__is_black_49, align 8, !tbaa !60
%__is_black_51 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %25, i64 0, i32 3
Expand Down Expand Up @@ -3094,7 +3094,7 @@ _ZNSt3__16vectorINS0_IlNS_9allocatorIlEEEENS1_IS3_EEE7__clearB7v170000Ev.exit.lo
br label %_ZNSt3__16vectorINS0_IlNS_9allocatorIlEEEENS1_IS3_EEE7__clearB7v170000Ev.exit.i.i16

_ZNSt3__16vectorINS0_IlNS_9allocatorIlEEEENS1_IS3_EEE7__clearB7v170000Ev.exit.i.i16: ; preds = %_ZNSt3__16vectorINS0_IlNS_9allocatorIlEEEENS1_IS3_EEE7__clearB7v170000Ev.exit.loopexit.i.i15, %if.then.i.i5
%8 = phi ptr [ %.pre10.i.i14, %_ZNSt3__16vectorINS0_IlNS_9allocatorIlEEEENS1_IS3_EEE7__clearB7v170000Ev.exit.loopexit.i.i15 ], [ %call.i.i.i.i.i11.i.i, %if.then.i.i5 ]
%8 = phi ptr [ %.pre10.i.i14, %_ZNSt3__16vectorINS0_IlNS_9allocatorIlEEEENS1_IS3_EEE7__clearB7v170000Ev.exit.loopexit.i.i15 ], [ %.pr, %if.then.i.i5 ]
store ptr %.pr, ptr %__end_.i141.i, align 8, !tbaa !88
call void @_ZdlPv(ptr noundef %8) #22
br label %ehcleanup69.i
Expand Down
485 changes: 257 additions & 228 deletions 160.ll

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions 161.ll
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ _ZNSt3__14sortB7v170000INS_11__wrap_iterIPNS_4pairIPKciEEEEEEvT_S8_.exit: ; pred
br i1 %cmp46101.not, label %for.cond.cleanup, label %for.body

for.cond.cleanup: ; preds = %for.body, %_ZNSt3__14sortB7v170000INS_11__wrap_iterIPNS_4pairIPKciEEEEEEvT_S8_.exit
%.lcssa = phi ptr [ %20, %_ZNSt3__14sortB7v170000INS_11__wrap_iterIPNS_4pairIPKciEEEEEEvT_S8_.exit ], [ %30, %for.body ]
%.lcssa = phi ptr [ %21, %_ZNSt3__14sortB7v170000INS_11__wrap_iterIPNS_4pairIPKciEEEEEEvT_S8_.exit ], [ %30, %for.body ]
%cmp.not.i.i = icmp eq ptr %.lcssa, null
br i1 %cmp.not.i.i, label %_ZNSt3__16vectorINS_4pairIPKciEENS_9allocatorIS4_EEED2B7v170000Ev.exit, label %if.then.i.i79

Expand Down Expand Up @@ -695,7 +695,7 @@ _ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit: ;
br label %if.end

if.end: ; preds = %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit, %if.else
%12 = phi ptr [ %0, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%12 = phi ptr [ %3, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%13 = phi ptr [ %2, %if.else ], [ %.pre190, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%14 = phi ptr [ %0, %if.else ], [ %7, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%__is_black_31 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %14, i64 0, i32 3
Expand Down Expand Up @@ -739,14 +739,13 @@ land.lhs.true41: ; preds = %if.else36
br i1 %tobool43.not, label %if.end70, label %if.else54

if.else54: ; preds = %land.lhs.true41, %if.else36
%__parent_.i.le = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 2
%__parent_.i117.le202 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%__parent_.i117.le201 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%20 = load ptr, ptr %0, align 8, !tbaa !21
%cmp.i143 = icmp eq ptr %20, %__x.addr.0183
br i1 %cmp.i143, label %if.then56, label %if.end59

if.then56: ; preds = %if.else54
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 1
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 1
%21 = load ptr, ptr %__right_.i146, align 8, !tbaa !47
store ptr %21, ptr %0, align 8, !tbaa !21
%cmp5.not.i147 = icmp eq ptr %21, null
Expand All @@ -755,26 +754,27 @@ if.then56: ; preds = %if.else54
if.then.i149: ; preds = %if.then56
%__parent_.i.i148 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %21, i64 0, i32 2
store ptr %0, ptr %__parent_.i.i148, align 8, !tbaa !31
%.pre = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !31
%.pre = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !31
br label %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155

_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155: ; preds = %if.then56, %if.then.i149
%22 = phi ptr [ %2, %if.then56 ], [ %.pre, %if.then.i149 ]
store ptr %22, ptr %__parent_.i.le, align 8, !tbaa !31
%23 = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !31
%__parent_7.i151 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 2
store ptr %22, ptr %__parent_7.i151, align 8, !tbaa !31
%23 = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !31
%24 = load ptr, ptr %23, align 8, !tbaa !21
%cmp.i.i152 = icmp eq ptr %24, %0
%__right_12.i153 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %23, i64 0, i32 1
%__right_12.sink.i154 = select i1 %cmp.i.i152, ptr %23, ptr %__right_12.i153
store ptr %__x.addr.0183, ptr %__right_12.sink.i154, align 8, !tbaa !13
store ptr %20, ptr %__right_12.sink.i154, align 8, !tbaa !13
store ptr %0, ptr %__right_.i146, align 8, !tbaa !47
store ptr %__x.addr.0183, ptr %__parent_.i117.le202, align 8, !tbaa !31
%.pre188 = load ptr, ptr %__parent_.i.le, align 8, !tbaa !31
store ptr %20, ptr %__parent_.i117.le201, align 8, !tbaa !31
%.pre188 = load ptr, ptr %__parent_7.i151, align 8, !tbaa !31
br label %if.end59

if.end59: ; preds = %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155, %if.else54
%25 = phi ptr [ %.pre188, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %2, %if.else54 ]
%26 = phi ptr [ %__x.addr.0183, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%26 = phi ptr [ %20, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%__is_black_62 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %26, i64 0, i32 3
store i8 1, ptr %__is_black_62, align 8, !tbaa !52
%__is_black_65 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %25, i64 0, i32 3
Expand Down Expand Up @@ -1036,7 +1036,7 @@ do.body.backedge.i: ; preds = %_ZNKSt3__16__lessIN
br i1 %cmp7.not.i, label %do.end.i, label %land.rhs.i, !llvm.loop !59

do.end.i: ; preds = %do.body.backedge.i, %_ZNKSt3__16__lessINS_4pairIPKciEES4_EclB7v170000ERKS4_S7_.exit32.i, %cond.true.i.i27.i, %if.then3.i
%__k.0.lcssa40.i = phi ptr [ %__first.addr.0, %if.then3.i ], [ %__k.044.i, %_ZNKSt3__16__lessINS_4pairIPKciEES4_EclB7v170000ERKS4_S7_.exit32.i ], [ %__first.addr.0, %do.body.backedge.i ], [ %__k.044.i, %cond.true.i.i27.i ]
%__k.0.lcssa40.i = phi ptr [ %__first.pn52.i, %if.then3.i ], [ %__k.044.i, %_ZNKSt3__16__lessINS_4pairIPKciEES4_EclB7v170000ERKS4_S7_.exit32.i ], [ %__first.addr.0, %do.body.backedge.i ], [ %__k.044.i, %cond.true.i.i27.i ]
%second.i.le.i = getelementptr inbounds %"struct.std::__1::pair.4", ptr %__k.0.lcssa40.i, i64 0, i32 1
store ptr %__t.sroa.0.0.copyload.i, ptr %__k.0.lcssa40.i, align 8, !tbaa !45
store i32 %6, ptr %second.i.le.i, align 8, !tbaa !43
Expand Down Expand Up @@ -1920,7 +1920,7 @@ do.body.backedge: ; preds = %cond.true.i.i68.do.
br i1 %cmp21.not, label %do.end, label %land.rhs, !llvm.loop !79

do.end: ; preds = %_ZNKSt3__16__lessINS_4pairIPKciEES4_EclB7v170000ERKS4_S7_.exit73, %do.body.backedge, %cond.true.i.i68, %if.then17
%__k.0.lcssa89 = phi ptr [ %__first, %if.then17 ], [ %__k.093, %cond.true.i.i68 ], [ %__first, %do.body.backedge ], [ %__k.093, %_ZNKSt3__16__lessINS_4pairIPKciEES4_EclB7v170000ERKS4_S7_.exit73 ]
%__k.0.lcssa89 = phi ptr [ %__j.0101, %if.then17 ], [ %__k.093, %cond.true.i.i68 ], [ %__first, %do.body.backedge ], [ %__k.093, %_ZNKSt3__16__lessINS_4pairIPKciEES4_EclB7v170000ERKS4_S7_.exit73 ]
%second.i.le = getelementptr inbounds %"struct.std::__1::pair.4", ptr %__k.0.lcssa89, i64 0, i32 1
store ptr %__t.sroa.0.0.copyload, ptr %__k.0.lcssa89, align 8, !tbaa !45
store i32 %6, ptr %second.i.le, align 8, !tbaa !43
Expand Down
2 changes: 1 addition & 1 deletion 162.ll
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ for.cond.cleanup.loopexit.i: ; preds = %for.body.i194
br label %for.cond.cleanup.i

for.cond.cleanup.i: ; preds = %for.cond.cleanup.loopexit.i, %if.then.i
%26 = phi ptr [ %.pre.i, %for.cond.cleanup.loopexit.i ], [ %B, %if.then.i ]
%26 = phi ptr [ %.pre.i, %for.cond.cleanup.loopexit.i ], [ %25, %if.then.i ]
%27 = load ptr, ptr %B, align 8, !tbaa !16
store ptr %26, ptr %B, align 8, !tbaa !16
store ptr %27, ptr %__next_.i.i.i, align 8, !tbaa !16
Expand Down
10 changes: 5 additions & 5 deletions 163.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1008,7 +1008,7 @@ _ZNSt3__114__split_bufferIPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorI
br i1 %tobool.not.i, label %if.end38, label %if.then.i

if.then.i: ; preds = %_ZNSt3__114__split_bufferIPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS7_EEE5clearB7v170000Ev.exit.i
tail call void @_ZdlPv(ptr noundef nonnull %0) #18
tail call void @_ZdlPv(ptr noundef nonnull %1) #18
%.pre = load ptr, ptr %__begin_, align 8, !tbaa !23
br label %if.end38

Expand Down Expand Up @@ -1155,7 +1155,7 @@ _ZNSt3__114__split_bufferIPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorI
br i1 %tobool.not.i, label %if.end38, label %if.then.i

if.then.i: ; preds = %_ZNSt3__114__split_bufferIPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS7_EEE5clearB7v170000Ev.exit.i
tail call void @_ZdlPv(ptr noundef nonnull %0) #18
tail call void @_ZdlPv(ptr noundef nonnull %1) #18
%.pre = load ptr, ptr %__begin_, align 8, !tbaa !23
br label %if.end38

Expand Down Expand Up @@ -1493,18 +1493,18 @@ _ZNSt3__121__unwrap_and_dispatchB7v170000INS_10__overloadINS_11__copy_loopINS_17
br i1 %cmp14.not.i, label %while.end.i, label %while.body.i, !llvm.loop !52

while.end.i: ; preds = %_ZNSt3__121__unwrap_and_dispatchB7v170000INS_10__overloadINS_11__copy_loopINS_17_ClassicAlgPolicyEEENS_14__copy_trivialEEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESD_NS_16ostream_iteratorISC_cS9_EELi0EEENS_4pairIT0_T2_EESH_T1_SI_.exit.loopexit27, %_ZNSt3__121__unwrap_and_dispatchB7v170000INS_10__overloadINS_11__copy_loopINS_17_ClassicAlgPolicyEEENS_14__copy_trivialEEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESD_NS_16ostream_iteratorISC_cS9_EELi0EEENS_4pairIT0_T2_EESH_T1_SI_.exit.loopexit.us, %if.end.i
%__sfirst.0.lcssa.i = phi ptr [ %__sfirst.041.i, %if.end.i ], [ %__last.coerce0, %_ZNSt3__121__unwrap_and_dispatchB7v170000INS_10__overloadINS_11__copy_loopINS_17_ClassicAlgPolicyEEENS_14__copy_trivialEEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESD_NS_16ostream_iteratorISC_cS9_EELi0EEENS_4pairIT0_T2_EESH_T1_SI_.exit.loopexit.us ], [ %__last.coerce0, %_ZNSt3__121__unwrap_and_dispatchB7v170000INS_10__overloadINS_11__copy_loopINS_17_ClassicAlgPolicyEEENS_14__copy_trivialEEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESD_NS_16ostream_iteratorISC_cS9_EELi0EEENS_4pairIT0_T2_EESH_T1_SI_.exit.loopexit27 ]
call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %ref.tmp21.i) #15, !noalias !43
%8 = load ptr, ptr %__last.coerce0, align 8, !tbaa !25, !noalias !43
%8 = load ptr, ptr %__sfirst.0.lcssa.i, align 8, !tbaa !25, !noalias !43
call void @_ZNSt3__121__unwrap_and_dispatchB7v170000INS_10__overloadINS_11__copy_loopINS_17_ClassicAlgPolicyEEENS_14__copy_trivialEEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESD_NS_16ostream_iteratorISC_cS9_EELi0EEENS_4pairIT0_T2_EESH_T1_SI_(ptr nonnull sret(%"struct.std::__1::pair.28") align 8 %ref.tmp21.i, ptr noundef %8, ptr noundef %__last.coerce1, ptr %agg.tmp416.sroa.0.0.copyload, ptr %agg.tmp416.sroa.11.0.copyload.fr), !noalias !43
%second26.i = getelementptr inbounds %"struct.std::__1::pair.28", ptr %ref.tmp21.i, i64 0, i32 1
%9 = load <2 x ptr>, ptr %second26.i, align 8, !noalias !43
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %ref.tmp21.i) #15, !noalias !43
br label %_ZNKSt3__111__copy_loopINS_17_ClassicAlgPolicyEEclB7v170000INS_16__deque_iteratorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPSA_RSA_PSB_lLl170EEENS_16ostream_iteratorISA_cS7_EELi0EEENS_4pairIT_T0_EESI_SI_SJ_.exit

_ZNKSt3__111__copy_loopINS_17_ClassicAlgPolicyEEclB7v170000INS_16__deque_iteratorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPSA_RSA_PSB_lLl170EEENS_16ostream_iteratorISA_cS7_EELi0EEENS_4pairIT_T0_EESI_SI_SJ_.exit: ; preds = %if.then.i, %while.end.i
%__result.sroa.0.0 = phi ptr [ %__first.coerce0, %if.then.i ], [ %__last.coerce0, %while.end.i ]
%10 = phi <2 x ptr> [ %0, %if.then.i ], [ %9, %while.end.i ]
store ptr %__result.sroa.0.0, ptr %agg.result, align 8, !tbaa.struct !53
store ptr %__last.coerce0, ptr %agg.result, align 8, !tbaa.struct !53
%ref.tmp6.sroa.4.0.agg.result.sroa_idx = getelementptr inbounds i8, ptr %agg.result, i64 8
store ptr %__last.coerce1, ptr %ref.tmp6.sroa.4.0.agg.result.sroa_idx, align 8, !tbaa.struct !54
%second.i.i = getelementptr inbounds %"struct.std::__1::pair.26", ptr %agg.result, i64 0, i32 1
Expand Down
2 changes: 1 addition & 1 deletion 164.ll
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ for.cond.cleanup.loopexit.i: ; preds = %for.body.i70
br label %for.cond.cleanup.i

for.cond.cleanup.i: ; preds = %for.cond.cleanup.loopexit.i, %if.then.i
%25 = phi ptr [ %.pre.i, %for.cond.cleanup.loopexit.i ], [ %li1, %if.then.i ]
%25 = phi ptr [ %.pre.i, %for.cond.cleanup.loopexit.i ], [ %24, %if.then.i ]
%26 = load ptr, ptr %li1, align 8, !tbaa !25
store ptr %25, ptr %li1, align 8, !tbaa !25
store ptr %26, ptr %__next_.i.i.i, align 8, !tbaa !25
Expand Down
24 changes: 12 additions & 12 deletions 165.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1516,7 +1516,7 @@ if.then16: ; preds = %cond.end
%idx.neg = sub nsw i64 0, %cond
%__binp_.i151 = getelementptr inbounds %"class.std::__1::basic_streambuf", ptr %this, i64 0, i32 2
%12 = load ptr, ptr %__binp_.i151, align 8, !tbaa !68
%add.ptr19 = getelementptr inbounds i8, ptr %10, i64 %idx.neg
%add.ptr19 = getelementptr inbounds i8, ptr %.pre191, i64 %idx.neg
call void @llvm.memmove.p0.p0.i64(ptr align 1 %12, ptr align 1 %add.ptr19, i64 %cond, i1 false)
%__always_noconv_ = getelementptr inbounds %"class.std::__1::basic_filebuf", ptr %this, i64 0, i32 16
%13 = load i8, ptr %__always_noconv_, align 2, !tbaa !51, !range !53, !noundef !54
Expand Down Expand Up @@ -2137,7 +2137,7 @@ _ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit: ;
br label %if.end

if.end: ; preds = %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit, %if.else
%12 = phi ptr [ %0, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%12 = phi ptr [ %3, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%13 = phi ptr [ %2, %if.else ], [ %.pre190, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%14 = phi ptr [ %0, %if.else ], [ %7, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%__is_black_31 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %14, i64 0, i32 3
Expand Down Expand Up @@ -2181,14 +2181,13 @@ land.lhs.true41: ; preds = %if.else36
br i1 %tobool43.not, label %if.end70, label %if.else54

if.else54: ; preds = %land.lhs.true41, %if.else36
%__parent_.i.le = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 2
%__parent_.i117.le202 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%__parent_.i117.le201 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%20 = load ptr, ptr %0, align 8, !tbaa !14
%cmp.i143 = icmp eq ptr %20, %__x.addr.0183
br i1 %cmp.i143, label %if.then56, label %if.end59

if.then56: ; preds = %if.else54
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 1
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 1
%21 = load ptr, ptr %__right_.i146, align 8, !tbaa !72
store ptr %21, ptr %0, align 8, !tbaa !14
%cmp5.not.i147 = icmp eq ptr %21, null
Expand All @@ -2197,26 +2196,27 @@ if.then56: ; preds = %if.else54
if.then.i149: ; preds = %if.then56
%__parent_.i.i148 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %21, i64 0, i32 2
store ptr %0, ptr %__parent_.i.i148, align 8, !tbaa !44
%.pre = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !44
%.pre = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !44
br label %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155

_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155: ; preds = %if.then56, %if.then.i149
%22 = phi ptr [ %2, %if.then56 ], [ %.pre, %if.then.i149 ]
store ptr %22, ptr %__parent_.i.le, align 8, !tbaa !44
%23 = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !44
%__parent_7.i151 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 2
store ptr %22, ptr %__parent_7.i151, align 8, !tbaa !44
%23 = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !44
%24 = load ptr, ptr %23, align 8, !tbaa !14
%cmp.i.i152 = icmp eq ptr %24, %0
%__right_12.i153 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %23, i64 0, i32 1
%__right_12.sink.i154 = select i1 %cmp.i.i152, ptr %23, ptr %__right_12.i153
store ptr %__x.addr.0183, ptr %__right_12.sink.i154, align 8, !tbaa !16
store ptr %20, ptr %__right_12.sink.i154, align 8, !tbaa !16
store ptr %0, ptr %__right_.i146, align 8, !tbaa !72
store ptr %__x.addr.0183, ptr %__parent_.i117.le202, align 8, !tbaa !44
%.pre188 = load ptr, ptr %__parent_.i.le, align 8, !tbaa !44
store ptr %20, ptr %__parent_.i117.le201, align 8, !tbaa !44
%.pre188 = load ptr, ptr %__parent_7.i151, align 8, !tbaa !44
br label %if.end59

if.end59: ; preds = %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155, %if.else54
%25 = phi ptr [ %.pre188, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %2, %if.else54 ]
%26 = phi ptr [ %__x.addr.0183, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%26 = phi ptr [ %20, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%__is_black_62 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %26, i64 0, i32 3
store i8 1, ptr %__is_black_62, align 8, !tbaa !71
%__is_black_65 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %25, i64 0, i32 3
Expand Down
443 changes: 167 additions & 276 deletions 166.ll

Large diffs are not rendered by default.

4,500 changes: 1,696 additions & 2,804 deletions 167.ll

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions 168.ll
Original file line number Diff line number Diff line change
Expand Up @@ -49,43 +49,43 @@ for.end66.us.us: ; preds = %for.inc62.us.us
br i1 %cmp69.not.us.us, label %for.cond73.preheader.us.us, label %if.then71

for.cond73.us.us: ; preds = %for.cond73.preheader.us.us
%q.2.us.us = getelementptr inbounds i8, ptr %indvars.iv157, i64 3
%q.2.us.us = getelementptr inbounds i8, ptr %q.1136.us.us, i64 3
%4 = load i8, ptr %q.2.us.us, align 1, !tbaa !5
%cmp79.not.us.us.1 = icmp eq i8 %4, 97
br i1 %cmp79.not.us.us.1, label %for.cond73.us.us.1, label %if.then81

for.cond73.us.us.1: ; preds = %for.cond73.us.us
%q.2.us.us.1 = getelementptr inbounds i8, ptr %indvars.iv157, i64 4
%q.2.us.us.1 = getelementptr inbounds i8, ptr %q.1136.us.us, i64 4
%5 = load i8, ptr %q.2.us.us.1, align 1, !tbaa !5
%cmp79.not.us.us.2 = icmp eq i8 %5, 97
br i1 %cmp79.not.us.us.2, label %for.cond73.us.us.2, label %if.then81

for.cond73.us.us.2: ; preds = %for.cond73.us.us.1
%q.2.us.us.2 = getelementptr inbounds i8, ptr %indvars.iv157, i64 5
%q.2.us.us.2 = getelementptr inbounds i8, ptr %q.1136.us.us, i64 5
%6 = load i8, ptr %q.2.us.us.2, align 1, !tbaa !5
%cmp79.not.us.us.3 = icmp eq i8 %6, 97
br i1 %cmp79.not.us.us.3, label %for.cond73.us.us.3, label %if.then81

for.cond73.us.us.3: ; preds = %for.cond73.us.us.2
%q.2.us.us.3 = getelementptr inbounds i8, ptr %indvars.iv157, i64 6
%q.2.us.us.3 = getelementptr inbounds i8, ptr %q.1136.us.us, i64 6
%7 = load i8, ptr %q.2.us.us.3, align 1, !tbaa !5
%cmp79.not.us.us.4 = icmp eq i8 %7, 97
br i1 %cmp79.not.us.us.4, label %for.cond73.us.us.4, label %if.then81

for.cond73.us.us.4: ; preds = %for.cond73.us.us.3
%q.2.us.us.4 = getelementptr inbounds i8, ptr %indvars.iv157, i64 7
%q.2.us.us.4 = getelementptr inbounds i8, ptr %q.1136.us.us, i64 7
%8 = load i8, ptr %q.2.us.us.4, align 1, !tbaa !5
%cmp79.not.us.us.5 = icmp eq i8 %8, 97
br i1 %cmp79.not.us.us.5, label %for.cond73.us.us.5, label %if.then81

for.cond73.us.us.5: ; preds = %for.cond73.us.us.4
%q.2.us.us.5 = getelementptr inbounds i8, ptr %indvars.iv157, i64 8
%q.2.us.us.5 = getelementptr inbounds i8, ptr %q.1136.us.us, i64 8
%9 = load i8, ptr %q.2.us.us.5, align 1, !tbaa !5
%cmp79.not.us.us.6 = icmp eq i8 %9, 97
br i1 %cmp79.not.us.us.6, label %for.cond73.us.us.6, label %if.then81

for.cond73.us.us.6: ; preds = %for.cond73.us.us.5
%q.2.us.us.6 = getelementptr inbounds i8, ptr %indvars.iv157, i64 9
%q.2.us.us.6 = getelementptr inbounds i8, ptr %q.1136.us.us, i64 9
%10 = load i8, ptr %q.2.us.us.6, align 1, !tbaa !5
%cmp79.not.us.us.7 = icmp eq i8 %10, 97
br i1 %cmp79.not.us.us.7, label %for.cond73.us.us.7, label %if.then81
Expand Down Expand Up @@ -156,7 +156,7 @@ for.body16.us.us.1: ; preds = %for.body16.us.us
br label %for.body16.us.us

for.cond73.preheader.us.us: ; preds = %for.end66.us.us
%q.2138.us.us = getelementptr inbounds i8, ptr %indvars.iv157, i64 2
%q.2138.us.us = getelementptr inbounds i8, ptr %q.1136.us.us, i64 2
%13 = load i8, ptr %q.2138.us.us, align 1, !tbaa !5
%cmp79.not.us.us = icmp eq i8 %13, 97
br i1 %cmp79.not.us.us, label %for.cond73.us.us, label %if.then81
Expand Down
2 changes: 1 addition & 1 deletion 169.ll
Original file line number Diff line number Diff line change
Expand Up @@ -933,7 +933,7 @@ if.then16: ; preds = %cond.end
%idx.neg = sub nsw i64 0, %cond
%__binp_.i151 = getelementptr inbounds %"class.std::__1::basic_streambuf", ptr %this, i64 0, i32 2
%12 = load ptr, ptr %__binp_.i151, align 8, !tbaa !43
%add.ptr19 = getelementptr inbounds i8, ptr %10, i64 %idx.neg
%add.ptr19 = getelementptr inbounds i8, ptr %.pre191, i64 %idx.neg
call void @llvm.memmove.p0.p0.i64(ptr align 1 %12, ptr align 1 %add.ptr19, i64 %cond, i1 false)
%__always_noconv_ = getelementptr inbounds %"class.std::__1::basic_filebuf", ptr %this, i64 0, i32 16
%13 = load i8, ptr %__always_noconv_, align 2, !tbaa !29, !range !23, !noundef !24
Expand Down
67 changes: 33 additions & 34 deletions 17.ll
Original file line number Diff line number Diff line change
Expand Up @@ -19531,7 +19531,7 @@ _ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit: ;
br label %if.end

if.end: ; preds = %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit, %if.else
%12 = phi ptr [ %0, %if.else ], [ %.pre177, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%12 = phi ptr [ %3, %if.else ], [ %.pre177, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%13 = phi ptr [ %2, %if.else ], [ %.pre176, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%14 = phi ptr [ %0, %if.else ], [ %7, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%__is_black_24 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %14, i64 0, i32 3
Expand Down Expand Up @@ -19575,14 +19575,13 @@ land.lhs.true32: ; preds = %if.else28
br i1 %tobool34.not, label %if.end56, label %if.else43

if.else43: ; preds = %land.lhs.true32, %if.else28
%__parent_.i.le = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0169, i64 0, i32 2
%__parent_.i103.le188 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%__parent_.i103.le187 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%20 = load ptr, ptr %0, align 8, !tbaa !68
%cmp.i129 = icmp eq ptr %20, %__x.addr.0169
br i1 %cmp.i129, label %if.then45, label %if.end47

if.then45: ; preds = %if.else43
%__right_.i132 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0169, i64 0, i32 1
%__right_.i132 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 1
%21 = load ptr, ptr %__right_.i132, align 8, !tbaa !139
store ptr %21, ptr %0, align 8, !tbaa !68
%cmp5.not.i133 = icmp eq ptr %21, null
Expand All @@ -19591,26 +19590,27 @@ if.then45: ; preds = %if.else43
if.then.i135: ; preds = %if.then45
%__parent_.i.i134 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %21, i64 0, i32 2
store ptr %0, ptr %__parent_.i.i134, align 8, !tbaa !142
%.pre = load ptr, ptr %__parent_.i103.le188, align 8, !tbaa !142
%.pre = load ptr, ptr %__parent_.i103.le187, align 8, !tbaa !142
br label %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141

_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141: ; preds = %if.then45, %if.then.i135
%22 = phi ptr [ %2, %if.then45 ], [ %.pre, %if.then.i135 ]
store ptr %22, ptr %__parent_.i.le, align 8, !tbaa !142
%23 = load ptr, ptr %__parent_.i103.le188, align 8, !tbaa !142
%__parent_7.i137 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 2
store ptr %22, ptr %__parent_7.i137, align 8, !tbaa !142
%23 = load ptr, ptr %__parent_.i103.le187, align 8, !tbaa !142
%24 = load ptr, ptr %23, align 8, !tbaa !68
%cmp.i.i138 = icmp eq ptr %24, %0
%__right_12.i139 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %23, i64 0, i32 1
%__right_12.sink.i140 = select i1 %cmp.i.i138, ptr %23, ptr %__right_12.i139
store ptr %__x.addr.0169, ptr %__right_12.sink.i140, align 8, !tbaa !20
store ptr %20, ptr %__right_12.sink.i140, align 8, !tbaa !20
store ptr %0, ptr %__right_.i132, align 8, !tbaa !139
store ptr %__x.addr.0169, ptr %__parent_.i103.le188, align 8, !tbaa !142
%.pre174 = load ptr, ptr %__parent_.i.le, align 8, !tbaa !142
store ptr %20, ptr %__parent_.i103.le187, align 8, !tbaa !142
%.pre174 = load ptr, ptr %__parent_7.i137, align 8, !tbaa !142
br label %if.end47

if.end47: ; preds = %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141, %if.else43
%25 = phi ptr [ %.pre174, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %2, %if.else43 ]
%26 = phi ptr [ %__x.addr.0169, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %0, %if.else43 ]
%26 = phi ptr [ %20, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %0, %if.else43 ]
%__is_black_49 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %26, i64 0, i32 3
store i8 1, ptr %__is_black_49, align 8, !tbaa !164
%__is_black_51 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %25, i64 0, i32 3
Expand Down Expand Up @@ -21783,7 +21783,7 @@ invoke.cont7.loopexit.i.i: ; preds = %while.body.i.i.i.i.
br label %invoke.cont7.i.i

invoke.cont7.i.i: ; preds = %invoke.cont7.loopexit.i.i, %invoke.cont.i.i
%46 = phi ptr [ %21, %invoke.cont.i.i ], [ %.pre.i.i, %invoke.cont7.loopexit.i.i ]
%46 = phi ptr [ %23, %invoke.cont.i.i ], [ %.pre.i.i, %invoke.cont7.loopexit.i.i ]
%agg.tmp416.sroa.4.0.i.i.i.i.i.i.i.i = phi ptr [ %add.ptr.i.i.i, %invoke.cont.i.i ], [ %incdec.ptr.i.i.i.i.i.i.i.i.i.i.lcssa, %invoke.cont7.loopexit.i.i ]
store ptr %agg.tmp416.sroa.4.0.i.i.i.i.i.i.i.i, ptr %matcher_describers_.i, align 8, !tbaa !20
store ptr %incdec.ptr.i4.i, ptr %__end_.i47, align 8, !tbaa !20
Expand Down Expand Up @@ -22780,7 +22780,7 @@ invoke.cont7.loopexit.i.i: ; preds = %while.body.i.i.i.i.
br label %invoke.cont7.i.i

invoke.cont7.i.i: ; preds = %invoke.cont7.loopexit.i.i, %invoke.cont.i.i
%60 = phi ptr [ %22, %invoke.cont.i.i ], [ %.pre.i.i, %invoke.cont7.loopexit.i.i ]
%60 = phi ptr [ %24, %invoke.cont.i.i ], [ %.pre.i.i, %invoke.cont7.loopexit.i.i ]
%agg.tmp416.sroa.4.0.i.i.i.i.i.i.i.i = phi ptr [ %add.ptr.i.i.i, %invoke.cont.i.i ], [ %storemerge.i.i.i, %invoke.cont7.loopexit.i.i ]
store ptr %agg.tmp416.sroa.4.0.i.i.i.i.i.i.i.i, ptr %did_match, align 8, !tbaa !20
store ptr %incdec.ptr.i4.i, ptr %__end_.i103, align 8, !tbaa !20
Expand Down Expand Up @@ -23199,13 +23199,7 @@ invoke.cont: ; preds = %_ZNSt3__119__alloca
%3 = load ptr, ptr %__end_.i, align 8, !tbaa !135
%4 = load ptr, ptr %this, align 8, !tbaa !132
%cmp.i.not19.i.i = icmp eq ptr %3, %4
br i1 %cmp.i.not19.i.i, label %invoke.cont7.thread, label %invoke.cont4.i.i

invoke.cont7.thread: ; preds = %invoke.cont
store ptr %add.ptr.i, ptr %this, align 8, !tbaa !20
store ptr %incdec.ptr, ptr %__end_.i, align 8, !tbaa !20
store ptr %add.ptr6.i, ptr %__end_cap_.i, align 8, !tbaa !20
br label %_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEE5clearB7v170000Ev.exit.i
br i1 %cmp.i.not19.i.i, label %invoke.cont7, label %invoke.cont4.i.i

invoke.cont4.i.i: ; preds = %invoke.cont, %invoke.cont4.i.i
%incdec.ptr.i.i.i.i21.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %invoke.cont4.i.i ], [ %add.ptr.i, %invoke.cont ]
Expand All @@ -23215,42 +23209,47 @@ invoke.cont4.i.i: ; preds = %invoke.cont, %invok
tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %incdec.ptr.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(24) %incdec.ptr.i.i.i, i64 24, i1 false)
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %incdec.ptr.i.i.i, i8 0, i64 24, i1 false)
%cmp.i.not.i.i = icmp eq ptr %incdec.ptr.i.i.i, %4
br i1 %cmp.i.not.i.i, label %invoke.cont7, label %invoke.cont4.i.i, !llvm.loop !218
br i1 %cmp.i.not.i.i, label %invoke.cont7.loopexit, label %invoke.cont4.i.i, !llvm.loop !218

invoke.cont7: ; preds = %invoke.cont4.i.i
invoke.cont7.loopexit: ; preds = %invoke.cont4.i.i
%.pre = load ptr, ptr %this, align 8, !tbaa !20
%.pre20 = load ptr, ptr %__end_.i, align 8, !tbaa !20
store ptr %incdec.ptr.i.i.i.i.i.i, ptr %this, align 8, !tbaa !20
br label %invoke.cont7

invoke.cont7: ; preds = %invoke.cont7.loopexit, %invoke.cont
%5 = phi ptr [ %3, %invoke.cont ], [ %.pre20, %invoke.cont7.loopexit ]
%6 = phi ptr [ %4, %invoke.cont ], [ %.pre, %invoke.cont7.loopexit ]
%retval.sroa.2.0.copyload.i.i = phi ptr [ %add.ptr.i, %invoke.cont ], [ %incdec.ptr.i.i.i.i.i.i, %invoke.cont7.loopexit ]
store ptr %retval.sroa.2.0.copyload.i.i, ptr %this, align 8, !tbaa !20
store ptr %incdec.ptr, ptr %__end_.i, align 8, !tbaa !20
store ptr %add.ptr6.i, ptr %__end_cap_.i, align 8, !tbaa !20
%cmp.not4.i.i.i.i = icmp eq ptr %.pre20, %.pre
%cmp.not4.i.i.i.i = icmp eq ptr %5, %6
br i1 %cmp.not4.i.i.i.i, label %_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEE5clearB7v170000Ev.exit.i, label %while.body.i.i.i.i

while.body.i.i.i.i: ; preds = %invoke.cont7, %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i
%5 = phi ptr [ %incdec.ptr.i.i.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i ], [ %.pre20, %invoke.cont7 ]
%incdec.ptr.i.i.i.i = getelementptr inbounds %"class.std::__1::basic_string", ptr %5, i64 -1
%7 = phi ptr [ %incdec.ptr.i.i.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i ], [ %5, %invoke.cont7 ]
%incdec.ptr.i.i.i.i = getelementptr inbounds %"class.std::__1::basic_string", ptr %7, i64 -1
%bf.load.i.i.i.i.i.i.i.i = load i8, ptr %incdec.ptr.i.i.i.i, align 8
%bf.clear.i.i.i.i.i.i.i.i = and i8 %bf.load.i.i.i.i.i.i.i.i, 1
%tobool.i.not.i.i.i.i.i.i.i = icmp eq i8 %bf.clear.i.i.i.i.i.i.i.i, 0
br i1 %tobool.i.not.i.i.i.i.i.i.i, label %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i

if.then.i.i.i.i.i.i.i: ; preds = %while.body.i.i.i.i
%__data_.i.i.i.i.i.i.i.i = getelementptr %"class.std::__1::basic_string", ptr %5, i64 -1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2
%6 = load ptr, ptr %__data_.i.i.i.i.i.i.i.i, align 8, !tbaa !21
tail call void @_ZdlPv(ptr noundef %6) #24
%__data_.i.i.i.i.i.i.i.i = getelementptr %"class.std::__1::basic_string", ptr %7, i64 -1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2
%8 = load ptr, ptr %__data_.i.i.i.i.i.i.i.i, align 8, !tbaa !21
tail call void @_ZdlPv(ptr noundef %8) #24
br label %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i

_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %while.body.i.i.i.i
%cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %.pre
%cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %6
br i1 %cmp.not.i.i.i.i, label %_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEE5clearB7v170000Ev.exit.i, label %while.body.i.i.i.i

_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEE5clearB7v170000Ev.exit.i: ; preds = %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i, %invoke.cont7.thread, %invoke.cont7
%7 = phi ptr [ %.pre20, %invoke.cont7 ], [ %3, %invoke.cont7.thread ], [ %.pre, %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i ]
%tobool.not.i = icmp eq ptr %7, null
_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEE5clearB7v170000Ev.exit.i: ; preds = %_ZNSt3__116allocator_traitsINS_9allocatorINS_12basic_stringIcNS_11char_traitsIcEENS1_IcEEEEEEE7destroyB7v170000IS6_vEEvRS7_PT_.exit.i.i.i.i, %invoke.cont7
%tobool.not.i = icmp eq ptr %6, null
br i1 %tobool.not.i, label %_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEED2Ev.exit, label %if.then.i19

if.then.i19: ; preds = %_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEE5clearB7v170000Ev.exit.i
tail call void @_ZdlPv(ptr noundef nonnull %7) #24
tail call void @_ZdlPv(ptr noundef nonnull %6) #24
br label %_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEED2Ev.exit

_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEED2Ev.exit: ; preds = %_ZNSt3__114__split_bufferINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS4_IS6_EEE5clearB7v170000Ev.exit.i, %if.then.i19
Expand Down
65 changes: 32 additions & 33 deletions 18.ll
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ if.then.i: ; preds = %for.body
to label %_ZNSt3__16vectorIN12_GLOBAL__N_18TestCaseENS_9allocatorIS2_EEE22__construct_one_at_endB7v170000IJRKS2_EEEvDpOT_.exit.i unwind label %lpad.i.i

common.resume.i: ; preds = %if.then.i.i, %lpad.i6.i, %lpad.i.i
%common.resume.op.i = phi { ptr, i32 } [ %2, %lpad.i.i ], [ %11, %lpad.i6.i ], [ %11, %if.then.i.i ]
%common.resume.op.i = phi { ptr, i32 } [ %2, %lpad.i.i ], [ %12, %lpad.i6.i ], [ %12, %if.then.i.i ]
resume { ptr, i32 } %common.resume.op.i

lpad.i.i: ; preds = %if.then.i
Expand Down Expand Up @@ -416,13 +416,7 @@ invoke.cont.i.i: ; preds = %_ZNSt3__114__split_
%5 = load ptr, ptr getelementptr inbounds (%"class.std::__1::vector", ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, i64 0, i32 1), align 8, !tbaa !12
%6 = load ptr, ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, align 8, !tbaa !5
%cmp.i.not17.i.i.i.i = icmp eq ptr %5, %6
br i1 %cmp.i.not17.i.i.i.i, label %invoke.cont7.i.thread.i, label %invoke.cont4.i.i.i.i

invoke.cont7.i.thread.i: ; preds = %invoke.cont.i.i
store ptr %add.ptr.i.i.i, ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, align 8, !tbaa !13
store ptr %incdec.ptr.i5.i, ptr getelementptr inbounds (%"class.std::__1::vector", ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, i64 0, i32 1), align 8, !tbaa !13
store ptr %add.ptr6.i.i.i, ptr getelementptr inbounds (%"class.std::__1::vector", ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, i64 0, i32 2), align 8, !tbaa !13
br label %_ZNSt3__114__split_bufferIN12_GLOBAL__N_18TestCaseERNS_9allocatorIS2_EEE5clearB7v170000Ev.exit.i.i.i
br i1 %cmp.i.not17.i.i.i.i, label %invoke.cont7.i.i, label %invoke.cont4.i.i.i.i

invoke.cont4.i.i.i.i: ; preds = %invoke.cont.i.i, %invoke.cont4.i.i.i.i
%__first2.val19.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i.i.i, %invoke.cont4.i.i.i.i ], [ %add.ptr.i.i.i, %invoke.cont.i.i ]
Expand All @@ -436,46 +430,51 @@ invoke.cont4.i.i.i.i: ; preds = %invoke.cont.i.i, %i
%7 = load ptr, ptr %label3.i.i.i.i.i.i.i, align 8, !tbaa !14
store ptr %7, ptr %label.i.i.i.i.i.i.i, align 8, !tbaa !14
%cmp.i.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i, %6
br i1 %cmp.i.not.i.i.i.i, label %invoke.cont7.i.i, label %invoke.cont4.i.i.i.i, !llvm.loop !20
br i1 %cmp.i.not.i.i.i.i, label %_ZNSt3__142__uninitialized_allocator_move_if_noexceptB7v170000INS_9allocatorIN12_GLOBAL__N_18TestCaseEEENS_16reverse_iteratorIPS3_EES7_S7_EET2_RT_T0_T1_S8_.exit.loopexit.i.i.i, label %invoke.cont4.i.i.i.i, !llvm.loop !20

invoke.cont7.i.i: ; preds = %invoke.cont4.i.i.i.i
_ZNSt3__142__uninitialized_allocator_move_if_noexceptB7v170000INS_9allocatorIN12_GLOBAL__N_18TestCaseEEENS_16reverse_iteratorIPS3_EES7_S7_EET2_RT_T0_T1_S8_.exit.loopexit.i.i.i: ; preds = %invoke.cont4.i.i.i.i
%.pre.i.i.i = load ptr, ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, align 8, !tbaa !13
%.pre1.i.i.i = load ptr, ptr getelementptr inbounds (%"class.std::__1::vector", ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, i64 0, i32 1), align 8, !tbaa !13
store ptr %incdec.ptr.i.i.i.i.i.i.i.i, ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, align 8, !tbaa !13
br label %invoke.cont7.i.i

invoke.cont7.i.i: ; preds = %_ZNSt3__142__uninitialized_allocator_move_if_noexceptB7v170000INS_9allocatorIN12_GLOBAL__N_18TestCaseEEENS_16reverse_iteratorIPS3_EES7_S7_EET2_RT_T0_T1_S8_.exit.loopexit.i.i.i, %invoke.cont.i.i
%8 = phi ptr [ %5, %invoke.cont.i.i ], [ %.pre1.i.i.i, %_ZNSt3__142__uninitialized_allocator_move_if_noexceptB7v170000INS_9allocatorIN12_GLOBAL__N_18TestCaseEEENS_16reverse_iteratorIPS3_EES7_S7_EET2_RT_T0_T1_S8_.exit.loopexit.i.i.i ]
%9 = phi ptr [ %6, %invoke.cont.i.i ], [ %.pre.i.i.i, %_ZNSt3__142__uninitialized_allocator_move_if_noexceptB7v170000INS_9allocatorIN12_GLOBAL__N_18TestCaseEEENS_16reverse_iteratorIPS3_EES7_S7_EET2_RT_T0_T1_S8_.exit.loopexit.i.i.i ]
%retval.sroa.2.0.copyload.i.i.i.i = phi ptr [ %add.ptr.i.i.i, %invoke.cont.i.i ], [ %incdec.ptr.i.i.i.i.i.i.i.i, %_ZNSt3__142__uninitialized_allocator_move_if_noexceptB7v170000INS_9allocatorIN12_GLOBAL__N_18TestCaseEEENS_16reverse_iteratorIPS3_EES7_S7_EET2_RT_T0_T1_S8_.exit.loopexit.i.i.i ]
store ptr %retval.sroa.2.0.copyload.i.i.i.i, ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, align 8, !tbaa !13
store ptr %incdec.ptr.i5.i, ptr getelementptr inbounds (%"class.std::__1::vector", ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, i64 0, i32 1), align 8, !tbaa !13
store ptr %add.ptr6.i.i.i, ptr getelementptr inbounds (%"class.std::__1::vector", ptr @_ZN12_GLOBAL__N_115ExpectedResultsE, i64 0, i32 2), align 8, !tbaa !13
%cmp.not5.i.i.i.i.i.i = icmp eq ptr %.pre1.i.i.i, %.pre.i.i.i
%cmp.not5.i.i.i.i.i.i = icmp eq ptr %8, %9
br i1 %cmp.not5.i.i.i.i.i.i, label %_ZNSt3__114__split_bufferIN12_GLOBAL__N_18TestCaseERNS_9allocatorIS2_EEE5clearB7v170000Ev.exit.i.i.i, label %while.body.i.i.i.i.i.i

while.body.i.i.i.i.i.i: ; preds = %invoke.cont7.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i
%8 = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i ], [ %.pre1.i.i.i, %invoke.cont7.i.i ]
%incdec.ptr.i.i.i.i.i.i = getelementptr inbounds %"struct.(anonymous namespace)::TestCase", ptr %8, i64 -1
%10 = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i ], [ %8, %invoke.cont7.i.i ]
%incdec.ptr.i.i.i.i.i.i = getelementptr inbounds %"struct.(anonymous namespace)::TestCase", ptr %10, i64 -1
%call3.val.i.i.i.i.i.i = load i8, ptr %incdec.ptr.i.i.i.i.i.i, align 8
%bf.clear.i.i.i.i.i.i.i.i.i.i.i = and i8 %call3.val.i.i.i.i.i.i, 1
%tobool.i.not.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %bf.clear.i.i.i.i.i.i.i.i.i.i.i, 0
br i1 %tobool.i.not.i.i.i.i.i.i.i.i.i.i, label %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i.i.i

if.then.i.i.i.i.i.i.i.i.i.i: ; preds = %while.body.i.i.i.i.i.i
%9 = getelementptr %"struct.(anonymous namespace)::TestCase", ptr %8, i64 -1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2
%call3.val4.i.i.i.i.i.i = load ptr, ptr %9, align 8
%11 = getelementptr %"struct.(anonymous namespace)::TestCase", ptr %10, i64 -1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2
%call3.val4.i.i.i.i.i.i = load ptr, ptr %11, align 8
tail call void @_ZdlPv(ptr noundef %call3.val4.i.i.i.i.i.i) #25
br label %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i

_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i, %while.body.i.i.i.i.i.i
%cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %.pre.i.i.i
%cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %9
br i1 %cmp.not.i.i.i.i.i.i, label %_ZNSt3__114__split_bufferIN12_GLOBAL__N_18TestCaseERNS_9allocatorIS2_EEE5clearB7v170000Ev.exit.i.i.i, label %while.body.i.i.i.i.i.i

_ZNSt3__114__split_bufferIN12_GLOBAL__N_18TestCaseERNS_9allocatorIS2_EEE5clearB7v170000Ev.exit.i.i.i: ; preds = %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i, %invoke.cont7.i.i, %invoke.cont7.i.thread.i
%10 = phi ptr [ %5, %invoke.cont7.i.thread.i ], [ %.pre.i.i.i, %invoke.cont7.i.i ], [ %.pre.i.i.i, %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i ]
%tobool.not.i.i.i = icmp eq ptr %10, null
_ZNSt3__114__split_bufferIN12_GLOBAL__N_18TestCaseERNS_9allocatorIS2_EEE5clearB7v170000Ev.exit.i.i.i: ; preds = %_ZNSt3__116allocator_traitsINS_9allocatorIN12_GLOBAL__N_18TestCaseEEEE7destroyB7v170000IS3_vEEvRS4_PT_.exit.i.i.i.i.i.i, %invoke.cont7.i.i
%tobool.not.i.i.i = icmp eq ptr %9, null
br i1 %tobool.not.i.i.i, label %_ZNSt3__16vectorIN12_GLOBAL__N_18TestCaseENS_9allocatorIS2_EEE9push_backB7v170000ERKS2_.exit, label %if.then.i18.i.i

if.then.i18.i.i: ; preds = %_ZNSt3__114__split_bufferIN12_GLOBAL__N_18TestCaseERNS_9allocatorIS2_EEE5clearB7v170000Ev.exit.i.i.i
tail call void @_ZdlPv(ptr noundef nonnull %10) #25
tail call void @_ZdlPv(ptr noundef nonnull %9) #25
br label %_ZNSt3__16vectorIN12_GLOBAL__N_18TestCaseENS_9allocatorIS2_EEE9push_backB7v170000ERKS2_.exit

lpad.i6.i: ; preds = %_ZNSt3__114__split_bufferIN12_GLOBAL__N_18TestCaseERNS_9allocatorIS2_EEEC2EmmS5_.exit.i.i
%11 = landingpad { ptr, i32 }
%12 = landingpad { ptr, i32 }
cleanup
%tobool.not.i.i = icmp eq ptr %storemerge.i.i.i, null
br i1 %tobool.not.i.i, label %common.resume.i, label %if.then.i.i
Expand Down Expand Up @@ -3263,7 +3262,7 @@ _ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit: ;
br label %if.end

if.end: ; preds = %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit, %if.else
%12 = phi ptr [ %0, %if.else ], [ %.pre177, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%12 = phi ptr [ %3, %if.else ], [ %.pre177, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%13 = phi ptr [ %2, %if.else ], [ %.pre176, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%14 = phi ptr [ %0, %if.else ], [ %7, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%__is_black_24 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %14, i64 0, i32 3
Expand Down Expand Up @@ -3307,14 +3306,13 @@ land.lhs.true32: ; preds = %if.else28
br i1 %tobool34.not, label %if.end56, label %if.else43

if.else43: ; preds = %land.lhs.true32, %if.else28
%__parent_.i.le = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0169, i64 0, i32 2
%__parent_.i103.le188 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%__parent_.i103.le187 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%20 = load ptr, ptr %0, align 8, !tbaa !47
%cmp.i129 = icmp eq ptr %20, %__x.addr.0169
br i1 %cmp.i129, label %if.then45, label %if.end47

if.then45: ; preds = %if.else43
%__right_.i132 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0169, i64 0, i32 1
%__right_.i132 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 1
%21 = load ptr, ptr %__right_.i132, align 8, !tbaa !89
store ptr %21, ptr %0, align 8, !tbaa !47
%cmp5.not.i133 = icmp eq ptr %21, null
Expand All @@ -3323,26 +3321,27 @@ if.then45: ; preds = %if.else43
if.then.i135: ; preds = %if.then45
%__parent_.i.i134 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %21, i64 0, i32 2
store ptr %0, ptr %__parent_.i.i134, align 8, !tbaa !84
%.pre = load ptr, ptr %__parent_.i103.le188, align 8, !tbaa !84
%.pre = load ptr, ptr %__parent_.i103.le187, align 8, !tbaa !84
br label %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141

_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141: ; preds = %if.then45, %if.then.i135
%22 = phi ptr [ %2, %if.then45 ], [ %.pre, %if.then.i135 ]
store ptr %22, ptr %__parent_.i.le, align 8, !tbaa !84
%23 = load ptr, ptr %__parent_.i103.le188, align 8, !tbaa !84
%__parent_7.i137 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 2
store ptr %22, ptr %__parent_7.i137, align 8, !tbaa !84
%23 = load ptr, ptr %__parent_.i103.le187, align 8, !tbaa !84
%24 = load ptr, ptr %23, align 8, !tbaa !47
%cmp.i.i138 = icmp eq ptr %24, %0
%__right_12.i139 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %23, i64 0, i32 1
%__right_12.sink.i140 = select i1 %cmp.i.i138, ptr %23, ptr %__right_12.i139
store ptr %__x.addr.0169, ptr %__right_12.sink.i140, align 8, !tbaa !13
store ptr %20, ptr %__right_12.sink.i140, align 8, !tbaa !13
store ptr %0, ptr %__right_.i132, align 8, !tbaa !89
store ptr %__x.addr.0169, ptr %__parent_.i103.le188, align 8, !tbaa !84
%.pre174 = load ptr, ptr %__parent_.i.le, align 8, !tbaa !84
store ptr %20, ptr %__parent_.i103.le187, align 8, !tbaa !84
%.pre174 = load ptr, ptr %__parent_7.i137, align 8, !tbaa !84
br label %if.end47

if.end47: ; preds = %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141, %if.else43
%25 = phi ptr [ %.pre174, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %2, %if.else43 ]
%26 = phi ptr [ %__x.addr.0169, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %0, %if.else43 ]
%26 = phi ptr [ %20, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit141 ], [ %0, %if.else43 ]
%__is_black_49 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %26, i64 0, i32 3
store i8 1, ptr %__is_black_49, align 8, !tbaa !108
%__is_black_51 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %25, i64 0, i32 3
Expand Down
22 changes: 11 additions & 11 deletions 19.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1037,7 +1037,7 @@ _ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit: ;
br label %if.end

if.end: ; preds = %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit, %if.else
%12 = phi ptr [ %0, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%12 = phi ptr [ %3, %if.else ], [ %.pre191, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%13 = phi ptr [ %2, %if.else ], [ %.pre190, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%14 = phi ptr [ %0, %if.else ], [ %7, %_ZNSt3__118__tree_left_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit ]
%__is_black_31 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %14, i64 0, i32 3
Expand Down Expand Up @@ -1081,14 +1081,13 @@ land.lhs.true41: ; preds = %if.else36
br i1 %tobool43.not, label %if.end70, label %if.else54

if.else54: ; preds = %land.lhs.true41, %if.else36
%__parent_.i.le = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 2
%__parent_.i117.le202 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%__parent_.i117.le201 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %0, i64 0, i32 2
%20 = load ptr, ptr %0, align 8, !tbaa !30
%cmp.i143 = icmp eq ptr %20, %__x.addr.0183
br i1 %cmp.i143, label %if.then56, label %if.end59

if.then56: ; preds = %if.else54
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %__x.addr.0183, i64 0, i32 1
%__right_.i146 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 1
%21 = load ptr, ptr %__right_.i146, align 8, !tbaa !78
store ptr %21, ptr %0, align 8, !tbaa !30
%cmp5.not.i147 = icmp eq ptr %21, null
Expand All @@ -1097,26 +1096,27 @@ if.then56: ; preds = %if.else54
if.then.i149: ; preds = %if.then56
%__parent_.i.i148 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %21, i64 0, i32 2
store ptr %0, ptr %__parent_.i.i148, align 8, !tbaa !35
%.pre = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !35
%.pre = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !35
br label %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155

_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155: ; preds = %if.then56, %if.then.i149
%22 = phi ptr [ %2, %if.then56 ], [ %.pre, %if.then.i149 ]
store ptr %22, ptr %__parent_.i.le, align 8, !tbaa !35
%23 = load ptr, ptr %__parent_.i117.le202, align 8, !tbaa !35
%__parent_7.i151 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %20, i64 0, i32 2
store ptr %22, ptr %__parent_7.i151, align 8, !tbaa !35
%23 = load ptr, ptr %__parent_.i117.le201, align 8, !tbaa !35
%24 = load ptr, ptr %23, align 8, !tbaa !30
%cmp.i.i152 = icmp eq ptr %24, %0
%__right_12.i153 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %23, i64 0, i32 1
%__right_12.sink.i154 = select i1 %cmp.i.i152, ptr %23, ptr %__right_12.i153
store ptr %__x.addr.0183, ptr %__right_12.sink.i154, align 8, !tbaa !15
store ptr %20, ptr %__right_12.sink.i154, align 8, !tbaa !15
store ptr %0, ptr %__right_.i146, align 8, !tbaa !78
store ptr %__x.addr.0183, ptr %__parent_.i117.le202, align 8, !tbaa !35
%.pre188 = load ptr, ptr %__parent_.i.le, align 8, !tbaa !35
store ptr %20, ptr %__parent_.i117.le201, align 8, !tbaa !35
%.pre188 = load ptr, ptr %__parent_7.i151, align 8, !tbaa !35
br label %if.end59

if.end59: ; preds = %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155, %if.else54
%25 = phi ptr [ %.pre188, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %2, %if.else54 ]
%26 = phi ptr [ %__x.addr.0183, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%26 = phi ptr [ %20, %_ZNSt3__119__tree_right_rotateB7v170000IPNS_16__tree_node_baseIPvEEEEvT_.exit155 ], [ %0, %if.else54 ]
%__is_black_62 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %26, i64 0, i32 3
store i8 1, ptr %__is_black_62, align 8, !tbaa !77
%__is_black_65 = getelementptr inbounds %"class.std::__1::__tree_node_base", ptr %25, i64 0, i32 3
Expand Down
Loading