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
61 changes: 36 additions & 25 deletions bench/abc/optimized/amapLiberty.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3917,10 +3917,10 @@ define internal fastcc i64 @Amap_LibertyUpdateHead(ptr noundef captures(none) %0
%10 = getelementptr inbounds nuw i8, ptr %0, i64 20
br label %11

11: ; preds = %.lr.ph, %Amap_LibertyCharIsSpace.exit
%.028 = phi ptr [ %9, %.lr.ph ], [ %23, %Amap_LibertyCharIsSpace.exit ]
%.02227 = phi ptr [ null, %.lr.ph ], [ %22, %Amap_LibertyCharIsSpace.exit ]
%.02326 = phi ptr [ null, %.lr.ph ], [ %.sink, %Amap_LibertyCharIsSpace.exit ]
11: ; preds = %.lr.ph, %Amap_LibertyCharIsSpace.exit.thread
%.028 = phi ptr [ %9, %.lr.ph ], [ %25, %Amap_LibertyCharIsSpace.exit.thread ]
%.02227 = phi ptr [ null, %.lr.ph ], [ %24, %Amap_LibertyCharIsSpace.exit.thread ]
%.02326 = phi ptr [ null, %.lr.ph ], [ %.12435, %Amap_LibertyCharIsSpace.exit.thread ]
%12 = load i8, ptr %.028, align 1, !tbaa !16
%13 = icmp eq i8 %12, 10
br i1 %13, label %14, label %17
Expand All @@ -3934,29 +3934,40 @@ define internal fastcc i64 @Amap_LibertyUpdateHead(ptr noundef captures(none) %0

17: ; preds = %14, %11
%18 = phi i8 [ %.pr, %14 ], [ %12, %11 ]
switch i8 %18, label %19 [
i8 32, label %Amap_LibertyCharIsSpace.exit
i8 13, label %Amap_LibertyCharIsSpace.exit
i8 10, label %Amap_LibertyCharIsSpace.exit
i8 9, label %Amap_LibertyCharIsSpace.exit
i8 92, label %Amap_LibertyCharIsSpace.exit
]

19: ; preds = %17
%.fr = freeze i8 %18
%switch.tableidx = add i8 %.fr, -9
%19 = icmp ult i8 %switch.tableidx, 24
br i1 %19, label %switch.hole_check, label %Amap_LibertyCharIsSpace.exit

switch.hole_check:; preds = %17
%switch.maskindex = zext nneg i8 %switch.tableidx to i32
%switch.shifted = lshr i32 8388627, %switch.maskindex
%switch.lobit = trunc i32 %switch.shifted to i1
br i1 %switch.lobit, label %Amap_LibertyCharIsSpace.exit.thread, label %Amap_LibertyCharIsSpace.exit.thread36

Amap_LibertyCharIsSpace.exit.thread36: ; preds = %switch.hole_check
%20 = icmp eq ptr %.02326, null
%21 = select i1 %20, ptr %.028, ptr %.02326
br label %Amap_LibertyCharIsSpace.exit

Amap_LibertyCharIsSpace.exit: ; preds = %17, %17, %17, %17, %17, %19
%.sink = phi ptr [ %21, %19 ], [ %.02326, %17 ], [ %.02326, %17 ], [ %.02326, %17 ], [ %.02326, %17 ], [ %.02326, %17 ]
%22 = phi ptr [ %.028, %19 ], [ %.02227, %17 ], [ %.02227, %17 ], [ %.02227, %17 ], [ %.02227, %17 ], [ %.02227, %17 ]
%23 = getelementptr inbounds nuw i8, ptr %.028, i64 1
%24 = icmp ult ptr %23, %7
br i1 %24, label %11, label %._crit_edge, !llvm.loop !63

._crit_edge: ; preds = %Amap_LibertyCharIsSpace.exit, %2
%.023.lcssa = phi ptr [ null, %2 ], [ %.sink, %Amap_LibertyCharIsSpace.exit ]
%.022.lcssa = phi ptr [ null, %2 ], [ %22, %Amap_LibertyCharIsSpace.exit ]
br label %Amap_LibertyCharIsSpace.exit.thread

Amap_LibertyCharIsSpace.exit: ; preds = %17
%21 = icmp ne i8 %.fr, 92
%22 = icmp eq ptr %.02326, null
%23 = select i1 %21, i1 %22, i1 false
%.124 = select i1 %23, ptr %.028, ptr %.02326
%spec.select = select i1 %21, ptr %.028, ptr %.02227
br label %Amap_LibertyCharIsSpace.exit.thread

Amap_LibertyCharIsSpace.exit.thread:; preds = %Amap_LibertyCharIsSpace.exit, %switch.hole_check, %Amap_LibertyCharIsSpace.exit.thread36
%.022.lcssa = phi ptr [ %21, %Amap_LibertyCharIsSpace.exit.thread36 ], [ %.02326, %switch.hole_check ], [ %.124, %Amap_LibertyCharIsSpace.exit ]
%24 = phi ptr [ %.028, %Amap_LibertyCharIsSpace.exit.thread36 ], [ %.02227, %switch.hole_check ], [ %spec.select, %Amap_LibertyCharIsSpace.exit ]
%25 = getelementptr inbounds nuw i8, ptr %.028, i64 1
%26 = icmp ult ptr %25, %7
br i1 %26, label %11, label %._crit_edge, !llvm.loop !63

._crit_edge: ; preds = %Amap_LibertyCharIsSpace.exit.thread, %2
%.023.lcssa = phi ptr [ null, %2 ], [ %.12435, %Amap_LibertyCharIsSpace.exit.thread ]
%.022.lcssa = phi ptr [ null, %2 ], [ %24, %Amap_LibertyCharIsSpace.exit.thread ]
%.sroa.3.0.extract.shift = lshr i64 %1, 32
%25 = icmp eq ptr %.023.lcssa, null
%26 = icmp eq ptr %.022.lcssa, null
Expand Down
6 changes: 4 additions & 2 deletions bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll
Original file line number Diff line number Diff line change
Expand Up @@ -11306,8 +11306,10 @@ define internal fastcc noundef range(i32 0, 2) i32 @_ZN6brotli3enc6encode23Injec
%26 = or i32 %25, %22
%27 = getelementptr inbounds nuw i8, ptr %0, i64 120
%28 = load i32, ptr %27, align 8, !range !1072, !alias.scope !1069, !noundef !12
%switch.i = icmp samesign ugt i32 %28, 1
br i1 %switch.i, label %.thread28.i, label %29
%switch.cast.i = trunc nuw nsw i32 %28 to i3
%switch.downshift.i = lshr exact i3 -4, %switch.cast.i
%switch.masked.i = trunc i3 %switch.downshift.i to i1
br i1 %switch.masked.i, label %.thread28.i, label %29
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


29: ; preds = %19
%30 = getelementptr inbounds nuw i8, ptr %0, i64 304
Expand Down
52 changes: 30 additions & 22 deletions bench/anki-rs/optimized/22lei7qbgq6q4wqu.ll
Original file line number Diff line number Diff line change
Expand Up @@ -670,43 +670,47 @@ define noundef zeroext i1 @_ZN7anki_io5error11FileIoError12is_not_found17h637f7f
%3 = ptrtoint ptr %.val to i64
%4 = and i64 %3, 3
switch i64 %4, label %default.unreachable [
i64 2, label %6
i64 3, label %5
i64 0, label %7
i64 1, label %10
i64 2, label %5
i64 3, label %6
i64 0, label %10
i64 1, label %13
]

default.unreachable: ; preds = %1
unreachable

5: ; preds = %1
%switch = icmp ult ptr %.val, inttoptr (i64 4294967296 to ptr)
%spec.select = select i1 %switch, i8 0, i8 13
br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit

6: ; preds = %1
%.mask = and i64 %3, -4294967296
%switch.selectcmp = icmp eq i64 %.mask, 8589934592
%switch.select = select i1 %switch.selectcmp, i8 0, i8 13
br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit

7: ; preds = %1
%8 = getelementptr inbounds nuw i8, ptr %.val, i64 16
%9 = load i8, ptr %8, align 8, !range !183, !noundef !4
%7 = lshr i64 %3, 32
%8 = trunc nuw i64 %7 to i32
%spec.select43.i.i.i = tail call i32 @llvm.umin.i32(i32 %8, i32 41)
%spec.select.i.i.i = trunc nuw nsw i32 %spec.select43.i.i.i to i8
%9 = icmp ult ptr %.val, inttoptr (i64 176093659136 to ptr)
tail call void @llvm.assume(i1 %9)
br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit

10: ; preds = %1
%11 = getelementptr i8, ptr %.val, i64 -1
%12 = icmp ne ptr %11, null
tail call void @llvm.assume(i1 %12)
%13 = getelementptr i8, ptr %.val, i64 15
%14 = load i8, ptr %13, align 8, !range !183, !noundef !4
%11 = getelementptr inbounds nuw i8, ptr %.val, i64 16
%12 = load i8, ptr %11, align 8, !range !183, !noundef !4
br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit

_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit: ; preds = %5, %6, %7, %10
%.0.i = phi i8 [ %9, %7 ], [ %14, %10 ], [ %spec.select, %5 ], [ %switch.select, %6 ]
%15 = icmp eq i8 %.0.i, 0
ret i1 %15
_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit: ; preds = %1
%14 = getelementptr i8, ptr %.val, i64 -1
%15 = icmp ne ptr %14, null
tail call void @llvm.assume(i1 %15)
%16 = getelementptr i8, ptr %.val, i64 15
%17 = load i8, ptr %16, align 8, !range !183, !noundef !4
br label %_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit

_ZN3std2io5error5Error4kind17h2040909452a97b57E.exit: ; preds = %5, %6, %10, %13
%.0.i = phi i8 [ %spec.select.i.i.i, %6 ], [ %12, %10 ], [ %17, %13 ], [ %switch.select, %5 ]
%18 = icmp eq i8 %.0.i, 0
ret i1 %18
}

; Function Attrs: nonlazybind uwtable
Expand Down Expand Up @@ -1023,6 +1027,9 @@ declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_add
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
declare void @llvm.experimental.noalias.scope.decl(metadata) #9

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #10

attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
attributes #1 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
attributes #2 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
Expand All @@ -1033,8 +1040,9 @@ attributes #6 = { cold noreturn nounwind nonlazybind uwtable "probe-stack"="inli
attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind nonlazybind willreturn memory(argmem: read) }
attributes #9 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) }
attributes #10 = { cold }
attributes #11 = { cold noreturn nounwind }
attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { cold }
attributes #12 = { cold noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2}
!llvm.ident = !{!3}
Expand Down
16 changes: 9 additions & 7 deletions bench/arrow/optimized/message.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1436,7 +1436,7 @@ _ZNK5arrow3ipc7Message11MessageImpl8metadataEv.exit: ; preds = %2, %11, %14
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable
define noundef range(i32 0, 6) i32 @_ZNK5arrow3ipc7Message4typeEv(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(8) %0) local_unnamed_addr #5 align 2 {
define noundef range(i32 0, 257) i32 @_ZNK5arrow3ipc7Message4typeEv(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(8) %0) local_unnamed_addr #5 align 2 {
%2 = load ptr, ptr %0, align 8, !tbaa !15
%3 = getelementptr inbounds nuw i8, ptr %2, i64 16
%4 = load ptr, ptr %3, align 8, !tbaa !72
Expand All @@ -1458,14 +1458,16 @@ _ZNK3org6apache5arrow7flatbuf7Message11header_typeEv.exit.i: ; preds = %_ZNK22ar
%13 = zext i16 %12 to i64
%14 = getelementptr inbounds nuw i8, ptr %4, i64 %13
%15 = load i8, ptr %14, align 1, !tbaa !22
%switch.tableidx = add i8 %15, -1
%16 = icmp ult i8 %switch.tableidx, 5
%switch.offset = zext nneg i8 %15 to i32
%spec.select = select i1 %16, i32 %switch.offset, i32 0
%.fr.i = freeze i8 %15
%16 = add i8 %.fr.i, -1
%17 = icmp ult i8 %16, 5
%switch.idx.cast.i = zext nneg i8 %16 to i32
%switch.offset.i = add nuw nsw i32 %switch.idx.cast.i, 1
%spec.select.i = select i1 %17, i32 %switch.offset.i, i32 0
br label %_ZNK5arrow3ipc7Message11MessageImpl4typeEv.exit

