Skip to content
Open
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
60 changes: 33 additions & 27 deletions bench/abc/optimized/cbaBlast.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1620,35 +1620,41 @@ declare i32 @Gia_ManHashXor(ptr noundef, i32 noundef, i32 noundef) local_unnamed

; Function Attrs: nounwind uwtable
define i32 @Cba_BlastLess2(ptr noundef %0, ptr noundef readonly captures(none) %1, ptr noundef readonly captures(none) %2, i32 noundef %3) local_unnamed_addr #0 {
%5 = zext i32 %3 to i64
br label %6
%5 = icmp sgt i32 %3, 0
br i1 %5, label %6, label %._crit_edge25

6: ; preds = %9, %4
%indvars.iv = phi i64 [ %10, %9 ], [ %5, %4 ]
%.019 = phi i32 [ %21, %9 ], [ 0, %4 ]
%.0 = phi i32 [ %17, %9 ], [ 0, %4 ]
%7 = trunc nuw i64 %indvars.iv to i32
%8 = icmp sgt i32 %7, 0
br i1 %8, label %9, label %23

9: ; preds = %6
%10 = add nsw i64 %indvars.iv, -1
%11 = getelementptr inbounds nuw i32, ptr %1, i64 %10
%12 = load i32, ptr %11, align 4, !tbaa !11
%13 = xor i32 %12, 1
%14 = getelementptr inbounds nuw i32, ptr %2, i64 %10
6: ; preds = %4
%6 = zext nneg i32 %3 to i64
br label %14

7:; preds = %.lr.ph
%8 = icmp samesign ugt i64 %indvars.iv, 1
br i1 %8, label %9, label %._crit_edge25, !llvm.loop !54

9: ; preds = %6, %7
%indvars.iv = phi i64 [ %6, %.lr.ph.preheader ], [ %indvars.iv.next, %7 ]
%.024 = phi i32 [ 0, %.lr.ph.preheader ], [ %20, %7 ]
%.01923 = phi i32 [ 0, %.lr.ph.preheader ], [ %19, %7 ]
%indvars.iv.next = add nsw i64 %indvars.iv, -1
%14 = getelementptr inbounds nuw i32, ptr %1, i64 %indvars.iv.next
%15 = load i32, ptr %14, align 4, !tbaa !11
%16 = tail call i32 @Gia_ManHashAnd(ptr noundef %0, i32 noundef %13, i32 noundef %15) #21
%17 = tail call i32 @Gia_ManHashMux(ptr noundef %0, i32 noundef %.019, i32 noundef %.0, i32 noundef %16) #21
%18 = load i32, ptr %11, align 4, !tbaa !11
%19 = load i32, ptr %14, align 4, !tbaa !11
%20 = tail call i32 @Gia_ManHashXor(ptr noundef %0, i32 noundef %18, i32 noundef %19) #21
%21 = tail call i32 @Gia_ManHashOr(ptr noundef %0, i32 noundef %.019, i32 noundef %20) #21
%22 = icmp eq i32 %21, 1
br i1 %22, label %23, label %6, !llvm.loop !54

23: ; preds = %9, %6
%.1 = phi i32 [ %17, %9 ], [ %.0, %6 ]
%11 = xor i32 %10, 1
%12 = getelementptr inbounds nuw i32, ptr %2, i64 %indvars.iv.next
%18 = load i32, ptr %12, align 4, !tbaa !11
%14 = tail call i32 @Gia_ManHashAnd(ptr noundef %0, i32 noundef %11, i32 noundef %13) #21
%20 = tail call i32 @Gia_ManHashMux(ptr noundef %0, i32 noundef %.01923, i32 noundef %.024, i32 noundef %14) #21
%16 = load i32, ptr %14, align 4, !tbaa !11
%17 = load i32, ptr %12, align 4, !tbaa !11
%18 = tail call i32 @Gia_ManHashXor(ptr noundef %0, i32 noundef %16, i32 noundef %17) #21
%19 = tail call i32 @Gia_ManHashOr(ptr noundef %0, i32 noundef %.01923, i32 noundef %18) #21
%20 = icmp eq i32 %19, 1
br i1 %20, label %._crit_edge, label %7, !llvm.loop !54

._crit_edge: ; preds = %.lr.ph
br label %._crit_edge25, !llvm.loop !54

