[llvm] [NFC][GlobMatcher] Add benchmark for globs at both sides and in the middle. (PR #164139)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 18 18:57:59 PDT 2025


https://github.com/vitalybuka created https://github.com/llvm/llvm-project/pull/164139

None

>From a92b72a7f36f0a62c176a79feaff6679ae212184 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalybuka at google.com>
Date: Sat, 18 Oct 2025 18:57:44 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
 =?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.6
---
 llvm/benchmarks/SpecialCaseListBM.cpp | 29 +++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/llvm/benchmarks/SpecialCaseListBM.cpp b/llvm/benchmarks/SpecialCaseListBM.cpp
index 00aa3cdda1b6a..b5d82682199db 100644
--- a/llvm/benchmarks/SpecialCaseListBM.cpp
+++ b/llvm/benchmarks/SpecialCaseListBM.cpp
@@ -110,6 +110,26 @@ std::string genGlobAtBothSides(const std::vector<std::string> &Files) {
   return S;
 }
 
+std::string genGlobAtBothSidesAndMid(const std::vector<std::string> &Files) {
+  std::string S;
+  std::minstd_rand Rng(RNG_SEED);
+  for (std::string F : Files) {
+    std::uniform_int_distribution<> PosDistrib(0, F.size() - 1);
+    F[PosDistrib(Rng)] = '*';
+
+    std::uniform_int_distribution<> Ends(0, 1);
+    if (Ends(Rng)) {
+      F.back() = '*';
+      F.front() = '*';
+    }
+
+    S += "src:";
+    S += F;
+    S += "\n";
+  }
+  return S;
+}
+
 void BM_Make_(
     benchmark::State &state,
     std::string (*GenerateCaseList)(const std::vector<std::string> &Files)) {
@@ -171,6 +191,9 @@ BENCHMARK_CAPTURE(BM_Make_, Mid__, genGlobInMid)
 BENCHMARK_CAPTURE(BM_Make_, Both_, genGlobAtBothSides)
     ->RangeMultiplier(MAX_LIST_MUL)
     ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
+BENCHMARK_CAPTURE(BM_Make_, Mix__, genGlobAtBothSidesAndMid)
+    ->RangeMultiplier(MAX_LIST_MUL)
+    ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
 
 BENCHMARK_CAPTURE(BM_True_, None_, genGlobNone)
     ->RangeMultiplier(MAX_LIST_MUL)
@@ -187,6 +210,9 @@ BENCHMARK_CAPTURE(BM_True_, Mid__, genGlobInMid)
 BENCHMARK_CAPTURE(BM_True_, Both_, genGlobAtBothSides)
     ->RangeMultiplier(MAX_LIST_MUL)
     ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
+BENCHMARK_CAPTURE(BM_True_, Mix__, genGlobAtBothSidesAndMid)
+    ->RangeMultiplier(MAX_LIST_MUL)
+    ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
 
 BENCHMARK_CAPTURE(BM_False, None_, genGlobNone)
     ->RangeMultiplier(MAX_LIST_MUL)
@@ -203,5 +229,8 @@ BENCHMARK_CAPTURE(BM_False, Mid__, genGlobInMid)
 BENCHMARK_CAPTURE(BM_False, Both_, genGlobAtBothSides)
     ->RangeMultiplier(MAX_LIST_MUL)
     ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
+BENCHMARK_CAPTURE(BM_False, Mix__, genGlobAtBothSidesAndMid)
+    ->RangeMultiplier(MAX_LIST_MUL)
+    ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
 
 BENCHMARK_MAIN();



More information about the llvm-commits mailing list