_ZNK5arrow3ipc7Message11MessageImpl4typeEv.exit: ; preds = %_ZNK3org6apache5arrow7flatbuf7Message11header_typeEv.exit.i, %1, %_ZNK22arrow_vendored_private11flatbuffers5Table22GetOptionalFieldOffsetEt.exit.i.i.i
%.0.i = phi i32 [ 0, %_ZNK22arrow_vendored_private11flatbuffers5Table22GetOptionalFieldOffsetEt.exit.i.i.i ], [ 0, %1 ], [ %spec.select, %_ZNK3org6apache5arrow7flatbuf7Message11header_typeEv.exit.i ]
_ZNK5arrow3ipc7Message11MessageImpl4typeEv.exit: ; preds = %1, %_ZNK22arrow_vendored_private11flatbuffers5Table22GetOptionalFieldOffsetEt.exit.i.i.i, %_ZNK3org6apache5arrow7flatbuf7Message11header_typeEv.exit.i
%.0.i = phi i32 [ 0, %_ZNK22arrow_vendored_private11flatbuffers5Table22GetOptionalFieldOffsetEt.exit.i.i.i ], [ 0, %1 ], [ %spec.select.i, %_ZNK3org6apache5arrow7flatbuf7Message11header_typeEv.exit.i ]
ret i32 %.0.i
}