._crit_edge25: ; preds = %7, %._crit_edge, %4
%.1 = phi i32 [ %15, %._crit_edge ], [ 0, %4 ], [ %15, %7 ]
ret i32 %.1
}

Expand Down
29 changes: 17 additions & 12 deletions bench/abc/optimized/dauGia.ll
Original file line number Diff line number Diff line change
Expand Up @@ -17,34 +17,39 @@ target triple = "x86_64-pc-linux-gnu"

; Function Attrs: nounwind uwtable
define i32 @Dau_DsdToGiaCompose_rec(ptr noundef %0, i64 noundef %1, ptr noundef %2, i32 noundef %3) local_unnamed_addr #0 {
switch i64 %1, label %tailrecurse.preheader [
switch i64 %1, label %.split [
i64 0, label %.loopexit
i64 -1, label %40
]

tailrecurse.preheader: ; preds = %4
%5 = sext i32 %3 to i64
br label %tailrecurse
%5 = add nsw i32 %3, -1
%6 = icmp eq i32 %5, 0
br i1 %6, label %tailrecurse._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader: ; preds = %.split
%7 = sext i32 %5 to i64
br label %.lr.ph

tailrecurse: ; preds = %tailrecurse.preheader, %12
%indvars.iv = phi i64 [ %5, %tailrecurse.preheader ], [ %indvars.iv.next, %12 ]
tailrecurse: ; preds = %.lr.ph
%indvars.iv.next = add nsw i64 %indvars.iv, -1
%6 = icmp eq i64 %indvars.iv.next, 0
br i1 %6, label %7, label %12

7: ; preds = %tailrecurse
7: ; preds = %tailrecurse, %.split
%8 = load i32, ptr %2, align 4, !tbaa !3
%9 = icmp eq i64 %1, 6148914691236517205
%10 = zext i1 %9 to i32
%11 = xor i32 %8, %10
br label %40

12: ; preds = %tailrecurse
%13 = trunc nsw i64 %indvars.iv.next to i32
12: ; preds = %.lr.ph.preheader, %tailrecurse
%indvars.iv = phi i64 [ %7, %.lr.ph.preheader ], [ %indvars.iv.next, %tailrecurse ]
%13 = trunc nsw i64 %indvars.iv to i32
%14 = shl nuw i32 1, %13
%15 = zext nneg i32 %14 to i64
%16 = lshr i64 %1, %15
%17 = getelementptr inbounds i64, ptr @s_Truths6Neg, i64 %indvars.iv.next
%17 = getelementptr inbounds i64, ptr @s_Truths6Neg, i64 %indvars.iv
%18 = load i64, ptr %17, align 8, !tbaa !7
%19 = xor i64 %16, %1
%20 = and i64 %18, %19
Expand All @@ -56,7 +61,7 @@ tailrecurse: ; preds = %tailrecurse.prehead
%23 = shl i64 %22, %15
%24 = or i64 %23, %22
%25 = tail call i32 @Dau_DsdToGiaCompose_rec(ptr noundef %0, i64 noundef %24, ptr noundef %2, i32 noundef %13)
%26 = getelementptr inbounds i64, ptr @s_Truths6, i64 %indvars.iv.next
%26 = getelementptr inbounds i64, ptr @s_Truths6, i64 %indvars.iv
%27 = load i64, ptr %26, align 8, !tbaa !7
%28 = and i64 %27, %1
%29 = lshr i64 %28, %15
Expand All @@ -65,7 +70,7 @@ tailrecurse: ; preds = %tailrecurse.prehead
%32 = getelementptr inbounds nuw i8, ptr %0, i64 40
%33 = load ptr, ptr %32, align 8, !tbaa !9
%.not34 = icmp eq ptr %33, null
%34 = getelementptr inbounds i32, ptr %2, i64 %indvars.iv.next
%34 = getelementptr inbounds i32, ptr %2, i64 %indvars.iv
%35 = load i32, ptr %34, align 4, !tbaa !3
br i1 %.not34, label %38, label %36

Expand All @@ -81,7 +86,7 @@ tailrecurse: ; preds = %tailrecurse.prehead
br label %40

40: ; preds = %4, %.loopexit, %38, %36, %7
%.0 = phi i32 [ %11, %7 ], [ %37, %36 ], [ %39, %38 ], [ 0, %.loopexit ], [ 1, %4 ]
%.0 = phi i32 [ %11, %tailrecurse._crit_edge ], [ %37, %36 ], [ %39, %38 ], [ 0, %.loopexit ], [ 1, %4 ]
ret i32 %.0
}

