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
7 changes: 3 additions & 4 deletions bench/abc/optimized/Glucose.cpp.ll
Original file line number Diff line number Diff line change
Expand Up @@ -9333,17 +9333,16 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %108, %93, %_ZNK5Glu
180: ; preds = %179
%181 = getelementptr inbounds i8, ptr %0, i64 736
%182 = load i32, ptr %181, align 8
%183 = sext i32 %182 to i64
%183 = zext i32 %182 to i64
%184 = icmp slt i32 %182, 0
%185 = shl nsw i64 %183, 2
%185 = shl nuw nsw i64 %183, 2
%186 = select i1 %184, i64 -1, i64 %185
%187 = call noalias noundef nonnull ptr @_Znam(i64 noundef %186) #35
%188 = icmp sgt i32 %182, 0
br i1 %188, label %.lr.ph79, label %.loopexit

.lr.ph79: ; preds = %180
%189 = load ptr, ptr %13, align 8
%wide.trip.count = zext nneg i32 %182 to i64
br label %190

190: ; preds = %.lr.ph79, %190
Expand All @@ -9355,7 +9354,7 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %108, %93, %_ZNK5Glu
%195 = getelementptr inbounds i32, ptr %187, i64 %indvars.iv82
store i32 %194, ptr %195, align 4
%indvars.iv.next83 = add nuw nsw i64 %indvars.iv82, 1
%exitcond.not = icmp eq i64 %indvars.iv.next83, %wide.trip.count
%exitcond.not = icmp eq i64 %indvars.iv.next83, %183
br i1 %exitcond.not, label %.loopexit, label %190, !llvm.loop !68

.loopexit: ; preds = %190, %180, %179
Expand Down
126 changes: 64 additions & 62 deletions bench/abc/optimized/cuddAndAbs.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,21 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
%14 = inttoptr i64 %13 to ptr
%15 = icmp eq ptr %1, %14
%or.cond234 = or i1 %15, %or.cond
br i1 %or.cond234, label %226, label %16
br i1 %or.cond234, label %228, label %16

16: ; preds = %4
%17 = icmp eq ptr %1, %6
%18 = icmp eq ptr %2, %6
%or.cond235 = and i1 %17, %18
br i1 %or.cond235, label %226, label %19
br i1 %or.cond235, label %228, label %19

19: ; preds = %16
%20 = icmp eq ptr %3, %6
br i1 %20, label %21, label %23

21: ; preds = %19
%22 = tail call ptr @cuddBddAndRecur(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2) #4
br label %226
br label %228

23: ; preds = %19
%24 = icmp eq ptr %1, %2
Expand All @@ -59,14 +59,14 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef

25: ; preds = %23
%26 = tail call ptr @cuddBddExistAbstractRecur(ptr noundef nonnull %0, ptr noundef %2, ptr noundef %3) #4
br label %226
br label %228

27: ; preds = %23
br i1 %18, label %28, label %30

28: ; preds = %27
%29 = tail call ptr @cuddBddExistAbstractRecur(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %3) #4
br label %226
br label %228

30: ; preds = %27
%31 = icmp ugt ptr %1, %2
Expand Down Expand Up @@ -108,7 +108,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef

55: ; preds = %51
%56 = tail call ptr @cuddBddAndRecur(ptr noundef %0, ptr noundef %spec.select237, ptr noundef %spec.select) #4
br label %226
br label %228

57: ; preds = %49
%58 = getelementptr inbounds i8, ptr %34, i64 4
Expand All @@ -125,7 +125,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
63: ; preds = %60, %57
%64 = tail call ptr @cuddCacheLookup(ptr noundef %0, i64 noundef 6, ptr noundef %spec.select237, ptr noundef %spec.select, ptr noundef nonnull %.0198) #4
%.not220 = icmp eq ptr %64, null
br i1 %.not220, label %65, label %226
br i1 %.not220, label %65, label %228

65: ; preds = %63, %60
%66 = getelementptr inbounds i8, ptr %0, i64 752
Expand All @@ -137,7 +137,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
%69 = tail call fastcc i64 @Abc_Clock()
%70 = load i64, ptr %66, align 8
%71 = icmp sgt i64 %69, %70
br i1 %71, label %226, label %72
br i1 %71, label %228, label %72

