Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 72 additions & 79 deletions bench/abc/optimized/cbaReadBlif.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6389,18 +6389,18 @@ Cba_ManNtk.exit.i: ; preds = %.critedge2, %Cba_Nt
%.phi.trans.insert.i.i.i = getelementptr inbounds nuw i8, ptr %400, i64 80
br label %410

410: ; preds = %495, %.lr.ph.i.i
%indvars.iv.i.i = phi i64 [ 1, %.lr.ph.i.i ], [ %indvars.iv.next.i.i, %495 ]
410: ; preds = %491, %.lr.ph.i.i
%indvars.iv.i.i = phi i64 [ 1, %.lr.ph.i.i ], [ %indvars.iv.next.i.i, %491 ]
%.val11.i.i = load ptr, ptr %404, align 8
%411 = getelementptr inbounds nuw i8, ptr %.val11.i.i, i64 %indvars.iv.i.i
%412 = load i8, ptr %411, align 1
%413 = add i8 %412, -90
%414 = icmp ult i8 %413, -87
br i1 %414, label %495, label %415
br i1 %414, label %491, label %415

415: ; preds = %410
%416 = icmp eq i8 %412, 3
br i1 %416, label %Cba_ObjNtkId.exit.i.i.i.i, label %460
br i1 %416, label %Cba_ObjNtkId.exit.i.i.i.i, label %Cba_ObjIsSeq.exit.i.i

Cba_ObjNtkId.exit.i.i.i.i: ; preds = %415
%.val5.i.i.i.i.i = load i32, ptr %405, align 4
Expand Down Expand Up @@ -6500,100 +6500,93 @@ Vec_IntFillExtra.exit.i: ; preds = %._crit_edge.i.i, %C
%454 = load ptr, ptr %453, align 8
%455 = getelementptr inbounds nuw i8, ptr %454, i64 20
%456 = load i8, ptr %455, align 4
%457 = lshr i8 %456, 2
%458 = and i8 %457, 1
%459 = zext nneg i8 %458 to i32
br label %Cba_ObjIsSeq.exit.i.i

460: ; preds = %415
%461 = add nsw i8 %412, -76
%462 = icmp ult i8 %461, 12
%463 = zext i1 %462 to i32
br label %Cba_ObjIsSeq.exit.i.i

Cba_ObjIsSeq.exit.i.i: ; preds = %460, %Vec_IntFillExtra.exit.i
%464 = phi i32 [ %459, %Vec_IntFillExtra.exit.i ], [ %463, %460 ]
%.not10.i.i = icmp eq i32 %464, 0
br i1 %.not10.i.i, label %495, label %465

465: ; preds = %Cba_ObjIsSeq.exit.i.i
%466 = load i32, ptr %409, align 4
%467 = load i32, ptr %408, align 8
%468 = icmp eq i32 %466, %467
br i1 %468, label %469, label %.Vec_IntGrow.exit10_crit_edge.i.i.i

.Vec_IntGrow.exit10_crit_edge.i.i.i: ; preds = %465
%457 = and i8 %456, 4
%458 = icmp eq i8 %457, 0
br i1 %458, label %491, label %461

Cba_ObjIsSeq.exit.i.i: ; preds = %415
%459 = add nsw i8 %412, -88
%460 = icmp ult i8 %459, -12
br i1 %460, label %491, label %461

461: ; preds = %Cba_ObjIsSeq.exit.i.i, %Vec_IntFillExtra.exit.i
%462 = load i32, ptr %409, align 4
%463 = load i32, ptr %408, align 8
%464 = icmp eq i32 %462, %463
br i1 %464, label %465, label %.Vec_IntGrow.exit10_crit_edge.i.i.i

.Vec_IntGrow.exit10_crit_edge.i.i.i: ; preds = %461
%.pre.i.i.i = load ptr, ptr %.phi.trans.insert.i.i.i, align 8
br label %Vec_IntPush.exit.i.i

469: ; preds = %465
%470 = icmp slt i32 %466, 16
br i1 %470, label %471, label %478
465: ; preds = %461
%466 = icmp slt i32 %462, 16
br i1 %466, label %467, label %474

471: ; preds = %469
%472 = load ptr, ptr %.phi.trans.insert.i.i.i, align 8
%.not9.i.i.i.i = icmp eq ptr %472, null
br i1 %.not9.i.i.i.i, label %475, label %473
467: ; preds = %465
%468 = load ptr, ptr %.phi.trans.insert.i.i.i, align 8
%.not9.i.i.i.i = icmp eq ptr %468, null
br i1 %.not9.i.i.i.i, label %471, label %469

