From 7145571ea009a17d68698424352059787092d750 Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Wed, 29 Jan 2025 13:56:00 +0800 Subject: [PATCH 1/2] pre-commit: PR123218 --- scripts/setup_pre_commit_patch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..3b9e7651b0b 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/123218 export COMPTIME_MODE=0 # Please rebase manually From 3510191eba3ce0fbf2f4e018879242ea81a440a0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 06:15:32 +0000 Subject: [PATCH 2/2] pre-commit: Update --- bench/cpython/optimized/obmalloc.ll | 101 +++--- bench/crow/optimized/example.cpp.ll | 66 ++-- bench/folly/optimized/HugePages.cpp.ll | 8 +- bench/folly/optimized/JSONSchema.cpp.ll | 4 +- bench/icu/optimized/number_patternstring.ll | 1 - bench/linux/optimized/dvo_ivch.ll | 2 +- bench/linux/optimized/hooks.ll | 294 +++++++++--------- .../minetest/optimized/touchscreengui.cpp.ll | 6 +- 8 files changed, 231 insertions(+), 251 deletions(-) diff --git a/bench/cpython/optimized/obmalloc.ll b/bench/cpython/optimized/obmalloc.ll index a55c0f002f8..25e1c1eb3d2 100644 --- a/bench/cpython/optimized/obmalloc.ll +++ b/bench/cpython/optimized/obmalloc.ll @@ -19310,16 +19310,15 @@ entry: %2 = load ptr, ptr %1, align 8 %segments = getelementptr inbounds nuw i8, ptr %2, i64 32 %3 = load atomic i64, ptr %xheap.i monotonic, align 8 - %4 = inttoptr i64 %3 to ptr %prev.i = getelementptr inbounds nuw i8, ptr %page, i64 64 - %5 = load ptr, ptr %prev.i, align 8 - %cmp.not.i = icmp eq ptr %5, null + %4 = load ptr, ptr %prev.i, align 8 + %cmp.not.i = icmp eq ptr %4, null %next3.phi.trans.insert.i = getelementptr inbounds nuw i8, ptr %page, i64 56 %.pre.i = load ptr, ptr %next3.phi.trans.insert.i, align 8 br i1 %cmp.not.i, label %if.end.i, label %if.then.i if.then.i: ; preds = %entry - %next2.i = getelementptr inbounds nuw i8, ptr %5, i64 56 + %next2.i = getelementptr inbounds nuw i8, ptr %4, i64 56 store ptr %.pre.i, ptr %next2.i, align 8 br label %if.end.i @@ -19328,37 +19327,37 @@ if.end.i: ; preds = %if.then.i, %entry br i1 %cmp4.not.i, label %if.end9.i, label %if.then5.i if.then5.i: ; preds = %if.end.i - %6 = load ptr, ptr %prev.i, align 8 + %5 = load ptr, ptr %prev.i, align 8 %prev8.i = getelementptr inbounds nuw i8, ptr %.pre.i, i64 64 - store ptr %6, ptr %prev8.i, align 8 + store ptr %5, ptr %prev8.i, align 8 br label %if.end9.i if.end9.i: ; preds = %if.then5.i, %if.end.i %last.i = getelementptr inbounds nuw i8, ptr %pq, i64 8 - %7 = load ptr, ptr %last.i, align 8 - %cmp10.i = icmp eq ptr %page, %7 + %6 = load ptr, ptr %last.i, align 8 + %cmp10.i = icmp eq ptr %page, %6 br i1 %cmp10.i, label %if.then11.i, label %if.end14.i if.then11.i: ; preds = %if.end9.i - %8 = load ptr, ptr %prev.i, align 8 - store ptr %8, ptr %last.i, align 8 + %7 = load ptr, ptr %prev.i, align 8 + store ptr %7, ptr %last.i, align 8 br label %if.end14.i if.end14.i: ; preds = %if.then11.i, %if.end9.i - %9 = load ptr, ptr %pq, align 8 - %cmp15.i = icmp eq ptr %page, %9 + %8 = load ptr, ptr %pq, align 8 + %cmp15.i = icmp eq ptr %page, %8 br i1 %cmp15.i, label %if.then16.i, label %mi_page_queue_remove.exit if.then16.i: ; preds = %if.end14.i - %10 = load ptr, ptr %next3.phi.trans.insert.i, align 8 - store ptr %10, ptr %pq, align 8 - tail call fastcc void @mi_heap_queue_first_update(ptr noundef %4, ptr noundef nonnull %pq) + %9 = load ptr, ptr %next3.phi.trans.insert.i, align 8 + store ptr %9, ptr %pq, align 8 + tail call fastcc void @mi_heap_queue_first_update(ptr noundef nonnull %1, ptr noundef nonnull %pq) br label %mi_page_queue_remove.exit mi_page_queue_remove.exit: ; preds = %if.end14.i, %if.then16.i - %page_count.i = getelementptr inbounds nuw i8, ptr %4, i64 3024 - %11 = load i64, ptr %page_count.i, align 8 - %dec.i = add i64 %11, -1 + %page_count.i = getelementptr inbounds nuw i8, ptr %1, i64 3024 + %10 = load i64, ptr %page_count.i, align 8 + %dec.i = add i64 %10, -1 store i64 %dec.i, ptr %page_count.i, align 8 %flags.i.i = getelementptr inbounds nuw i8, ptr %page, i64 14 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %next3.phi.trans.insert.i, i8 0, i64 16, i1 false) @@ -19366,52 +19365,52 @@ mi_page_queue_remove.exit: ; preds = %if.end14.i, %if.the %bf.clear.i.i = and i8 %bf.load.i.i, -2 store i8 %bf.clear.i.i, ptr %flags.i.i, align 2 store atomic i64 0, ptr %xheap.i release, align 8 - %12 = ptrtoint ptr %page to i64 - %sub.i.i.i = add i64 %12, -1 + %11 = ptrtoint ptr %page to i64 + %sub.i.i.i = add i64 %11, -1 %and.i.i.i = and i64 %sub.i.i.i, -33554432 - %13 = inttoptr i64 %and.i.i.i to ptr - %abandoned.i = getelementptr inbounds nuw i8, ptr %13, i64 192 - %14 = load i64, ptr %abandoned.i, align 64 - %inc.i = add i64 %14, 1 + %12 = inttoptr i64 %and.i.i.i to ptr + %abandoned.i = getelementptr inbounds nuw i8, ptr %12, i64 192 + %13 = load i64, ptr %abandoned.i, align 64 + %inc.i = add i64 %13, 1 store i64 %inc.i, ptr %abandoned.i, align 64 %stats.i = getelementptr inbounds nuw i8, ptr %2, i64 928 - %15 = load ptr, ptr %stats.i, align 8 - %pages_abandoned.i = getelementptr inbounds nuw i8, ptr %15, i64 256 + %14 = load ptr, ptr %stats.i, align 8 + %pages_abandoned.i = getelementptr inbounds nuw i8, ptr %14, i64 256 %cmp.i.i.i.i = icmp uge ptr %pages_abandoned.i, @_mi_stats_main %cmp1.i.i.i.i = icmp ult ptr %pages_abandoned.i, getelementptr inbounds nuw (i8, ptr @_mi_stats_main, i64 640) - %16 = select i1 %cmp.i.i.i.i, i1 %cmp1.i.i.i.i, i1 false - %current2.i.i.i = getelementptr inbounds nuw i8, ptr %15, i64 280 - br i1 %16, label %if.then1.i.i.i, label %if.else9.i.i.i + %15 = select i1 %cmp.i.i.i.i, i1 %cmp1.i.i.i.i, i1 false + %current2.i.i.i = getelementptr inbounds nuw i8, ptr %14, i64 280 + br i1 %15, label %if.then1.i.i.i, label %if.else9.i.i.i if.then1.i.i.i: ; preds = %mi_page_queue_remove.exit - %17 = atomicrmw add ptr %current2.i.i.i, i64 1 monotonic, align 8 - %peak.i.i.i = getelementptr inbounds nuw i8, ptr %15, i64 272 - %add.i.i.i = add i64 %17, 1 - %18 = load atomic i64, ptr %peak.i.i.i monotonic, align 8 + %16 = atomicrmw add ptr %current2.i.i.i, i64 1 monotonic, align 8 + %peak.i.i.i = getelementptr inbounds nuw i8, ptr %14, i64 272 + %add.i.i.i = add i64 %16, 1 + %17 = load atomic i64, ptr %peak.i.i.i monotonic, align 8 br label %while.cond.i.i.i.i while.cond.i.i.i.i: ; preds = %land.rhs.i.i.i.i, %if.then1.i.i.i - %current.0.i.i.i.i = phi i64 [ %18, %if.then1.i.i.i ], [ %21, %land.rhs.i.i.i.i ] + %current.0.i.i.i.i = phi i64 [ %17, %if.then1.i.i.i ], [ %20, %land.rhs.i.i.i.i ] %cmp.i21.i.i.i = icmp slt i64 %current.0.i.i.i.i, %add.i.i.i br i1 %cmp.i21.i.i.i, label %land.rhs.i.i.i.i, label %mi_atomic_maxi64_relaxed.exit.i.i.i land.rhs.i.i.i.i: ; preds = %while.cond.i.i.i.i - %19 = cmpxchg weak ptr %peak.i.i.i, i64 %current.0.i.i.i.i, i64 %add.i.i.i release monotonic, align 8 - %20 = extractvalue { i64, i1 } %19, 1 - %21 = extractvalue { i64, i1 } %19, 0 - br i1 %20, label %mi_atomic_maxi64_relaxed.exit.i.i.i, label %while.cond.i.i.i.i, !llvm.loop !5 + %18 = cmpxchg weak ptr %peak.i.i.i, i64 %current.0.i.i.i.i, i64 %add.i.i.i release monotonic, align 8 + %19 = extractvalue { i64, i1 } %18, 1 + %20 = extractvalue { i64, i1 } %18, 0 + br i1 %19, label %mi_atomic_maxi64_relaxed.exit.i.i.i, label %while.cond.i.i.i.i, !llvm.loop !5 mi_atomic_maxi64_relaxed.exit.i.i.i: ; preds = %land.rhs.i.i.i.i, %while.cond.i.i.i.i - %22 = atomicrmw add ptr %pages_abandoned.i, i64 1 monotonic, align 8 + %21 = atomicrmw add ptr %pages_abandoned.i, i64 1 monotonic, align 8 br label %_mi_stat_increase.exit.i if.else9.i.i.i: ; preds = %mi_page_queue_remove.exit - %23 = load i64, ptr %current2.i.i.i, align 8 - %add11.i.i.i = add i64 %23, 1 + %22 = load i64, ptr %current2.i.i.i, align 8 + %add11.i.i.i = add i64 %22, 1 store i64 %add11.i.i.i, ptr %current2.i.i.i, align 8 - %peak13.i.i.i = getelementptr inbounds nuw i8, ptr %15, i64 272 - %24 = load i64, ptr %peak13.i.i.i, align 8 - %cmp14.i.i.i = icmp sgt i64 %add11.i.i.i, %24 + %peak13.i.i.i = getelementptr inbounds nuw i8, ptr %14, i64 272 + %23 = load i64, ptr %peak13.i.i.i, align 8 + %cmp14.i.i.i = icmp sgt i64 %add11.i.i.i, %23 br i1 %cmp14.i.i.i, label %if.then15.i.i.i, label %if.end18.i.i.i if.then15.i.i.i: ; preds = %if.else9.i.i.i @@ -19419,20 +19418,20 @@ if.then15.i.i.i: ; preds = %if.else9.i.i.i br label %if.end18.i.i.i if.end18.i.i.i: ; preds = %if.then15.i.i.i, %if.else9.i.i.i - %25 = load i64, ptr %pages_abandoned.i, align 8 - %add22.i.i.i = add i64 %25, 1 + %24 = load i64, ptr %pages_abandoned.i, align 8 + %add22.i.i.i = add i64 %24, 1 store i64 %add22.i.i.i, ptr %pages_abandoned.i, align 8 br label %_mi_stat_increase.exit.i _mi_stat_increase.exit.i: ; preds = %if.end18.i.i.i, %mi_atomic_maxi64_relaxed.exit.i.i.i - %used.i = getelementptr inbounds nuw i8, ptr %13, i64 208 - %26 = load i64, ptr %used.i, align 16 - %27 = load i64, ptr %abandoned.i, align 64 - %cmp.i = icmp eq i64 %26, %27 + %used.i = getelementptr inbounds nuw i8, ptr %12, i64 208 + %25 = load i64, ptr %used.i, align 16 + %26 = load i64, ptr %abandoned.i, align 64 + %cmp.i = icmp eq i64 %25, %26 br i1 %cmp.i, label %if.then.i6, label %_mi_segment_page_abandon.exit if.then.i6: ; preds = %_mi_stat_increase.exit.i - tail call fastcc void @mi_segment_abandon(ptr noundef nonnull %13, ptr noundef nonnull %segments) + tail call fastcc void @mi_segment_abandon(ptr noundef nonnull %12, ptr noundef nonnull %segments) br label %_mi_segment_page_abandon.exit _mi_segment_page_abandon.exit: ; preds = %_mi_stat_increase.exit.i, %if.then.i6 diff --git a/bench/crow/optimized/example.cpp.ll b/bench/crow/optimized/example.cpp.ll index e7083ed9b90..6add5bd86f4 100644 --- a/bench/crow/optimized/example.cpp.ll +++ b/bench/crow/optimized/example.cpp.ll @@ -69977,61 +69977,59 @@ define linkonce_odr dso_local void @_ZN4asio2ip6detail8endpointC2ERKNS0_7address catch ptr null call void @_ZNSt8bad_castD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #36, !noalias !1268 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #36, !noalias !1268 - br label %41 + br label %40 18: ; preds = %10 %19 = getelementptr inbounds nuw i8, ptr %1, i64 4 %20 = load i32, ptr %19, align 4, !tbaa !97, !noalias !1268 - br label %37 + br label %36 21: ; preds = %3 store i16 10, ptr %0, align 4, !tbaa !14 store i16 %8, ptr %9, align 2, !tbaa !14 - %22 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 0, ptr %22, align 4, !tbaa !14 - %23 = load i32, ptr %1, align 8, !tbaa !1253, !noalias !1271 - %24 = icmp eq i32 %23, 1 - br i1 %24, label %30, label %25 + %22 = load i32, ptr %1, align 8, !tbaa !1253, !noalias !1271 + %23 = icmp eq i32 %22, 1 + br i1 %23, label %29, label %24 -25: ; preds = %21 +24: ; preds = %21 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #36, !noalias !1271 store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN4asio2ip16bad_address_castE, i64 16), ptr %4, align 8, !tbaa !102, !noalias !1271 - %26 = tail call ptr @__cxa_allocate_exception(i64 8) #36, !noalias !1271 - store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN4asio2ip16bad_address_castE, i64 16), ptr %26, align 8, !tbaa !102, !noalias !1271 - invoke void @__cxa_throw(ptr nonnull %26, ptr nonnull @_ZTIN4asio2ip16bad_address_castE, ptr nonnull @_ZNSt8bad_castD2Ev) #40 - to label %27 unwind label %28, !noalias !1271 + %25 = tail call ptr @__cxa_allocate_exception(i64 8) #36, !noalias !1271 + store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN4asio2ip16bad_address_castE, i64 16), ptr %25, align 8, !tbaa !102, !noalias !1271 + invoke void @__cxa_throw(ptr nonnull %25, ptr nonnull @_ZTIN4asio2ip16bad_address_castE, ptr nonnull @_ZNSt8bad_castD2Ev) #40 + to label %26 unwind label %27, !noalias !1271 -27: ; preds = %25 +26: ; preds = %24 unreachable -28: ; preds = %25 - %29 = landingpad { ptr, i32 } +27: ; preds = %24 + %28 = landingpad { ptr, i32 } catch ptr null call void @_ZNSt8bad_castD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #36, !noalias !1271 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #36, !noalias !1271 - br label %41 + br label %40 -30: ; preds = %21 - %31 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %32 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %33 = load i64, ptr %32, align 8, !tbaa !1261, !noalias !1271 - %34 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %35 = load <2 x i64>, ptr %31, align 8 - store <2 x i64> %35, ptr %34, align 4 - %36 = trunc i64 %33 to i32 - br label %37 +29: ; preds = %21 + %30 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %31 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %32 = load i64, ptr %31, align 8, !tbaa !1261, !noalias !1271 + %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %34 = load <2 x i64>, ptr %30, align 8 + store <2 x i64> %34, ptr %33, align 4 + %35 = trunc i64 %32 to i32 + br label %36 -37: ; preds = %30, %18 - %38 = phi i64 [ 24, %30 ], [ 4, %18 ] - %39 = phi i32 [ %36, %30 ], [ %20, %18 ] - %40 = getelementptr inbounds nuw i8, ptr %0, i64 %38 - store i32 %39, ptr %40, align 4, !tbaa !14 +36: ; preds = %29, %18 + %37 = phi i64 [ 24, %29 ], [ 4, %18 ] + %38 = phi i32 [ %35, %29 ], [ %20, %18 ] + %39 = getelementptr inbounds nuw i8, ptr %0, i64 %37 + store i32 %38, ptr %39, align 4, !tbaa !14 ret void -41: ; preds = %28, %16 - %42 = phi { ptr, i32 } [ %17, %16 ], [ %29, %28 ] - %43 = extractvalue { ptr, i32 } %42, 0 - call void @__clang_call_terminate(ptr %43) #38 +40: ; preds = %27, %16 + %41 = phi { ptr, i32 } [ %17, %16 ], [ %28, %27 ] + %42 = extractvalue { ptr, i32 } %41, 0 + call void @__clang_call_terminate(ptr %42) #38 unreachable } diff --git a/bench/folly/optimized/HugePages.cpp.ll b/bench/folly/optimized/HugePages.cpp.ll index 151930dc2d0..8b7435deea9 100644 --- a/bench/folly/optimized/HugePages.cpp.ll +++ b/bench/folly/optimized/HugePages.cpp.ll @@ -47278,11 +47278,11 @@ lor.lhs.false19: ; preds = %lor.lhs.false %14 = load ptr, ptr %next_count, align 8, !tbaa !885 %state_id.i132 = getelementptr inbounds nuw i8, ptr %14, i64 16 %15 = load i32, ptr %state_id.i132, align 8, !tbaa !888 - %cmp22.not = icmp eq i32 %15, %12 + %cmp22.not = icmp eq i32 %15, %13 br i1 %cmp22.not, label %if.end26, label %if.then23 if.then23: ; preds = %lor.lhs.false19, %lor.lhs.false, %if.end.if.then23_crit_edge - %16 = phi i32 [ %.pre, %if.end.if.then23_crit_edge ], [ %12, %lor.lhs.false19 ], [ %13, %lor.lhs.false ] + %16 = phi i32 [ %.pre, %if.end.if.then23_crit_edge ], [ %13, %lor.lhs.false19 ], [ %13, %lor.lhs.false ] %next_count25 = getelementptr inbounds nuw i8, ptr %this, i64 128 tail call void @_ZN5boost13re_detail_50012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE19push_repeater_countEiPPNS0_14repeater_countISC_EE(ptr noundef nonnull align 8 dereferenceable(236) %this, i32 noundef %16, ptr noundef nonnull %next_count25) %.pre174 = load ptr, ptr %next_count25, align 8, !tbaa !885 @@ -63274,11 +63274,11 @@ lor.lhs.false17: ; preds = %lor.lhs.false %14 = load ptr, ptr %next_count, align 8, !tbaa !1138 %state_id.i130 = getelementptr inbounds nuw i8, ptr %14, i64 16 %15 = load i32, ptr %state_id.i130, align 8, !tbaa !1141 - %cmp20.not = icmp eq i32 %15, %12 + %cmp20.not = icmp eq i32 %15, %13 br i1 %cmp20.not, label %if.end24, label %if.then21 if.then21: ; preds = %lor.lhs.false17, %lor.lhs.false, %if.end.if.then21_crit_edge - %16 = phi i32 [ %.pre, %if.end.if.then21_crit_edge ], [ %12, %lor.lhs.false17 ], [ %13, %lor.lhs.false ] + %16 = phi i32 [ %.pre, %if.end.if.then21_crit_edge ], [ %13, %lor.lhs.false17 ], [ %13, %lor.lhs.false ] %next_count23 = getelementptr inbounds nuw i8, ptr %this, i64 128 tail call void @_ZN5boost13re_detail_50012perl_matcherIPKcSaINS_9sub_matchIS3_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE19push_repeater_countEiPPNS0_14repeater_countIS3_EE(ptr noundef nonnull align 8 dereferenceable(236) %this, i32 noundef %16, ptr noundef nonnull %next_count23) %.pre169 = load ptr, ptr %next_count23, align 8, !tbaa !1138 diff --git a/bench/folly/optimized/JSONSchema.cpp.ll b/bench/folly/optimized/JSONSchema.cpp.ll index a154697d981..f6cd025212a 100644 --- a/bench/folly/optimized/JSONSchema.cpp.ll +++ b/bench/folly/optimized/JSONSchema.cpp.ll @@ -72092,11 +72092,11 @@ lor.lhs.false19: ; preds = %lor.lhs.false %14 = load ptr, ptr %next_count, align 8, !tbaa !2233 %state_id.i132 = getelementptr inbounds nuw i8, ptr %14, i64 16 %15 = load i32, ptr %state_id.i132, align 8, !tbaa !2236 - %cmp22.not = icmp eq i32 %15, %12 + %cmp22.not = icmp eq i32 %15, %13 br i1 %cmp22.not, label %if.end26, label %if.then23 if.then23: ; preds = %lor.lhs.false19, %lor.lhs.false, %if.end.if.then23_crit_edge - %16 = phi i32 [ %.pre, %if.end.if.then23_crit_edge ], [ %12, %lor.lhs.false19 ], [ %13, %lor.lhs.false ] + %16 = phi i32 [ %.pre, %if.end.if.then23_crit_edge ], [ %13, %lor.lhs.false19 ], [ %13, %lor.lhs.false ] %next_count25 = getelementptr inbounds nuw i8, ptr %this, i64 128 tail call void @_ZN5boost13re_detail_50012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE19push_repeater_countEiPPNS0_14repeater_countISC_EE(ptr noundef nonnull align 8 dereferenceable(236) %this, i32 noundef %16, ptr noundef nonnull %next_count25) %.pre174 = load ptr, ptr %next_count25, align 8, !tbaa !2233 diff --git a/bench/icu/optimized/number_patternstring.ll b/bench/icu/optimized/number_patternstring.ll index 999e238cf44..93acb0ad70f 100644 --- a/bench/icu/optimized/number_patternstring.ll +++ b/bench/icu/optimized/number_patternstring.ll @@ -4132,7 +4132,6 @@ if.then.i: ; preds = %invoke.cont br label %invoke.cont3 if.else.i: ; preds = %invoke.cont - store i8 1, ptr %fBogus.i, align 2 %1 = load ptr, ptr %currencyPluralInfo.i, align 8 invoke void @_ZN6icu_756number4impl31CurrencyPluralInfoAffixProvider5setToERKNS_18CurrencyPluralInfoERKNS1_23DecimalFormatPropertiesER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(2185) %currencyPluralInfoAPP, ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull align 8 dereferenceable(757) %properties, ptr noundef nonnull align 4 dereferenceable(4) %status) to label %invoke.cont3 unwind label %lpad2 diff --git a/bench/linux/optimized/dvo_ivch.ll b/bench/linux/optimized/dvo_ivch.ll index e38289b5630..4fcb82accfb 100644 --- a/bench/linux/optimized/dvo_ivch.ll +++ b/bench/linux/optimized/dvo_ivch.ll @@ -128,7 +128,7 @@ define internal noundef zeroext i1 @ivch_init(ptr nocapture noundef %0, ptr noun store i16 0, ptr %10, align 2, !annotation !5 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %11, i8 0, i64 48, i1 false), !annotation !5 - %51 = zext nneg i8 %43 to i16 + %51 = trunc i32 %45 to i16 store i16 %51, ptr %11, align 16 %52 = getelementptr inbounds nuw i8, ptr %11, i64 2 store i16 1, ptr %52, align 2 diff --git a/bench/linux/optimized/hooks.ll b/bench/linux/optimized/hooks.ll index 6d3b1305bb8..49e735d5d58 100644 --- a/bench/linux/optimized/hooks.ll +++ b/bench/linux/optimized/hooks.ll @@ -10487,14 +10487,14 @@ define internal i32 @selinux_socket_listen(ptr nocapture noundef readonly %0, i3 %9 = getelementptr inbounds nuw i8, ptr %8, i64 16 %10 = load i32, ptr %9, align 8 %11 = icmp eq i32 %10, 1 - br i1 %11, label %35, label %12 + br i1 %11, label %34, label %12 12: ; preds = %2 %13 = load volatile i8, ptr getelementptr inbounds nuw (i8, ptr @selinux_state, i64 10), align 2, !range !7, !noundef !8 %14 = icmp eq i8 %13, 0 %15 = icmp eq i32 %10, 7 %16 = and i1 %15, %14 - br i1 %16, label %35, label %17 + br i1 %16, label %34, label %17 17: ; preds = %12 store i8 2, ptr %3, align 8 @@ -10503,29 +10503,27 @@ define internal i32 @selinux_socket_listen(ptr nocapture noundef readonly %0, i3 store i32 0, ptr %4, align 8 %19 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %6, ptr %19, align 8 - %20 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store i16 0, ptr %20, align 8 - %21 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 - %22 = inttoptr i64 %21 to ptr - %23 = getelementptr inbounds nuw i8, ptr %22, i64 1784 - %24 = load ptr, ptr %23, align 8 - %25 = getelementptr inbounds nuw i8, ptr %24, i64 128 - %26 = load ptr, ptr %25, align 8 - %27 = load i32, ptr @selinux_blob_sizes, align 4 - %28 = sext i32 %27 to i64 - %29 = getelementptr i8, ptr %26, i64 %28 - %30 = getelementptr inbounds nuw i8, ptr %29, i64 4 - %31 = load i32, ptr %30, align 4 - %32 = getelementptr inbounds nuw i8, ptr %8, i64 24 - %33 = load i16, ptr %32, align 8 - %34 = call i32 @avc_has_perm(i32 noundef %31, i32 noundef %10, i16 noundef zeroext %33, i32 noundef 8192, ptr noundef nonnull %3) #24 - br label %35 + %20 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 + %21 = inttoptr i64 %20 to ptr + %22 = getelementptr inbounds nuw i8, ptr %21, i64 1784 + %23 = load ptr, ptr %22, align 8 + %24 = getelementptr inbounds nuw i8, ptr %23, i64 128 + %25 = load ptr, ptr %24, align 8 + %26 = load i32, ptr @selinux_blob_sizes, align 4 + %27 = sext i32 %26 to i64 + %28 = getelementptr i8, ptr %25, i64 %27 + %29 = getelementptr inbounds nuw i8, ptr %28, i64 4 + %30 = load i32, ptr %29, align 4 + %31 = getelementptr inbounds nuw i8, ptr %8, i64 24 + %32 = load i16, ptr %31, align 8 + %33 = call i32 @avc_has_perm(i32 noundef %30, i32 noundef %10, i16 noundef zeroext %32, i32 noundef 8192, ptr noundef nonnull %3) #24 + br label %34 -35: ; preds = %17, %12, %2 - %36 = phi i32 [ %34, %17 ], [ 0, %2 ], [ 0, %12 ] +34: ; preds = %17, %12, %2 + %35 = phi i32 [ %33, %17 ], [ 0, %2 ], [ 0, %12 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #24 - ret i32 %36 + ret i32 %35 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -10635,14 +10633,14 @@ define internal i32 @selinux_socket_sendmsg(ptr nocapture noundef readonly %0, p %10 = getelementptr inbounds nuw i8, ptr %9, i64 16 %11 = load i32, ptr %10, align 8 %12 = icmp eq i32 %11, 1 - br i1 %12, label %36, label %13 + br i1 %12, label %35, label %13 13: ; preds = %3 %14 = load volatile i8, ptr getelementptr inbounds nuw (i8, ptr @selinux_state, i64 10), align 2, !range !7, !noundef !8 %15 = icmp eq i8 %14, 0 %16 = icmp eq i32 %11, 7 %17 = and i1 %16, %15 - br i1 %17, label %36, label %18 + br i1 %17, label %35, label %18 18: ; preds = %13 store i8 2, ptr %4, align 8 @@ -10651,29 +10649,27 @@ define internal i32 @selinux_socket_sendmsg(ptr nocapture noundef readonly %0, p store i32 0, ptr %5, align 8 %20 = getelementptr inbounds nuw i8, ptr %5, i64 8 store ptr %7, ptr %20, align 8 - %21 = getelementptr inbounds nuw i8, ptr %5, i64 16 - store i16 0, ptr %21, align 8 - %22 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 - %23 = inttoptr i64 %22 to ptr - %24 = getelementptr inbounds nuw i8, ptr %23, i64 1784 - %25 = load ptr, ptr %24, align 8 - %26 = getelementptr inbounds nuw i8, ptr %25, i64 128 - %27 = load ptr, ptr %26, align 8 - %28 = load i32, ptr @selinux_blob_sizes, align 4 - %29 = sext i32 %28 to i64 - %30 = getelementptr i8, ptr %27, i64 %29 - %31 = getelementptr inbounds nuw i8, ptr %30, i64 4 - %32 = load i32, ptr %31, align 4 - %33 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %34 = load i16, ptr %33, align 8 - %35 = call i32 @avc_has_perm(i32 noundef %32, i32 noundef %11, i16 noundef zeroext %34, i32 noundef 4, ptr noundef nonnull %4) #24 - br label %36 + %21 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 + %22 = inttoptr i64 %21 to ptr + %23 = getelementptr inbounds nuw i8, ptr %22, i64 1784 + %24 = load ptr, ptr %23, align 8 + %25 = getelementptr inbounds nuw i8, ptr %24, i64 128 + %26 = load ptr, ptr %25, align 8 + %27 = load i32, ptr @selinux_blob_sizes, align 4 + %28 = sext i32 %27 to i64 + %29 = getelementptr i8, ptr %26, i64 %28 + %30 = getelementptr inbounds nuw i8, ptr %29, i64 4 + %31 = load i32, ptr %30, align 4 + %32 = getelementptr inbounds nuw i8, ptr %9, i64 24 + %33 = load i16, ptr %32, align 8 + %34 = call i32 @avc_has_perm(i32 noundef %31, i32 noundef %11, i16 noundef zeroext %33, i32 noundef 4, ptr noundef nonnull %4) #24 + br label %35 -36: ; preds = %18, %13, %3 - %37 = phi i32 [ %35, %18 ], [ 0, %3 ], [ 0, %13 ] +35: ; preds = %18, %13, %3 + %36 = phi i32 [ %34, %18 ], [ 0, %3 ], [ 0, %13 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #24 - ret i32 %37 + ret i32 %36 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -10691,14 +10687,14 @@ define internal i32 @selinux_socket_recvmsg(ptr nocapture noundef readonly %0, p %11 = getelementptr inbounds nuw i8, ptr %10, i64 16 %12 = load i32, ptr %11, align 8 %13 = icmp eq i32 %12, 1 - br i1 %13, label %37, label %14 + br i1 %13, label %36, label %14 14: ; preds = %4 %15 = load volatile i8, ptr getelementptr inbounds nuw (i8, ptr @selinux_state, i64 10), align 2, !range !7, !noundef !8 %16 = icmp eq i8 %15, 0 %17 = icmp eq i32 %12, 7 %18 = and i1 %17, %16 - br i1 %18, label %37, label %19 + br i1 %18, label %36, label %19 19: ; preds = %14 store i8 2, ptr %5, align 8 @@ -10707,29 +10703,27 @@ define internal i32 @selinux_socket_recvmsg(ptr nocapture noundef readonly %0, p store i32 0, ptr %6, align 8 %21 = getelementptr inbounds nuw i8, ptr %6, i64 8 store ptr %8, ptr %21, align 8 - %22 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store i16 0, ptr %22, align 8 - %23 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 - %24 = inttoptr i64 %23 to ptr - %25 = getelementptr inbounds nuw i8, ptr %24, i64 1784 - %26 = load ptr, ptr %25, align 8 - %27 = getelementptr inbounds nuw i8, ptr %26, i64 128 - %28 = load ptr, ptr %27, align 8 - %29 = load i32, ptr @selinux_blob_sizes, align 4 - %30 = sext i32 %29 to i64 - %31 = getelementptr i8, ptr %28, i64 %30 - %32 = getelementptr inbounds nuw i8, ptr %31, i64 4 - %33 = load i32, ptr %32, align 4 - %34 = getelementptr inbounds nuw i8, ptr %10, i64 24 - %35 = load i16, ptr %34, align 8 - %36 = call i32 @avc_has_perm(i32 noundef %33, i32 noundef %12, i16 noundef zeroext %35, i32 noundef 2, ptr noundef nonnull %5) #24 - br label %37 + %22 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 + %23 = inttoptr i64 %22 to ptr + %24 = getelementptr inbounds nuw i8, ptr %23, i64 1784 + %25 = load ptr, ptr %24, align 8 + %26 = getelementptr inbounds nuw i8, ptr %25, i64 128 + %27 = load ptr, ptr %26, align 8 + %28 = load i32, ptr @selinux_blob_sizes, align 4 + %29 = sext i32 %28 to i64 + %30 = getelementptr i8, ptr %27, i64 %29 + %31 = getelementptr inbounds nuw i8, ptr %30, i64 4 + %32 = load i32, ptr %31, align 4 + %33 = getelementptr inbounds nuw i8, ptr %10, i64 24 + %34 = load i16, ptr %33, align 8 + %35 = call i32 @avc_has_perm(i32 noundef %32, i32 noundef %12, i16 noundef zeroext %34, i32 noundef 2, ptr noundef nonnull %5) #24 + br label %36 -37: ; preds = %19, %14, %4 - %38 = phi i32 [ %36, %19 ], [ 0, %4 ], [ 0, %14 ] +36: ; preds = %19, %14, %4 + %37 = phi i32 [ %35, %19 ], [ 0, %4 ], [ 0, %14 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %6) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #24 - ret i32 %38 + ret i32 %37 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -10747,14 +10741,14 @@ define internal i32 @selinux_socket_getsockname(ptr nocapture noundef readonly % %8 = getelementptr inbounds nuw i8, ptr %7, i64 16 %9 = load i32, ptr %8, align 8 %10 = icmp eq i32 %9, 1 - br i1 %10, label %34, label %11 + br i1 %10, label %33, label %11 11: ; preds = %1 %12 = load volatile i8, ptr getelementptr inbounds nuw (i8, ptr @selinux_state, i64 10), align 2, !range !7, !noundef !8 %13 = icmp eq i8 %12, 0 %14 = icmp eq i32 %9, 7 %15 = and i1 %14, %13 - br i1 %15, label %34, label %16 + br i1 %15, label %33, label %16 16: ; preds = %11 store i8 2, ptr %2, align 8 @@ -10763,29 +10757,27 @@ define internal i32 @selinux_socket_getsockname(ptr nocapture noundef readonly % store i32 0, ptr %3, align 8 %18 = getelementptr inbounds nuw i8, ptr %3, i64 8 store ptr %5, ptr %18, align 8 - %19 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i16 0, ptr %19, align 8 - %20 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 - %21 = inttoptr i64 %20 to ptr - %22 = getelementptr inbounds nuw i8, ptr %21, i64 1784 - %23 = load ptr, ptr %22, align 8 - %24 = getelementptr inbounds nuw i8, ptr %23, i64 128 - %25 = load ptr, ptr %24, align 8 - %26 = load i32, ptr @selinux_blob_sizes, align 4 - %27 = sext i32 %26 to i64 - %28 = getelementptr i8, ptr %25, i64 %27 - %29 = getelementptr inbounds nuw i8, ptr %28, i64 4 - %30 = load i32, ptr %29, align 4 - %31 = getelementptr inbounds nuw i8, ptr %7, i64 24 - %32 = load i16, ptr %31, align 8 - %33 = call i32 @avc_has_perm(i32 noundef %30, i32 noundef %9, i16 noundef zeroext %32, i32 noundef 16, ptr noundef nonnull %2) #24 - br label %34 + %19 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 + %20 = inttoptr i64 %19 to ptr + %21 = getelementptr inbounds nuw i8, ptr %20, i64 1784 + %22 = load ptr, ptr %21, align 8 + %23 = getelementptr inbounds nuw i8, ptr %22, i64 128 + %24 = load ptr, ptr %23, align 8 + %25 = load i32, ptr @selinux_blob_sizes, align 4 + %26 = sext i32 %25 to i64 + %27 = getelementptr i8, ptr %24, i64 %26 + %28 = getelementptr inbounds nuw i8, ptr %27, i64 4 + %29 = load i32, ptr %28, align 4 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 24 + %31 = load i16, ptr %30, align 8 + %32 = call i32 @avc_has_perm(i32 noundef %29, i32 noundef %9, i16 noundef zeroext %31, i32 noundef 16, ptr noundef nonnull %2) #24 + br label %33 -34: ; preds = %16, %11, %1 - %35 = phi i32 [ %33, %16 ], [ 0, %1 ], [ 0, %11 ] +33: ; preds = %16, %11, %1 + %34 = phi i32 [ %32, %16 ], [ 0, %1 ], [ 0, %11 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %3) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #24 - ret i32 %35 + ret i32 %34 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -10803,14 +10795,14 @@ define internal i32 @selinux_socket_getpeername(ptr nocapture noundef readonly % %8 = getelementptr inbounds nuw i8, ptr %7, i64 16 %9 = load i32, ptr %8, align 8 %10 = icmp eq i32 %9, 1 - br i1 %10, label %34, label %11 + br i1 %10, label %33, label %11 11: ; preds = %1 %12 = load volatile i8, ptr getelementptr inbounds nuw (i8, ptr @selinux_state, i64 10), align 2, !range !7, !noundef !8 %13 = icmp eq i8 %12, 0 %14 = icmp eq i32 %9, 7 %15 = and i1 %14, %13 - br i1 %15, label %34, label %16 + br i1 %15, label %33, label %16 16: ; preds = %11 store i8 2, ptr %2, align 8 @@ -10819,29 +10811,27 @@ define internal i32 @selinux_socket_getpeername(ptr nocapture noundef readonly % store i32 0, ptr %3, align 8 %18 = getelementptr inbounds nuw i8, ptr %3, i64 8 store ptr %5, ptr %18, align 8 - %19 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i16 0, ptr %19, align 8 - %20 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 - %21 = inttoptr i64 %20 to ptr - %22 = getelementptr inbounds nuw i8, ptr %21, i64 1784 - %23 = load ptr, ptr %22, align 8 - %24 = getelementptr inbounds nuw i8, ptr %23, i64 128 - %25 = load ptr, ptr %24, align 8 - %26 = load i32, ptr @selinux_blob_sizes, align 4 - %27 = sext i32 %26 to i64 - %28 = getelementptr i8, ptr %25, i64 %27 - %29 = getelementptr inbounds nuw i8, ptr %28, i64 4 - %30 = load i32, ptr %29, align 4 - %31 = getelementptr inbounds nuw i8, ptr %7, i64 24 - %32 = load i16, ptr %31, align 8 - %33 = call i32 @avc_has_perm(i32 noundef %30, i32 noundef %9, i16 noundef zeroext %32, i32 noundef 16, ptr noundef nonnull %2) #24 - br label %34 + %19 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 + %20 = inttoptr i64 %19 to ptr + %21 = getelementptr inbounds nuw i8, ptr %20, i64 1784 + %22 = load ptr, ptr %21, align 8 + %23 = getelementptr inbounds nuw i8, ptr %22, i64 128 + %24 = load ptr, ptr %23, align 8 + %25 = load i32, ptr @selinux_blob_sizes, align 4 + %26 = sext i32 %25 to i64 + %27 = getelementptr i8, ptr %24, i64 %26 + %28 = getelementptr inbounds nuw i8, ptr %27, i64 4 + %29 = load i32, ptr %28, align 4 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 24 + %31 = load i16, ptr %30, align 8 + %32 = call i32 @avc_has_perm(i32 noundef %29, i32 noundef %9, i16 noundef zeroext %31, i32 noundef 16, ptr noundef nonnull %2) #24 + br label %33 -34: ; preds = %16, %11, %1 - %35 = phi i32 [ %33, %16 ], [ 0, %1 ], [ 0, %11 ] +33: ; preds = %16, %11, %1 + %34 = phi i32 [ %32, %16 ], [ 0, %1 ], [ 0, %11 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %3) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #24 - ret i32 %35 + ret i32 %34 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -10859,14 +10849,14 @@ define internal i32 @selinux_socket_getsockopt(ptr nocapture noundef readonly %0 %10 = getelementptr inbounds nuw i8, ptr %9, i64 16 %11 = load i32, ptr %10, align 8 %12 = icmp eq i32 %11, 1 - br i1 %12, label %36, label %13 + br i1 %12, label %35, label %13 13: ; preds = %3 %14 = load volatile i8, ptr getelementptr inbounds nuw (i8, ptr @selinux_state, i64 10), align 2, !range !7, !noundef !8 %15 = icmp eq i8 %14, 0 %16 = icmp eq i32 %11, 7 %17 = and i1 %16, %15 - br i1 %17, label %36, label %18 + br i1 %17, label %35, label %18 18: ; preds = %13 store i8 2, ptr %4, align 8 @@ -10875,29 +10865,27 @@ define internal i32 @selinux_socket_getsockopt(ptr nocapture noundef readonly %0 store i32 0, ptr %5, align 8 %20 = getelementptr inbounds nuw i8, ptr %5, i64 8 store ptr %7, ptr %20, align 8 - %21 = getelementptr inbounds nuw i8, ptr %5, i64 16 - store i16 0, ptr %21, align 8 - %22 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 - %23 = inttoptr i64 %22 to ptr - %24 = getelementptr inbounds nuw i8, ptr %23, i64 1784 - %25 = load ptr, ptr %24, align 8 - %26 = getelementptr inbounds nuw i8, ptr %25, i64 128 - %27 = load ptr, ptr %26, align 8 - %28 = load i32, ptr @selinux_blob_sizes, align 4 - %29 = sext i32 %28 to i64 - %30 = getelementptr i8, ptr %27, i64 %29 - %31 = getelementptr inbounds nuw i8, ptr %30, i64 4 - %32 = load i32, ptr %31, align 4 - %33 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %34 = load i16, ptr %33, align 8 - %35 = call i32 @avc_has_perm(i32 noundef %32, i32 noundef %11, i16 noundef zeroext %34, i32 noundef 32768, ptr noundef nonnull %4) #24 - br label %36 + %21 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 + %22 = inttoptr i64 %21 to ptr + %23 = getelementptr inbounds nuw i8, ptr %22, i64 1784 + %24 = load ptr, ptr %23, align 8 + %25 = getelementptr inbounds nuw i8, ptr %24, i64 128 + %26 = load ptr, ptr %25, align 8 + %27 = load i32, ptr @selinux_blob_sizes, align 4 + %28 = sext i32 %27 to i64 + %29 = getelementptr i8, ptr %26, i64 %28 + %30 = getelementptr inbounds nuw i8, ptr %29, i64 4 + %31 = load i32, ptr %30, align 4 + %32 = getelementptr inbounds nuw i8, ptr %9, i64 24 + %33 = load i16, ptr %32, align 8 + %34 = call i32 @avc_has_perm(i32 noundef %31, i32 noundef %11, i16 noundef zeroext %33, i32 noundef 32768, ptr noundef nonnull %4) #24 + br label %35 -36: ; preds = %18, %13, %3 - %37 = phi i32 [ %35, %18 ], [ 0, %3 ], [ 0, %13 ] +35: ; preds = %18, %13, %3 + %36 = phi i32 [ %34, %18 ], [ 0, %3 ], [ 0, %13 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #24 - ret i32 %37 + ret i32 %36 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -10981,14 +10969,14 @@ define internal i32 @selinux_socket_shutdown(ptr nocapture noundef readonly %0, %9 = getelementptr inbounds nuw i8, ptr %8, i64 16 %10 = load i32, ptr %9, align 8 %11 = icmp eq i32 %10, 1 - br i1 %11, label %35, label %12 + br i1 %11, label %34, label %12 12: ; preds = %2 %13 = load volatile i8, ptr getelementptr inbounds nuw (i8, ptr @selinux_state, i64 10), align 2, !range !7, !noundef !8 %14 = icmp eq i8 %13, 0 %15 = icmp eq i32 %10, 7 %16 = and i1 %15, %14 - br i1 %16, label %35, label %17 + br i1 %16, label %34, label %17 17: ; preds = %12 store i8 2, ptr %3, align 8 @@ -10997,29 +10985,27 @@ define internal i32 @selinux_socket_shutdown(ptr nocapture noundef readonly %0, store i32 0, ptr %4, align 8 %19 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %6, ptr %19, align 8 - %20 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store i16 0, ptr %20, align 8 - %21 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 - %22 = inttoptr i64 %21 to ptr - %23 = getelementptr inbounds nuw i8, ptr %22, i64 1784 - %24 = load ptr, ptr %23, align 8 - %25 = getelementptr inbounds nuw i8, ptr %24, i64 128 - %26 = load ptr, ptr %25, align 8 - %27 = load i32, ptr @selinux_blob_sizes, align 4 - %28 = sext i32 %27 to i64 - %29 = getelementptr i8, ptr %26, i64 %28 - %30 = getelementptr inbounds nuw i8, ptr %29, i64 4 - %31 = load i32, ptr %30, align 4 - %32 = getelementptr inbounds nuw i8, ptr %8, i64 24 - %33 = load i16, ptr %32, align 8 - %34 = call i32 @avc_has_perm(i32 noundef %31, i32 noundef %10, i16 noundef zeroext %33, i32 noundef 131072, ptr noundef nonnull %3) #24 - br label %35 + %20 = call i64 asm "movq %gs:${1:P}, $0", "=r,p,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @pcpu_hot) #26, !srcloc !6 + %21 = inttoptr i64 %20 to ptr + %22 = getelementptr inbounds nuw i8, ptr %21, i64 1784 + %23 = load ptr, ptr %22, align 8 + %24 = getelementptr inbounds nuw i8, ptr %23, i64 128 + %25 = load ptr, ptr %24, align 8 + %26 = load i32, ptr @selinux_blob_sizes, align 4 + %27 = sext i32 %26 to i64 + %28 = getelementptr i8, ptr %25, i64 %27 + %29 = getelementptr inbounds nuw i8, ptr %28, i64 4 + %30 = load i32, ptr %29, align 4 + %31 = getelementptr inbounds nuw i8, ptr %8, i64 24 + %32 = load i16, ptr %31, align 8 + %33 = call i32 @avc_has_perm(i32 noundef %30, i32 noundef %10, i16 noundef zeroext %32, i32 noundef 131072, ptr noundef nonnull %3) #24 + br label %34 -35: ; preds = %17, %12, %2 - %36 = phi i32 [ %34, %17 ], [ 0, %2 ], [ 0, %12 ] +34: ; preds = %17, %12, %2 + %35 = phi i32 [ %33, %17 ], [ 0, %2 ], [ 0, %12 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #24 - ret i32 %36 + ret i32 %35 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/minetest/optimized/touchscreengui.cpp.ll b/bench/minetest/optimized/touchscreengui.cpp.ll index f26938deb72..c905698e2e4 100644 --- a/bench/minetest/optimized/touchscreengui.cpp.ll +++ b/bench/minetest/optimized/touchscreengui.cpp.ll @@ -7295,8 +7295,6 @@ if.then.i: ; preds = %if.then16 %call.i = tail call fastcc noundef i32 @_ZL13id_to_keycode19touch_gui_button_id(i32 noundef 3) %Key.i = getelementptr inbounds nuw i8, ptr %translated.i, i64 12 store i32 %call.i, ptr %Key.i, align 4, !tbaa !13 - %PressedDown.i = getelementptr inbounds nuw i8, ptr %translated.i, i64 20 - store i8 0, ptr %PressedDown.i, align 4 %m_receiver.i = getelementptr inbounds nuw i8, ptr %this, i64 24 %7 = load ptr, ptr %m_receiver.i, align 8, !tbaa !142 %vtable.i = load ptr, ptr %7, align 8, !tbaa !37 @@ -7308,6 +7306,7 @@ if.then.i: ; preds = %if.then16 br i1 %tobool3.not.i, label %if.end.i, label %if.then4.i if.then4.i: ; preds = %if.then.i + %PressedDown.i = getelementptr inbounds nuw i8, ptr %translated.i, i64 20 %bf.load6.i = load i8, ptr %PressedDown.i, align 4 %bf.set8.i = or i8 %bf.load6.i, 1 store i8 %bf.set8.i, ptr %PressedDown.i, align 4 @@ -7444,8 +7443,6 @@ if.then: ; preds = %entry %call = tail call fastcc noundef i32 @_ZL13id_to_keycode19touch_gui_button_id(i32 noundef 3) %Key = getelementptr inbounds nuw i8, ptr %translated, i64 12 store i32 %call, ptr %Key, align 4, !tbaa !13 - %PressedDown = getelementptr inbounds nuw i8, ptr %translated, i64 20 - store i8 0, ptr %PressedDown, align 4 %m_receiver = getelementptr inbounds nuw i8, ptr %this, i64 24 %1 = load ptr, ptr %m_receiver, align 8, !tbaa !142 %vtable = load ptr, ptr %1, align 8, !tbaa !37 @@ -7458,6 +7455,7 @@ if.then: ; preds = %entry br i1 %tobool3.not, label %if.end, label %if.then4 if.then4: ; preds = %if.then + %PressedDown = getelementptr inbounds nuw i8, ptr %translated, i64 20 %bf.load6 = load i8, ptr %PressedDown, align 4 %bf.set8 = or i8 %bf.load6, 1 store i8 %bf.set8, ptr %PressedDown, align 4