Expand Down
44 changes: 27 additions & 17 deletions bench/abc/optimized/extraUtilFile.ll
Original file line number Diff line number Diff line change
Expand Up @@ -292,27 +292,37 @@ define noundef nonnull ptr @Extra_FileInTheSameDir(ptr noundef readonly captures
tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 16 @Extra_FileInTheSameDir.pBuffer, ptr nonnull align 1 %0, i64 %3, i1 false)
%4 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #23
%5 = getelementptr inbounds nuw i8, ptr @Extra_FileInTheSameDir.pBuffer, i64 %4
br label %6
%.not14 = icmp slt i64 %4, 1
br i1 %.not14, label %._crit_edge19, label %.lr.ph.preheader

6: ; preds = %7, %2
%.pn = phi ptr [ %5, %2 ], [ %.0, %7 ]
%.0 = getelementptr inbounds i8, ptr %.pn, i64 -1
%.not = icmp ult ptr %.0, @Extra_FileInTheSameDir.pBuffer
br i1 %.not, label %9, label %7
6: ; preds = %2
%.013 = getelementptr inbounds i8, ptr %5, i64 -1
br label %.lr.ph

7: ; preds = %6
%8 = load i8, ptr %.0, align 1, !tbaa !3
switch i8 %8, label %6 [
i8 92, label %9
i8 47, label %9
7: ; preds = %.lr.ph
%.0 = getelementptr inbounds i8, ptr %.016, i64 -1
%.not = icmp ult ptr %.0, @Extra_FileInTheSameDir.pBuffer
br i1 %.not, label %._crit_edge19, label %.lr.ph, !llvm.loop !11

.lr.ph: ; preds = %.lr.ph.preheader, %6
%.016 = phi ptr [ %.0, %6 ], [ %.013, %.lr.ph.preheader ]
%.pn15 = phi ptr [ %.016, %6 ], [ %5, %.lr.ph.preheader ]
%7 = load i8, ptr %.016, align 1, !tbaa !3
switch i8 %7, label %6 [
i8 92, label %._crit_edge
i8 47, label %._crit_edge
], !llvm.loop !11

9: ; preds = %7, %7, %6
%10 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #23
tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %.pn, ptr nonnull align 1 %1, i64 %10, i1 false)
%11 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #23
%12 = getelementptr inbounds nuw i8, ptr %.pn, i64 %11
store i8 0, ptr %12, align 1, !tbaa !3
9: ; preds = %.lr.ph, %.lr.ph
br label %._crit_edge19, !llvm.loop !11

._crit_edge19:; preds = %6, %9, %2
%.pn.lcssa = phi ptr [ %.pn15, %._crit_edge ], [ %5, %2 ], [ %.016, %6 ]
%8 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #23
tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %.pn.lcssa, ptr nonnull align 1 %1, i64 %8, i1 false)
%9 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #23
%10 = getelementptr inbounds nuw i8, ptr %.pn.lcssa, i64 %9
store i8 0, ptr %10, align 1, !tbaa !3
ret ptr @Extra_FileInTheSameDir.pBuffer
}

Expand Down
26 changes: 15 additions & 11 deletions bench/abseil-cpp/optimized/cord_rep_btree_navigator.ll
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,22 @@ define dso_local { ptr, i64 } @_ZN4absl13cord_internal21CordRepBtreeNavigator4Sk
br i1 %21, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader: ; preds = %14
%22 = sext i32 %.03865 to i64
%smax = tail call i32 @llvm.smax.i32(i32 %.03865, i32 %11)
%wide.trip.count = sext i32 %smax to i64
br label %.lr.ph
%exitcond.not133.not = icmp slt i32 %.03865, %11
br i1 %exitcond.not133.not, label %.lr.ph135, label %.loopexit50

.lr.ph135: ; preds = %.lr.ph.preheader
%22 = sext i32 %.03865 to i64
br label %23

