Skip to content

Commit d5ce81d

Browse files
authored
[NFC][GlobMatcher] Add benchmark for globs at both sides and in the middle. (#164139)
1 parent 52f5683 commit d5ce81d

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

llvm/benchmarks/SpecialCaseListBM.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,26 @@ std::string genGlobAtBothSides(const std::vector<std::string> &Files) {
110110
return S;
111111
}
112112

113+
std::string genGlobAtBothSidesAndMid(const std::vector<std::string> &Files) {
114+
std::string S;
115+
std::minstd_rand Rng(RNG_SEED);
116+
for (std::string F : Files) {
117+
std::uniform_int_distribution<> PosDistrib(0, F.size() - 1);
118+
F[PosDistrib(Rng)] = '*';
119+
120+
std::uniform_int_distribution<> Ends(0, 1);
121+
if (Ends(Rng)) {
122+
F.back() = '*';
123+
F.front() = '*';
124+
}
125+
126+
S += "src:";
127+
S += F;
128+
S += "\n";
129+
}
130+
return S;
131+
}
132+
113133
void BM_Make_(
114134
benchmark::State &state,
115135
std::string (*GenerateCaseList)(const std::vector<std::string> &Files)) {
@@ -171,6 +191,9 @@ BENCHMARK_CAPTURE(BM_Make_, Mid__, genGlobInMid)
171191
BENCHMARK_CAPTURE(BM_Make_, Both_, genGlobAtBothSides)
172192
->RangeMultiplier(MAX_LIST_MUL)
173193
->Range(MAX_LIST_MIN, MAX_LIST_MAX);
194+
BENCHMARK_CAPTURE(BM_Make_, Mix__, genGlobAtBothSidesAndMid)
195+
->RangeMultiplier(MAX_LIST_MUL)
196+
->Range(MAX_LIST_MIN, MAX_LIST_MAX);
174197

175198
BENCHMARK_CAPTURE(BM_True_, None_, genGlobNone)
176199
->RangeMultiplier(MAX_LIST_MUL)
@@ -187,6 +210,9 @@ BENCHMARK_CAPTURE(BM_True_, Mid__, genGlobInMid)
187210
BENCHMARK_CAPTURE(BM_True_, Both_, genGlobAtBothSides)
188211
->RangeMultiplier(MAX_LIST_MUL)
189212
->Range(MAX_LIST_MIN, MAX_LIST_MAX);
213+
BENCHMARK_CAPTURE(BM_True_, Mix__, genGlobAtBothSidesAndMid)
214+
->RangeMultiplier(MAX_LIST_MUL)
215+
->Range(MAX_LIST_MIN, MAX_LIST_MAX);
190216

191217
BENCHMARK_CAPTURE(BM_False, None_, genGlobNone)
192218
->RangeMultiplier(MAX_LIST_MUL)
@@ -203,5 +229,8 @@ BENCHMARK_CAPTURE(BM_False, Mid__, genGlobInMid)
203229
BENCHMARK_CAPTURE(BM_False, Both_, genGlobAtBothSides)
204230
->RangeMultiplier(MAX_LIST_MUL)
205231
->Range(MAX_LIST_MIN, MAX_LIST_MAX);
232+
BENCHMARK_CAPTURE(BM_False, Mix__, genGlobAtBothSidesAndMid)
233+
->RangeMultiplier(MAX_LIST_MUL)
234+
->Range(MAX_LIST_MIN, MAX_LIST_MAX);
206235

207236
BENCHMARK_MAIN();

0 commit comments

Comments
 (0)