72: ; preds = %68, %65
%.not222 = icmp ugt i32 %43, %47
Expand Down Expand Up @@ -202,7 +202,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
%107 = load ptr, ptr %106, align 8
%108 = tail call ptr @cuddBddAndAbstractRecur(ptr noundef nonnull %0, ptr noundef %.0199, ptr noundef %.0203, ptr noundef %107)
%109 = icmp eq ptr %108, null
br i1 %109, label %226, label %110
br i1 %109, label %228, label %110

110: ; preds = %105
%111 = icmp eq ptr %108, %6
Expand All @@ -221,11 +221,11 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
%117 = getelementptr inbounds i8, ptr %37, i64 4
%118 = load i32, ptr %117, align 4
%.not230 = icmp eq i32 %118, 1
br i1 %.not230, label %226, label %119
br i1 %.not230, label %228, label %119

119: ; preds = %116, %114
tail call void @cuddCacheInsert(ptr noundef nonnull %0, i64 noundef 6, ptr noundef %spec.select237, ptr noundef %spec.select, ptr noundef nonnull %.0198, ptr noundef nonnull %108) #4
br label %226
br label %228

120: ; preds = %110
%121 = ptrtoint ptr %108 to i64
Expand Down Expand Up @@ -267,7 +267,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef

144: ; preds = %142
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %108) #4
br label %226
br label %228

145: ; preds = %142
%146 = icmp eq ptr %108, %.0200
Expand All @@ -277,7 +277,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
%148 = load i32, ptr %124, align 4
%149 = add i32 %148, -1
store i32 %149, ptr %124, align 4
br label %220
br label %222

150: ; preds = %145
%151 = ptrtoint ptr %.0200 to i64
Expand All @@ -298,7 +298,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
163: ; preds = %150
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %108) #4
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %.0200) #4
br label %226
br label %228

164: ; preds = %150
%165 = ptrtoint ptr %161 to i64
Expand All @@ -315,12 +315,12 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
%173 = load i32, ptr %170, align 4
%174 = add i32 %173, -1
store i32 %174, ptr %170, align 4
br label %220
br label %222

175: ; preds = %103
%176 = tail call ptr @cuddBddAndAbstractRecur(ptr noundef nonnull %0, ptr noundef %.0199, ptr noundef %.0203, ptr noundef nonnull %.0198)
%177 = icmp eq ptr %176, null
br i1 %177, label %226, label %178
br i1 %177, label %228, label %178

178: ; preds = %175
%179 = ptrtoint ptr %176 to i64
Expand All @@ -336,7 +336,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef

187: ; preds = %178
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %176) #4
br label %226
br label %228

188: ; preds = %178
%189 = icmp eq ptr %176, %185
Expand All @@ -346,7 +346,7 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
%191 = load i32, ptr %182, align 4
%192 = add i32 %191, -1
store i32 %192, ptr %182, align 4
br label %220
br label %222

193: ; preds = %188
%194 = ptrtoint ptr %185 to i64
Expand All @@ -358,64 +358,66 @@ define ptr @cuddBddAndAbstractRecur(ptr noundef %0, ptr noundef %1, ptr noundef
store i32 %199, ptr %197, align 4
%200 = and i64 %179, 1
%.not226 = icmp eq i64 %200, 0
br i1 %.not226, label %211, label %201
br i1 %.not226, label %213, label %201

201: ; preds = %193
%202 = xor i64 %194, 1
%202 = xor i64 %179, 1
%203 = inttoptr i64 %202 to ptr
%204 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0195, ptr noundef nonnull %181, ptr noundef %203) #4
%205 = icmp eq ptr %204, null
br i1 %205, label %206, label %207
%204 = xor i64 %194, 1
%205 = inttoptr i64 %204 to ptr
%206 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0195, ptr noundef %203, ptr noundef %205) #4
%207 = icmp eq ptr %206, null
br i1 %207, label %208, label %209

206: ; preds = %201
208: ; preds = %201
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %176) #4
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %185) #4
br label %226
br label %228

207: ; preds = %201
%208 = ptrtoint ptr %204 to i64
%209 = xor i64 %208, 1
%210 = inttoptr i64 %209 to ptr
br label %215
209: ; preds = %201
%210 = ptrtoint ptr %206 to i64
%211 = xor i64 %210, 1
%212 = inttoptr i64 %211 to ptr
br label %217