.lr.ph: ; preds = %.lr.ph.preheader, %23
%indvars.iv = phi i64 [ %22, %.lr.ph.preheader ], [ %indvars.iv.next, %23 ]
%exitcond.not = icmp eq i64 %indvars.iv, %wide.trip.count
br i1 %exitcond.not, label %.loopexit50, label %23
.lr.ph: ; preds = %23
%exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
br i1 %exitcond.not, label %.loopexit50, label %23, !llvm.loop !19

23: ; preds = %.lr.ph
%indvars.iv.next = add nsw i64 %indvars.iv, 1
23: ; preds = %.lr.ph135, %.lr.ph
%indvars.iv134 = phi i64 [ %22, %.lr.ph135 ], [ %indvars.iv.next, %.lr.ph ]
%indvars.iv.next = add nsw i64 %indvars.iv134, 1
%24 = getelementptr inbounds ptr, ptr %6, i64 %indvars.iv.next
%25 = load ptr, ptr %24, align 8, !tbaa !7
%26 = getelementptr inbounds i8, ptr %3, i64 %indvars.iv.next
Expand Down Expand Up @@ -145,9 +149,9 @@ define dso_local { ptr, i64 } @_ZN4absl13cord_internal21CordRepBtreeNavigator4Sk
store i8 %51, ptr %3, align 4, !tbaa !4
br label %.loopexit50

.loopexit50: ; preds = %.lr.ph, %._crit_edge89
%.sroa.0.0 = phi ptr [ %.1.lcssa, %._crit_edge89 ], [ null, %.lr.ph ]
%.sroa.3.0 = phi i64 [ %.142.lcssa, %._crit_edge89 ], [ %16, %.lr.ph ]
.loopexit50: ; preds = %.lr.ph.preheader, %.lr.ph, %._crit_edge89
%.sroa.0.0 = phi ptr [ %.1.lcssa, %._crit_edge89 ], [ null, %.lr.ph ], [ null, %.lr.ph.preheader ]
%.sroa.3.0 = phi i64 [ %.142.lcssa, %._crit_edge89 ], [ %16, %.lr.ph ], [ %16, %.lr.ph.preheader ]
%.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0
%.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %.sroa.3.0, 1
ret { ptr, i64 } %.fca.1.insert
Expand Down
39 changes: 20 additions & 19 deletions bench/actix-rs/optimized/1a89q5mj3jl9opyq.ll
Original file line number Diff line number Diff line change
Expand Up @@ -677,14 +677,11 @@ define internal fastcc void @"_ZN4core3ptr123drop_in_place$LT$alloc..vec..in_pla
%16 = icmp ult i64 %15, -9223372036854775807
tail call void @llvm.assume(i1 %16)
%17 = icmp eq i64 %13, 0
br i1 %17, label %.body.i.i.preheader, label %18

.body.i.i.preheader: ; preds = %18, %10
br label %.body.i.i
br i1 %17, label %.body.i.i, label %18

18: ; preds = %10
tail call void @__rust_dealloc(ptr noundef nonnull %.val8.i.i, i64 noundef range(i64 1, -9223372036854775808) %13, i64 noundef range(i64 1, -9223372036854775807) %15) #24, !noalias !276
br label %.body.i.i.preheader
br label %.body.i.i

19: ; preds = %.lr.ph.i.i
%20 = getelementptr inbounds nuw i8, ptr %.val9.i.i, i64 8
Expand All @@ -704,24 +701,28 @@ define internal fastcc void @"_ZN4core3ptr123drop_in_place$LT$alloc..vec..in_pla
%27 = icmp eq i64 %7, %4
br i1 %27, label %"_ZN89_$LT$alloc..vec..in_place_drop..InPlaceDrop$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h199f6b020ba2db4fE.exit", label %.lr.ph.i.i

.body.i.i: ; preds = %.body.i.i.preheader, %29
%.1.i.i = phi i64 [ %31, %29 ], [ %7, %.body.i.i.preheader ]
%28 = icmp eq i64 %.1.i.i, %4
br i1 %28, label %33, label %29