Expand Down
78 changes: 40 additions & 38 deletions bench/bullet3/optimized/btCollisionDispatcher.ll
Original file line number Diff line number Diff line change
Expand Up @@ -764,52 +764,54 @@ define dso_local noundef zeroext i1 @_ZN21btCollisionDispatcher13needsResponseEP
define dso_local noundef zeroext i1 @_ZN21btCollisionDispatcher14needsCollisionEPK17btCollisionObjectS2_(ptr nonnull readnone align 8 captures(none) %0, ptr noundef %1, ptr noundef %2) unnamed_addr #0 align 2 {
%4 = getelementptr inbounds nuw i8, ptr %1, i64 240
%5 = load i32, ptr %4, align 8, !tbaa !100
switch i32 %5, label %_ZNK17btCollisionObject8isActiveEv.exit.thread [
i32 6, label %_ZNK17btCollisionObject8isActiveEv.exit
i32 2, label %_ZNK17btCollisionObject8isActiveEv.exit
i32 5, label %_ZNK17btCollisionObject8isActiveEv.exit
]

_ZNK17btCollisionObject8isActiveEv.exit: ; preds = %3, %3, %3
%6 = getelementptr inbounds nuw i8, ptr %2, i64 240
%7 = load i32, ptr %6, align 8, !tbaa !100
switch i32 %7, label %_ZNK17btCollisionObject8isActiveEv.exit.thread [
i32 6, label %_ZNK17btCollisionObject8isActiveEv.exit6
i32 2, label %_ZNK17btCollisionObject8isActiveEv.exit6
i32 5, label %_ZNK17btCollisionObject8isActiveEv.exit6
]