211: ; preds = %193
%212 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0195, ptr noundef nonnull %176, ptr noundef nonnull %185) #4
%213 = icmp eq ptr %212, null
br i1 %213, label %214, label %215
213: ; preds = %193
%214 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0195, ptr noundef nonnull %176, ptr noundef nonnull %185) #4
%215 = icmp eq ptr %214, null
br i1 %215, label %216, label %217

214: ; preds = %211
216: ; preds = %213
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %176) #4
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %185) #4
br label %226

215: ; preds = %211, %207
%.1 = phi ptr [ %210, %207 ], [ %212, %211 ]
%216 = load i32, ptr %197, align 4
%217 = add i32 %216, -1
store i32 %217, ptr %197, align 4
%218 = load i32, ptr %182, align 4
br label %228

217: ; preds = %213, %209
%.1 = phi ptr [ %212, %209 ], [ %214, %213 ]
%218 = load i32, ptr %197, align 4
%219 = add i32 %218, -1
store i32 %219, ptr %182, align 4
br label %220

220: ; preds = %190, %215, %147, %164
%.0201 = phi ptr [ %108, %147 ], [ %167, %164 ], [ %176, %190 ], [ %.1, %215 ]
%221 = load i32, ptr %58, align 4
%.not227 = icmp eq i32 %221, 1
br i1 %.not227, label %222, label %225

222: ; preds = %220
%223 = getelementptr inbounds i8, ptr %37, i64 4
%224 = load i32, ptr %223, align 4
%.not228 = icmp eq i32 %224, 1
br i1 %.not228, label %226, label %225

225: ; preds = %222, %220
store i32 %219, ptr %197, align 4
%220 = load i32, ptr %182, align 4
%221 = add i32 %220, -1
store i32 %221, ptr %182, align 4
br label %222

222: ; preds = %190, %217, %147, %164
%.0201 = phi ptr [ %108, %147 ], [ %167, %164 ], [ %176, %190 ], [ %.1, %217 ]
%223 = load i32, ptr %58, align 4
%.not227 = icmp eq i32 %223, 1
br i1 %.not227, label %224, label %227

224: ; preds = %222
%225 = getelementptr inbounds i8, ptr %37, i64 4
%226 = load i32, ptr %225, align 4
%.not228 = icmp eq i32 %226, 1
br i1 %.not228, label %228, label %227

227: ; preds = %224, %222
tail call void @cuddCacheInsert(ptr noundef nonnull %0, i64 noundef 6, ptr noundef %spec.select237, ptr noundef %spec.select, ptr noundef nonnull %.0198, ptr noundef %.0201) #4
br label %226
br label %228

226: ; preds = %222, %225, %175, %116, %119, %105, %68, %63, %16, %4, %214, %206, %187, %163, %144, %55, %28, %25, %21
%.0 = phi ptr [ %22, %21 ], [ %26, %25 ], [ %29, %28 ], [ %56, %55 ], [ null, %144 ], [ null, %163 ], [ null, %187 ], [ null, %206 ], [ null, %214 ], [ %9, %4 ], [ %6, %16 ], [ %64, %63 ], [ null, %68 ], [ null, %105 ], [ %108, %119 ], [ %108, %116 ], [ null, %175 ], [ %.0201, %225 ], [ %.0201, %222 ]
228: ; preds = %224, %227, %175, %116, %119, %105, %68, %63, %16, %4, %216, %208, %187, %163, %144, %55, %28, %25, %21
%.0 = phi ptr [ %22, %21 ], [ %26, %25 ], [ %29, %28 ], [ %56, %55 ], [ null, %144 ], [ null, %163 ], [ null, %187 ], [ null, %208 ], [ null, %216 ], [ %9, %4 ], [ %6, %16 ], [ %64, %63 ], [ null, %68 ], [ null, %105 ], [ %108, %119 ], [ %108, %116 ], [ null, %175 ], [ %.0201, %227 ], [ %.0201, %224 ]
ret ptr %.0
}

Expand Down
64 changes: 33 additions & 31 deletions bench/abc/optimized/cuddBddAbs.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -621,7 +621,7 @@ tailrecurse: ; preds = %60
%162 = load i32, ptr %159, align 4
%163 = add i32 %162, -1
store i32 %163, ptr %159, align 4
br label %192
br label %194

164: ; preds = %138
%165 = icmp eq ptr %123, %135
Expand All @@ -634,58 +634,60 @@ tailrecurse: ; preds = %60
%169 = load i32, ptr %142, align 4
%170 = add i32 %169, -1
store i32 %170, ptr %142, align 4
br label %192
br label %194