29: ; preds = %.body.i.i
%30 = getelementptr inbounds { { { { ptr, ptr } }, {} }, {} }, ptr %.0.val, i64 %.1.i.i
%31 = add i64 %.1.i.i, 1
%.val.i.i = load ptr, ptr %30, align 8, !alias.scope !276, !noundef !7
%32 = getelementptr i8, ptr %30, i64 8
%.val7.i.i = load ptr, ptr %32, align 8, !alias.scope !276, !nonnull !7, !align !22, !noundef !7
.body.i.i: ; preds = %.lr.ph12.i.i
%29 = add i64 %.111.i.i, 1
%28 = icmp eq i64 %29, %4
br i1 %28, label %33, label %.lr.ph12.i.i

29: ; preds = %18, %10
%31 = icmp eq i64 %7, %4
br i1 %31, label %33, label %.lr.ph12.i.i

.lr.ph12.i.i:; preds = %.body.i.i, %28
%.111.i.i = phi i64 [ %29, %28 ], [ %7, %.body.i.i ]
%32 = getelementptr inbounds { { { { ptr, ptr } }, {} }, {} }, ptr %.0.val, i64 %.111.i.i
%.val.i.i = load ptr, ptr %32, align 8, !alias.scope !276, !noundef !7
%33 = getelementptr i8, ptr %32, i64 8
%.val7.i.i = load ptr, ptr %33, align 8, !alias.scope !276, !nonnull !7, !align !22, !noundef !7
invoke fastcc void @"_ZN4core3ptr77drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$actix_web..guard..Guard$GT$$GT$17ha6966e6e168ed420E"(ptr %.val.i.i, ptr nonnull %.val7.i.i) #27
to label %.body.i.i unwind label %34, !noalias !276
to label %28 unwind label %34, !noalias !276

33: ; preds = %.body.i.i
33: ; preds = %28, %.body.i.i
resume { ptr, i32 } %11

34: ; preds = %29
34: ; preds = %.lr.ph12.i.i
%35 = landingpad { ptr, i32 }
filter [0 x ptr] zeroinitializer
tail call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #26, !noalias !276
Expand Down
19 changes: 10 additions & 9 deletions bench/actix-rs/optimized/1kr0tdq4l6v38mbk.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5522,20 +5522,21 @@ define void @_ZN9actix_web7request15HttpRequestPool5clear17h05fc4c2a5dccbeffE(pt
%23 = icmp eq i64 %11, %8
br i1 %23, label %"_ZN4core3ptr88drop_in_place$LT$$u5b$alloc..rc..Rc$LT$actix_web..request..HttpRequestInner$GT$$u5d$$GT$17hbf08865e40507a4aE.exit.loopexit", label %.lr.ph.i

24: ; preds = %28, %26
%.1.i = phi i64 [ %11, %26 ], [ %30, %28 ]
%25 = icmp eq i64 %.1.i, %8
24: ; preds = %28
%25 = add i64 %.18.i, 1
%25 = icmp eq i64 %25, %8
br i1 %25, label %36, label %28

26: ; preds = %16
%27 = landingpad { ptr, i32 }
cleanup
br label %24
%29 = icmp eq i64 %11, %8
br i1 %29, label %.loopexit, label %.lr.ph10.i

28: ; preds = %24
%29 = getelementptr inbounds ptr, ptr %6, i64 %.1.i
%30 = add i64 %.1.i, 1
invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..rc..Rc$LT$actix_web..request..HttpRequestInner$GT$$GT$17h04a2a33fc96f09d7E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %29) #31
28: ; preds = %27, %24
%.18.i = phi i64 [ %25, %24 ], [ %11, %27 ]
%30 = getelementptr inbounds ptr, ptr %6, i64 %.18.i
invoke void @"_ZN4core3ptr78drop_in_place$LT$alloc..rc..Rc$LT$actix_web..request..HttpRequestInner$GT$$GT$17h04a2a33fc96f09d7E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %30) #31
to label %24 unwind label %31

31: ; preds = %28
Expand All @@ -5558,7 +5559,7 @@ define void @_ZN9actix_web7request15HttpRequestPool5clear17h05fc4c2a5dccbeffE(pt
store i64 %35, ptr %0, align 8, !noalias !994
ret void

36: ; preds = %24
36: ; preds = %24, %27
%37 = load i64, ptr %0, align 8, !noalias !1001, !noundef !4
%38 = add i64 %37, 1
store i64 %38, ptr %0, align 8, !noalias !1001
Expand Down
Loading