_ZNK17btCollisionObject8isActiveEv.exit.thread: ; preds = %_ZNK17btCollisionObject8isActiveEv.exit, %3
%8 = getelementptr inbounds nuw i8, ptr %1, i64 312
%9 = load i32, ptr %8, align 8, !tbaa !101
%.not.i = icmp eq i32 %9, 0
br i1 %.not.i, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit

_ZNK17btCollisionObject16checkCollideWithEPKS_.exit: ; preds = %_ZNK17btCollisionObject8isActiveEv.exit.thread
%10 = load ptr, ptr %1, align 8, !tbaa !4
%11 = getelementptr inbounds nuw i8, ptr %10, i64 24
%12 = load ptr, ptr %11, align 8
%13 = tail call noundef zeroext i1 %12(ptr noundef nonnull align 8 dereferenceable(372) %1, ptr noundef %2)
br i1 %13, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread, label %20

_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread: ; preds = %_ZNK17btCollisionObject8isActiveEv.exit.thread, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit
%14 = getelementptr inbounds nuw i8, ptr %2, i64 312
%6 = icmp ugt i32 %5, 6
%switch.cast.i = trunc i32 %5 to i7
%switch.downshift.i = lshr i7 27, %switch.cast.i
%switch.masked.i = trunc i7 %switch.downshift.i to i1
%7 = select i1 %6, i1 true, i1 %switch.masked.i
br i1 %7, label %13, label %8