473: ; preds = %471
%474 = call dereferenceable_or_null(64) ptr @realloc(ptr noundef nonnull %472, i64 noundef 64) #21
469: ; preds = %467
%470 = call dereferenceable_or_null(64) ptr @realloc(ptr noundef nonnull %468, i64 noundef 64) #21
br label %Vec_IntGrow.exit.i.i.i

475: ; preds = %471
%476 = call noalias dereferenceable_or_null(64) ptr @malloc(i64 noundef 64) #19
471: ; preds = %467
%472 = call noalias dereferenceable_or_null(64) ptr @malloc(i64 noundef 64) #19
br label %Vec_IntGrow.exit.i.i.i

Vec_IntGrow.exit.i.i.i: ; preds = %475, %473
%477 = phi ptr [ %474, %473 ], [ %476, %475 ]
store ptr %477, ptr %.phi.trans.insert.i.i.i, align 8
Vec_IntGrow.exit.i.i.i: ; preds = %471, %469
%473 = phi ptr [ %470, %469 ], [ %472, %471 ]
store ptr %473, ptr %.phi.trans.insert.i.i.i, align 8
store i32 16, ptr %408, align 8
br label %Vec_IntPush.exit.i.i

478: ; preds = %469
%479 = shl nuw nsw i32 %466, 1
%480 = load ptr, ptr %.phi.trans.insert.i.i.i, align 8
%.not9.i9.i.i.i = icmp eq ptr %480, null
%481 = zext nneg i32 %479 to i64
%482 = shl nuw nsw i64 %481, 2
br i1 %.not9.i9.i.i.i, label %485, label %483

483: ; preds = %478
%484 = call ptr @realloc(ptr noundef nonnull %480, i64 noundef %482) #21
br label %487

485: ; preds = %478
%486 = call noalias ptr @malloc(i64 noundef %482) #19
br label %487

487: ; preds = %485, %483
%488 = phi ptr [ %484, %483 ], [ %486, %485 ]
store ptr %488, ptr %.phi.trans.insert.i.i.i, align 8
store i32 %479, ptr %408, align 8
474: ; preds = %465
%475 = shl nuw nsw i32 %462, 1
%476 = load ptr, ptr %.phi.trans.insert.i.i.i, align 8
%.not9.i9.i.i.i = icmp eq ptr %476, null
%477 = zext nneg i32 %475 to i64
%478 = shl nuw nsw i64 %477, 2
br i1 %.not9.i9.i.i.i, label %481, label %479

479: ; preds = %474
%480 = call ptr @realloc(ptr noundef nonnull %476, i64 noundef %478) #21
br label %483

481: ; preds = %474
%482 = call noalias ptr @malloc(i64 noundef %478) #19
br label %483

483: ; preds = %481, %479
%484 = phi ptr [ %480, %479 ], [ %482, %481 ]
store ptr %484, ptr %.phi.trans.insert.i.i.i, align 8
store i32 %475, ptr %408, align 8
br label %Vec_IntPush.exit.i.i

Vec_IntPush.exit.i.i: ; preds = %487, %Vec_IntGrow.exit.i.i.i, %.Vec_IntGrow.exit10_crit_edge.i.i.i
%489 = phi ptr [ %.pre.i.i.i, %.Vec_IntGrow.exit10_crit_edge.i.i.i ], [ %488, %487 ], [ %477, %Vec_IntGrow.exit.i.i.i ]
%490 = load i32, ptr %409, align 4
%491 = add nsw i32 %490, 1
store i32 %491, ptr %409, align 4
%492 = sext i32 %490 to i64
%493 = getelementptr inbounds i32, ptr %489, i64 %492
%494 = trunc nuw nsw i64 %indvars.iv.i.i to i32
store i32 %494, ptr %493, align 4
br label %495

495: ; preds = %Vec_IntPush.exit.i.i, %Cba_ObjIsSeq.exit.i.i, %410
Vec_IntPush.exit.i.i: ; preds = %483, %Vec_IntGrow.exit.i.i.i, %.Vec_IntGrow.exit10_crit_edge.i.i.i
%485 = phi ptr [ %.pre.i.i.i, %.Vec_IntGrow.exit10_crit_edge.i.i.i ], [ %484, %483 ], [ %473, %Vec_IntGrow.exit.i.i.i ]
%486 = load i32, ptr %409, align 4
%487 = add nsw i32 %486, 1
store i32 %487, ptr %409, align 4
%488 = sext i32 %486 to i64
%489 = getelementptr inbounds i32, ptr %485, i64 %488
%490 = trunc nuw nsw i64 %indvars.iv.i.i to i32
store i32 %490, ptr %489, align 4
br label %491