171: ; preds = %164
%172 = and i64 %129, 1
%.not187 = icmp eq i64 %172, 0
br i1 %.not187, label %183, label %173
br i1 %.not187, label %185, label %173

173: ; preds = %171
%174 = xor i64 %139, 1
%174 = xor i64 %129, 1
%175 = inttoptr i64 %174 to ptr
%176 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0160, ptr noundef nonnull %131, ptr noundef %175) #4
%177 = icmp eq ptr %176, null
br i1 %177, label %178, label %179
%176 = xor i64 %139, 1
%177 = inttoptr i64 %176 to ptr
%178 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0160, ptr noundef %175, ptr noundef %177) #4
%179 = icmp eq ptr %178, null
br i1 %179, label %180, label %181

178: ; preds = %173
180: ; preds = %173
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %123) #4
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %135) #4
br label %.loopexit

179: ; preds = %173
%180 = ptrtoint ptr %176 to i64
%181 = xor i64 %180, 1
%182 = inttoptr i64 %181 to ptr
br label %187
181: ; preds = %173
%182 = ptrtoint ptr %178 to i64
%183 = xor i64 %182, 1
%184 = inttoptr i64 %183 to ptr
br label %189

183: ; preds = %171
%184 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0160, ptr noundef nonnull %123, ptr noundef nonnull %135) #4
%185 = icmp eq ptr %184, null
br i1 %185, label %186, label %187
185: ; preds = %171
%186 = tail call ptr @cuddUniqueInter(ptr noundef nonnull %0, i32 noundef %.0160, ptr noundef nonnull %123, ptr noundef nonnull %135) #4
%187 = icmp eq ptr %186, null
br i1 %187, label %188, label %189

186: ; preds = %183
188: ; preds = %185
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %123) #4
tail call void @Cudd_IterDerefBdd(ptr noundef nonnull %0, ptr noundef nonnull %135) #4
br label %.loopexit

187: ; preds = %183, %179
%.1 = phi ptr [ %182, %179 ], [ %184, %183 ]
%188 = load i32, ptr %142, align 4
%189 = add i32 %188, -1
store i32 %189, ptr %142, align 4
%190 = load i32, ptr %132, align 4
189: ; preds = %185, %181
%.1 = phi ptr [ %184, %181 ], [ %186, %185 ]
%190 = load i32, ptr %142, align 4
%191 = add i32 %190, -1
store i32 %191, ptr %132, align 4
br label %192

192: ; preds = %166, %187, %153
%.0168 = phi ptr [ %156, %153 ], [ %123, %166 ], [ %.1, %187 ]
store i32 %191, ptr %142, align 4
%192 = load i32, ptr %132, align 4
%193 = add i32 %192, -1
store i32 %193, ptr %132, align 4
br label %194

194: ; preds = %166, %189, %153
%.0168 = phi ptr [ %156, %153 ], [ %123, %166 ], [ %.1, %189 ]
tail call void @cuddCacheInsert(ptr noundef nonnull %0, i64 noundef 10, ptr noundef %spec.select188, ptr noundef %spec.select, ptr noundef nonnull %.tr193236, ptr noundef %.0168) #4
br label %.loopexit

.loopexit: ; preds = %tailrecurse, %12, %42, %4, %122, %192, %186, %178, %152, %137, %127, %40, %36, %29, %25, %21
%.0 = phi ptr [ %22, %21 ], [ %26, %25 ], [ %33, %29 ], [ %37, %36 ], [ %41, %40 ], [ %14, %127 ], [ null, %137 ], [ null, %152 ], [ %.0168, %192 ], [ null, %178 ], [ null, %186 ], [ null, %122 ], [ %9, %4 ], [ %87, %tailrecurse ], [ %14, %12 ], [ %59, %42 ]
.loopexit: ; preds = %tailrecurse, %12, %42, %4, %122, %194, %188, %180, %152, %137, %127, %40, %36, %29, %25, %21
%.0 = phi ptr [ %22, %21 ], [ %26, %25 ], [ %33, %29 ], [ %37, %36 ], [ %41, %40 ], [ %14, %127 ], [ null, %137 ], [ null, %152 ], [ %.0168, %194 ], [ null, %180 ], [ null, %188 ], [ null, %122 ], [ %9, %4 ], [ %87, %tailrecurse ], [ %14, %12 ], [ %59, %42 ]
ret ptr %.0
}

Expand Down
Loading