_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread: ; preds = %3
%14 = getelementptr inbounds nuw i8, ptr %2, i64 240
%10 = load i32, ptr %9, align 8, !tbaa !100
%11 = icmp ugt i32 %10, 6
%switch.cast.i6 = trunc i32 %10 to i7
%switch.downshift.i7 = lshr i7 27, %switch.cast.i6
%switch.masked.i8 = trunc i7 %switch.downshift.i7 to i1
%12 = select i1 %11, i1 true, i1 %switch.masked.i8
br i1 %12, label %13, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11.thread

13: ; preds = %8, %3
%14 = getelementptr inbounds nuw i8, ptr %1, i64 312
%15 = load i32, ptr %14, align 8, !tbaa !101
%.not.i7 = icmp eq i32 %15, 0
br i1 %.not.i7, label %_ZNK17btCollisionObject8isActiveEv.exit6, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit9
br i1 %.not.i7, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit9

_ZNK17btCollisionObject16checkCollideWithEPKS_.exit9: ; preds = %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread
%16 = load ptr, ptr %2, align 8, !tbaa !4
_ZNK17btCollisionObject16checkCollideWithEPKS_.exit9: ; preds = %13
%16 = load ptr, ptr %1, align 8, !tbaa !4
%17 = getelementptr inbounds nuw i8, ptr %16, i64 24
%18 = load ptr, ptr %17, align 8
%19 = tail call noundef zeroext i1 %18(ptr noundef nonnull align 8 dereferenceable(372) %2, ptr noundef nonnull %1)
br i1 %19, label %_ZNK17btCollisionObject8isActiveEv.exit6, label %20
%19 = tail call noundef zeroext i1 %18(ptr noundef nonnull align 8 dereferenceable(372) %1, ptr noundef %2)
br i1 %19, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread, label %20

_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread: ; preds = %13, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit
%20 = getelementptr inbounds nuw i8, ptr %2, i64 312
%21 = load i32, ptr %20, align 8, !tbaa !101
%.not.i9 = icmp eq i32 %21, 0
br i1 %.not.i9, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11.thread, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11

_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11: ; preds = %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread
%22 = load ptr, ptr %2, align 8, !tbaa !4
%23 = getelementptr inbounds nuw i8, ptr %22, i64 24
%24 = load ptr, ptr %23, align 8
%25 = tail call noundef zeroext i1 %24(ptr noundef nonnull align 8 dereferenceable(372) %2, ptr noundef nonnull %1)
br i1 %25, label %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11.thread, label %26

20: ; preds = %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit9, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit
20: ; preds = %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit
br label %_ZNK17btCollisionObject8isActiveEv.exit6

_ZNK17btCollisionObject8isActiveEv.exit6: ; preds = %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread, %_ZNK17btCollisionObject8isActiveEv.exit, %_ZNK17btCollisionObject8isActiveEv.exit, %_ZNK17btCollisionObject8isActiveEv.exit, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit9, %20
%.0 = phi i1 [ true, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit9 ], [ false, %20 ], [ false, %_ZNK17btCollisionObject8isActiveEv.exit ], [ false, %_ZNK17btCollisionObject8isActiveEv.exit ], [ false, %_ZNK17btCollisionObject8isActiveEv.exit ], [ true, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread ]
_ZNK17btCollisionObject8isActiveEv.exit6: ; preds = %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread, %8, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11, %20
%.0 = phi i1 [ true, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit11 ], [ false, %26 ], [ false, %8 ], [ true, %_ZNK17btCollisionObject16checkCollideWithEPKS_.exit.thread ]
ret i1 %.0
}

Expand Down
Loading