491: ; preds = %Vec_IntPush.exit.i.i, %Cba_ObjIsSeq.exit.i.i, %Vec_IntFillExtra.exit.i, %410
%indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1
%.val.i6.i = load i32, ptr %402, align 4
%496 = sext i32 %.val.i6.i to i64
%497 = icmp slt i64 %indvars.iv.next.i.i, %496
br i1 %497, label %410, label %Cba_NtkPrepareSeq.exit.i, !llvm.loop !33
%492 = sext i32 %.val.i6.i to i64
%493 = icmp slt i64 %indvars.iv.next.i.i, %492
br i1 %493, label %410, label %Cba_NtkPrepareSeq.exit.i, !llvm.loop !33

Cba_NtkPrepareSeq.exit.i: ; preds = %495, %.preheader.i.i, %Cba_ManNtk.exit.i
Cba_NtkPrepareSeq.exit.i: ; preds = %491, %.preheader.i.i, %Cba_ManNtk.exit.i
%indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1
%.val.i62 = load i32, ptr %51, align 4
%498 = sext i32 %.val.i62 to i64
%.not.not.i = icmp slt i64 %indvars.iv.next.i, %498
%494 = sext i32 %.val.i62 to i64
%.not.not.i = icmp slt i64 %indvars.iv.next.i, %494
br i1 %.not.not.i, label %Cba_ManNtk.exit.i, label %Cba_ManPrepareSeq.exit, !llvm.loop !34

Cba_ManPrepareSeq.exit: ; preds = %Cba_NtkPrepareSeq.exit.i, %.critedge2
Expand Down
8 changes: 3 additions & 5 deletions bench/abc/optimized/cmdUtils.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -579,11 +579,10 @@ define range(i32 0, 2) i32 @CmdApplyAlias(ptr noundef %0, ptr nocapture noundef

12: ; preds = %.lr.ph187, %._crit_edge181
%.0185 = phi ptr [ %9, %.lr.ph187 ], [ %.2.lcssa, %._crit_edge181 ]
%.0110184 = phi i32 [ 0, %.lr.ph187 ], [ %spec.select, %._crit_edge181 ]
%.0110184 = phi i1 [ true, %.lr.ph187 ], [ %26, %._crit_edge181 ]
%.0112183 = phi i32 [ %10, %.lr.ph187 ], [ %.2114.lcssa, %._crit_edge181 ]
%13 = icmp ne i32 %.0112183, 0
%.not = icmp eq i32 %.0110184, 0
%or.cond = select i1 %13, i1 %.not, i1 false
%or.cond = select i1 %13, i1 %.0110184, i1 false
br i1 %or.cond, label %14, label %.loopexit154

14: ; preds = %12
Expand All @@ -600,8 +599,7 @@ define range(i32 0, 2) i32 @CmdApplyAlias(ptr noundef %0, ptr nocapture noundef
%23 = load ptr, ptr %22, align 8
%24 = load ptr, ptr %23, align 8
%25 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %20, ptr noundef nonnull dereferenceable(1) %24) #25
%26 = icmp eq i32 %25, 0
%spec.select = zext i1 %26 to i32
%26 = icmp ne i32 %25, 0
%.not129 = icmp eq ptr %20, null
br i1 %.not129, label %28, label %27

Expand Down
72 changes: 35 additions & 37 deletions bench/abc/optimized/cuddApa.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -619,7 +619,7 @@ define range(i32 0, 2) i32 @Cudd_ApaPrintDecimal(ptr nocapture noundef %0, i32 n
%8 = shl nsw i64 %7, 2
%9 = tail call noalias noundef ptr @malloc(i64 noundef %8) #17
%10 = icmp eq ptr %9, null
br i1 %10, label %46, label %11
br i1 %10, label %43, label %11

11: ; preds = %3
%12 = add i32 %6, 1
Expand All @@ -646,7 +646,7 @@ Cudd_ApaCopy.exit.thread: ; preds = %16
._crit_edge.thread67: ; preds = %Cudd_ApaCopy.exit.thread
%21 = zext i32 %12 to i64
tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %14, i8 0, i64 %21, i1 false)
br label %.lr.ph57.preheader
br label %.lr.ph58.preheader

.lr.ph.i44.us.preheader: ; preds = %Cudd_ApaCopy.exit
%wide.trip.count.i45 = zext nneg i32 %1 to i64
Expand Down Expand Up @@ -679,53 +679,51 @@ Cudd_ApaCopy.exit.thread: ; preds = %16
store i8 %32, ptr %33, align 1
%indvars.iv.next = add nsw i64 %indvars.iv, -1
%34 = icmp sgt i64 %indvars.iv, 0
br i1 %34, label %.lr.ph.i44.us, label %.lr.ph57.preheader, !llvm.loop !15
br i1 %34, label %.lr.ph.i44.us, label %.lr.ph58.preheader, !llvm.loop !15

._crit_edge.thread: ; preds = %Cudd_ApaCopy.exit.thread, %Cudd_ApaCopy.exit
tail call void @free(ptr noundef nonnull %9) #18
br label %.sink.split

.lr.ph57.preheader: ; preds = %._crit_edge.loopexit.i.us, %._crit_edge.thread67
.lr.ph58.preheader: ; preds = %._crit_edge.loopexit.i.us, %._crit_edge.thread67
tail call void @free(ptr noundef nonnull %9) #18
%35 = zext nneg i32 %6 to i64
%wide.trip.count = zext i32 %12 to i64
br label %.lr.ph57
br label %.lr.ph58

.lr.ph57: ; preds = %.lr.ph57.preheader, %44
%indvars.iv62 = phi i64 [ 0, %.lr.ph57.preheader ], [ %indvars.iv.next63, %44 ]
%.03855 = phi i32 [ 1, %.lr.ph57.preheader ], [ %45, %44 ]
%.not42 = icmp eq i32 %.03855, 0
%.phi.trans.insert = getelementptr inbounds nuw i8, ptr %14, i64 %indvars.iv62
.lr.ph58: ; preds = %.lr.ph58.preheader, %42
%indvars.iv63 = phi i64 [ 0, %.lr.ph58.preheader ], [ %indvars.iv.next64, %42 ]
%.03856 = phi i1 [ false, %.lr.ph58.preheader ], [ %.not4351, %42 ]
%.phi.trans.insert = getelementptr inbounds nuw i8, ptr %14, i64 %indvars.iv63
%.pre = load i8, ptr %.phi.trans.insert, align 1
br i1 %.not42, label %.thread, label %36

36: ; preds = %.lr.ph57
%37 = icmp eq i8 %.pre, 0
%38 = zext i1 %37 to i32
%39 = icmp ne i64 %indvars.iv62, %35
%or.cond.not = select i1 %37, i1 %39, i1 false
br i1 %or.cond.not, label %44, label %.thread

.thread: ; preds = %.lr.ph57, %36
%40 = phi i32 [ %38, %36 ], [ 0, %.lr.ph57 ]
%41 = zext i8 %.pre to i32
%42 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.1, i32 noundef %41) #18
%43 = icmp eq i32 %42, -1
br i1 %43, label %.sink.split, label %44

44: ; preds = %36, %.thread
%45 = phi i32 [ %38, %36 ], [ %40, %.thread ]
%indvars.iv.next63 = add nuw nsw i64 %indvars.iv62, 1
%exitcond.not = icmp eq i64 %indvars.iv.next63, %wide.trip.count
br i1 %exitcond.not, label %.sink.split, label %.lr.ph57, !llvm.loop !16

.sink.split: ; preds = %44, %.thread, %._crit_edge.thread, %11
%.sink = phi ptr [ %9, %11 ], [ %14, %._crit_edge.thread ], [ %14, %.thread ], [ %14, %44 ]
%.0.ph = phi i32 [ 0, %11 ], [ 1, %._crit_edge.thread ], [ 1, %44 ], [ 0, %.thread ]
br i1 %.03856, label %.thread, label %36

36: ; preds = %.lr.ph58
%37 = icmp ne i8 %.pre, 0
%38 = icmp eq i64 %indvars.iv63, %35
%or.cond = select i1 %37, i1 true, i1 %38
br i1 %or.cond, label %.thread, label %42

.thread: ; preds = %.lr.ph58, %36
%.not4352 = phi i1 [ %37, %36 ], [ true, %.lr.ph58 ]
%39 = zext i8 %.pre to i32
%40 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %0, ptr noundef nonnull @.str.1, i32 noundef %39) #18
%41 = icmp eq i32 %40, -1
br i1 %41, label %.sink.split, label %42

42: ; preds = %36, %.thread
%.not4351 = phi i1 [ false, %36 ], [ %.not4352, %.thread ]
%indvars.iv.next64 = add nuw nsw i64 %indvars.iv63, 1
%exitcond.not = icmp eq i64 %indvars.iv.next64, %wide.trip.count
br i1 %exitcond.not, label %.sink.split, label %.lr.ph58, !llvm.loop !16

.sink.split: ; preds = %42, %.thread, %._crit_edge.thread, %11
%.sink = phi ptr [ %9, %11 ], [ %14, %._crit_edge.thread ], [ %14, %.thread ], [ %14, %42 ]
%.0.ph = phi i32 [ 0, %11 ], [ 1, %._crit_edge.thread ], [ 1, %42 ], [ 0, %.thread ]
tail call void @free(ptr noundef nonnull %.sink) #18
br label %46
br label %43

46: ; preds = %.sink.split, %3
43: ; preds = %.sink.split, %3
%.0 = phi i32 [ 0, %3 ], [ %.0.ph, %.sink.split ]
ret i32 %.0
}
Expand Down
Loading