Skip to content

Commit bb633a0

Browse files
maxwbuckleyclaude
andcommitted
fix: resolve compiler warnings (utils-distances)
Mechanical fixes for compiler warnings found with -Wall -Wextra -Wshadow. No functional changes — only variable renames, unused parameter annotations, signed/unsigned casts, and [[fallthrough]] attributes. Part 6/13 of the compiler warnings cleanup (split from PR facebookresearch#4810). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c24598a commit bb633a0

11 files changed

Lines changed: 177 additions & 151 deletions

File tree

faiss/utils/Heap.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ namespace faiss {
1717
template <typename C>
1818
void HeapArray<C>::heapify() {
1919
#pragma omp parallel for
20-
for (int64_t j = 0; j < nh; j++) {
20+
for (int64_t j = 0; j < static_cast<int64_t>(nh); j++) {
2121
heap_heapify<C>(k, val + j * k, ids + j * k);
2222
}
2323
}
2424

2525
template <typename C>
2626
void HeapArray<C>::reorder() {
2727
#pragma omp parallel for
28-
for (int64_t j = 0; j < nh; j++) {
28+
for (int64_t j = 0; j < static_cast<int64_t>(nh); j++) {
2929
heap_reorder<C>(k, val + j * k, ids + j * k);
3030
}
3131
}
@@ -37,7 +37,7 @@ void HeapArray<C>::addn(size_t nj, const T* vin, TI j0, size_t i0, int64_t ni) {
3737
}
3838
assert(i0 >= 0 && i0 + ni <= nh);
3939
#pragma omp parallel for if (ni * nj > 100000)
40-
for (int64_t i = i0; i < i0 + ni; i++) {
40+
for (int64_t i = i0; i < static_cast<int64_t>(i0) + ni; i++) {
4141
T* __restrict simi = get_val(i);
4242
TI* __restrict idxi = get_ids(i);
4343
const T* ip_line = vin + (i - i0) * nj;
@@ -68,7 +68,7 @@ void HeapArray<C>::addn_with_ids(
6868
}
6969
assert(i0 >= 0 && i0 + ni <= nh);
7070
#pragma omp parallel for if (ni * nj > 100000)
71-
for (int64_t i = i0; i < i0 + ni; i++) {
71+
for (int64_t i = i0; i < static_cast<int64_t>(i0) + ni; i++) {
7272
T* __restrict simi = get_val(i);
7373
TI* __restrict idxi = get_ids(i);
7474
const T* ip_line = vin + (i - i0) * nj;
@@ -96,7 +96,7 @@ void HeapArray<C>::addn_query_subset_with_ids(
9696
id_stride = nj;
9797
}
9898
#pragma omp parallel for if (nsubset * nj > 100000)
99-
for (int64_t si = 0; si < nsubset; si++) {
99+
for (int64_t si = 0; si < static_cast<int64_t>(nsubset); si++) {
100100
TI i = subset[si];
101101
T* __restrict simi = get_val(i);
102102
TI* __restrict idxi = get_ids(i);
@@ -115,7 +115,7 @@ void HeapArray<C>::addn_query_subset_with_ids(
115115
template <typename C>
116116
void HeapArray<C>::per_line_extrema(T* out_val, TI* out_ids) const {
117117
#pragma omp parallel for if (nh * k > 100000)
118-
for (int64_t j = 0; j < nh; j++) {
118+
for (int64_t j = 0; j < static_cast<int64_t>(nh); j++) {
119119
int64_t imin = -1;
120120
typename C::T xval = C::Crev::neutral();
121121
const typename C::T* x_ = val + j * k;
@@ -187,15 +187,15 @@ void merge_knn_results(
187187
std::vector<distance_t> buf2(nshard);
188188
distance_t* heap_vals = buf2.data();
189189
#pragma omp for
190-
for (long i = 0; i < n; i++) {
190+
for (long i = 0; i < static_cast<long>(n); i++) {
191191
// the heap maps values to the shard where they are
192192
// produced.
193193
const distance_t* D_in = all_distances + i * k;
194194
const idx_t* I_in = all_labels + i * k;
195195
int heap_size = 0;
196196

197197
// push the first element of each shard (if not -1)
198-
for (long s = 0; s < nshard; s++) {
198+
for (long s = 0; s < static_cast<long>(nshard); s++) {
199199
pointer[s] = 0;
200200
if (I_in[stride * s] >= 0) {
201201
heap_push<C>(
@@ -210,7 +210,7 @@ void merge_knn_results(
210210
distance_t* D = distances + i * k;
211211
idx_t* I = labels + i * k;
212212

213-
int j;
213+
size_t j;
214214
for (j = 0; j < k && heap_size > 0; j++) {
215215
// pop element from best shard
216216
int s = shard_ids[0]; // top of heap
@@ -221,7 +221,7 @@ void merge_knn_results(
221221
// pop from shard, advance pointer for this shard
222222
heap_pop<C>(heap_size--, heap_vals, shard_ids);
223223
p++;
224-
if (p < k && I_in[stride * s + p] >= 0) {
224+
if (static_cast<size_t>(p) < k && I_in[stride * s + p] >= 0) {
225225
heap_push<C>(
226226
++heap_size,
227227
heap_vals,

faiss/utils/distances.cpp

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ void fvec_norms_L2(
207207
size_t d,
208208
size_t nx) {
209209
#pragma omp parallel for if (nx > 10000)
210-
for (int64_t i = 0; i < nx; i++) {
210+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
211211
nr[i] = sqrtf(fvec_norm_L2sqr_dispatch(x + i * d, d));
212212
}
213213
}
@@ -218,7 +218,7 @@ void fvec_norms_L2sqr(
218218
size_t d,
219219
size_t nx) {
220220
#pragma omp parallel for if (nx > 10000)
221-
for (int64_t i = 0; i < nx; i++) {
221+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
222222
nr[i] = fvec_norm_L2sqr_dispatch(x + i * d, d);
223223
}
224224
}
@@ -247,14 +247,14 @@ void fvec_norms_L2sqr(
247247
}
248248

249249
void fvec_renorm_L2_noomp(size_t d, size_t nx, float* __restrict x) {
250-
for (int64_t i = 0; i < nx; i++) {
250+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
251251
FVEC_RENORM_L2_IMPL
252252
}
253253
}
254254

255255
void fvec_renorm_L2_omp(size_t d, size_t nx, float* __restrict x) {
256256
#pragma omp parallel for if (nx > 10000)
257-
for (int64_t i = 0; i < nx; i++) {
257+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
258258
FVEC_RENORM_L2_IMPL
259259
}
260260
}
@@ -290,7 +290,7 @@ void exhaustive_inner_product_seq(
290290
{
291291
SingleResultHandler resi(res);
292292
#pragma omp for
293-
for (int64_t i = 0; i < nx; i++) {
293+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
294294
const float* x_i = x + i * d;
295295
const float* y_j = y;
296296

@@ -324,7 +324,7 @@ void exhaustive_L2sqr_seq(
324324
{
325325
SingleResultHandler resi(res);
326326
#pragma omp for
327-
for (int64_t i = 0; i < nx; i++) {
327+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
328328
const float* x_i = x + i * d;
329329
const float* y_j = y;
330330
resi.begin(i);
@@ -462,7 +462,7 @@ void exhaustive_L2sqr_blas_default_impl(
462462
ip_block.get(),
463463
&nyi);
464464
}
465-
for (int64_t i = i0; i < i1; i++) {
465+
for (size_t i = i0; i < i1; i++) {
466466
float* ip_line = ip_block.get() + (i - i0) * (j1 - j0);
467467

468468
for (size_t j = j0; j < j1; j++) {
@@ -497,7 +497,7 @@ void exhaustive_L2sqr_blas(
497497
size_t nx,
498498
size_t ny,
499499
BlockResultHandler& res,
500-
const float* y_norms = nullptr) {
500+
const float* /* y_norms */ = nullptr) {
501501
exhaustive_L2sqr_blas_default_impl(x, y, d, nx, ny, res);
502502
}
503503

@@ -563,7 +563,7 @@ void exhaustive_L2sqr_blas_cmax_avx2(
563563
ip_block.get(),
564564
&nyi);
565565
}
566-
for (int64_t i = i0; i < i1; i++) {
566+
for (size_t i = i0; i < i1; i++) {
567567
float* ip_line = ip_block.get() + (i - i0) * (j1 - j0);
568568

569569
_mm_prefetch((const char*)ip_line, _MM_HINT_NTA);
@@ -772,7 +772,7 @@ void exhaustive_L2sqr_blas_cmax_sve(
772772
ip_block.get(),
773773
&nyi);
774774
}
775-
for (int64_t i = i0; i < i1; i++) {
775+
for (size_t i = i0; i < i1; i++) {
776776
const size_t count = j1 - j0;
777777
float* ip_line = ip_block.get() + (i - i0) * count;
778778

@@ -947,7 +947,8 @@ struct Run_search_inner_product {
947947
size_t d,
948948
size_t nx,
949949
size_t ny) {
950-
if (res.sel || nx < distance_compute_blas_threshold) {
950+
if (res.sel ||
951+
nx < static_cast<size_t>(distance_compute_blas_threshold)) {
951952
exhaustive_inner_product_seq(x, y, d, nx, ny, res);
952953
} else {
953954
exhaustive_inner_product_blas(x, y, d, nx, ny, res);
@@ -965,7 +966,8 @@ struct Run_search_L2sqr {
965966
size_t nx,
966967
size_t ny,
967968
const float* y_norm2) {
968-
if (res.sel || nx < distance_compute_blas_threshold) {
969+
if (res.sel ||
970+
nx < static_cast<size_t>(distance_compute_blas_threshold)) {
969971
exhaustive_L2sqr_seq(x, y, d, nx, ny, res);
970972
} else {
971973
exhaustive_L2sqr_blas(x, y, d, nx, ny, res, y_norm2);
@@ -1131,7 +1133,7 @@ void fvec_inner_products_by_idx(
11311133
size_t nx,
11321134
size_t ny) {
11331135
#pragma omp parallel for
1134-
for (int64_t j = 0; j < nx; j++) {
1136+
for (int64_t j = 0; j < static_cast<int64_t>(nx); j++) {
11351137
const int64_t* __restrict idsj = ids + j * ny;
11361138
const float* xj = x + j * d;
11371139
float* __restrict ipj = ip + j * ny;
@@ -1156,7 +1158,7 @@ void fvec_L2sqr_by_idx(
11561158
size_t nx,
11571159
size_t ny) {
11581160
#pragma omp parallel for
1159-
for (int64_t j = 0; j < nx; j++) {
1161+
for (int64_t j = 0; j < static_cast<int64_t>(nx); j++) {
11601162
const int64_t* __restrict idsj = ids + j * ny;
11611163
const float* xj = x + j * d;
11621164
float* __restrict disj = dis + j * ny;
@@ -1179,7 +1181,7 @@ void pairwise_indexed_L2sqr(
11791181
const int64_t* iy,
11801182
float* dis) {
11811183
#pragma omp parallel for if (n > 1)
1182-
for (int64_t j = 0; j < n; j++) {
1184+
for (int64_t j = 0; j < static_cast<int64_t>(n); j++) {
11831185
if (ix[j] >= 0 && iy[j] >= 0) {
11841186
dis[j] = fvec_L2sqr_dispatch(x + d * ix[j], y + d * iy[j], d);
11851187
} else {
@@ -1197,7 +1199,7 @@ void pairwise_indexed_inner_product(
11971199
const int64_t* iy,
11981200
float* dis) {
11991201
#pragma omp parallel for if (n > 1)
1200-
for (int64_t j = 0; j < n; j++) {
1202+
for (int64_t j = 0; j < static_cast<int64_t>(n); j++) {
12011203
if (ix[j] >= 0 && iy[j] >= 0) {
12021204
dis[j] = fvec_inner_product_dispatch(
12031205
x + d * ix[j], y + d * iy[j], d);
@@ -1226,7 +1228,7 @@ void knn_inner_products_by_idx(
12261228
}
12271229

12281230
#pragma omp parallel for if (nx > 100)
1229-
for (int64_t i = 0; i < nx; i++) {
1231+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
12301232
const float* x_ = x + i * d;
12311233
const int64_t* idsi = ids + i * ld_ids;
12321234
size_t j;
@@ -1235,7 +1237,7 @@ void knn_inner_products_by_idx(
12351237
minheap_heapify(k, simi, idxi);
12361238

12371239
for (j = 0; j < nsubset; j++) {
1238-
if (idsi[j] < 0 || idsi[j] >= ny) {
1240+
if (idsi[j] < 0 || static_cast<size_t>(idsi[j]) >= ny) {
12391241
break;
12401242
}
12411243
float ip = fvec_inner_product_dispatch(x_, y + d * idsi[j], d);
@@ -1264,14 +1266,14 @@ void knn_L2sqr_by_idx(
12641266
ld_ids = ny;
12651267
}
12661268
#pragma omp parallel for if (nx > 100)
1267-
for (int64_t i = 0; i < nx; i++) {
1269+
for (int64_t i = 0; i < static_cast<int64_t>(nx); i++) {
12681270
const float* x_ = x + i * d;
12691271
const int64_t* __restrict idsi = ids + i * ld_ids;
12701272
float* __restrict simi = res_vals + i * k;
12711273
int64_t* __restrict idxi = res_ids + i * k;
12721274
maxheap_heapify(k, simi, idxi);
12731275
for (size_t j = 0; j < nsubset; j++) {
1274-
if (idsi[j] < 0 || idsi[j] >= ny) {
1276+
if (idsi[j] < 0 || static_cast<size_t>(idsi[j]) >= ny) {
12751277
break;
12761278
}
12771279
float disij = fvec_L2sqr_dispatch(x_, y + d * idsi[j], d);
@@ -1357,7 +1359,7 @@ void inner_product_to_L2sqr(
13571359
size_t n1,
13581360
size_t n2) {
13591361
#pragma omp parallel for
1360-
for (int64_t j = 0; j < n1; j++) {
1362+
for (int64_t j = 0; j < static_cast<int64_t>(n1); j++) {
13611363
float* disj = dis + j * n2;
13621364
for (size_t i = 0; i < n2; i++) {
13631365
disj[i] = nr1[j] + nr2[i] - 2 * disj[i];

faiss/utils/distances_fused/distances_fused.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ bool exhaustive_L2sqr_fused_cmax(
3535
return exhaustive_L2sqr_fused_cmax_simdlib(x, y, d, nx, ny, res, y_norms);
3636
#else
3737
// not supported, please use a general-purpose kernel
38+
(void)x;
39+
(void)y;
40+
(void)d;
41+
(void)res;
42+
(void)y_norms;
3843
return false;
3944
#endif
4045
}

faiss/utils/distances_fused/simdlib_based.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,8 @@ void exhaustive_L2sqr_fused_cmax(
260260
const size_t nx_p = (nx / NX_POINTS_PER_LOOP) * NX_POINTS_PER_LOOP;
261261
// the main loop.
262262
#pragma omp parallel for schedule(dynamic)
263-
for (int64_t i = 0; i < nx_p; i += NX_POINTS_PER_LOOP) {
263+
for (int64_t i = 0; i < static_cast<int64_t>(nx_p);
264+
i += NX_POINTS_PER_LOOP) {
264265
kernel<DIM, NX_POINTS_PER_LOOP, NY_POINTS_PER_LOOP>(
265266
x, y, y_transposed.data(), ny, res, y_norms, i);
266267
}

faiss/utils/extra_distances.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ struct ExtraDistanceComputer : FlatCodesDistanceComputer {
4141
}
4242

4343
ExtraDistanceComputer(
44-
const VD& vd,
44+
const VD& vd_in,
4545
const float* xb,
46-
size_t nb,
47-
const float* q = nullptr)
48-
: FlatCodesDistanceComputer((uint8_t*)xb, vd.d * sizeof(float)),
49-
vd(vd),
50-
nb(nb),
51-
q(q),
46+
size_t nb_in,
47+
const float* q_in = nullptr)
48+
: FlatCodesDistanceComputer((uint8_t*)xb, vd_in.d * sizeof(float)),
49+
vd(vd_in),
50+
nb(nb_in),
51+
q(q_in),
5252
b(xb) {}
5353

5454
void set_query(const float* x) override {
@@ -119,7 +119,7 @@ void knn_extra_metrics(
119119
size_t i1 = std::min(i0 + check_period, nx);
120120

121121
#pragma omp parallel for
122-
for (int64_t i = i0; i < i1; i++) {
122+
for (int64_t i = i0; i < static_cast<int64_t>(i1); i++) {
123123
const float* x_i = x + i * d;
124124
const float* y_j = y;
125125
size_t j;

faiss/utils/hamming-inl.h

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
namespace faiss {
1111

1212
// BitstringWriter and BitstringReader functions
13-
inline BitstringWriter::BitstringWriter(uint8_t* code, size_t code_size)
14-
: code(code), code_size(code_size), i(0) {
15-
memset(code, 0, code_size);
13+
inline BitstringWriter::BitstringWriter(uint8_t* code_in, size_t code_size_in)
14+
: code(code_in), code_size(code_size_in), i(0) {
15+
memset(code_in, 0, code_size_in);
1616
}
1717

1818
inline void BitstringWriter::write(uint64_t x, int nbit) {
@@ -36,8 +36,10 @@ inline void BitstringWriter::write(uint64_t x, int nbit) {
3636
}
3737
}
3838

39-
inline BitstringReader::BitstringReader(const uint8_t* code, size_t code_size)
40-
: code(code), code_size(code_size), i(0) {}
39+
inline BitstringReader::BitstringReader(
40+
const uint8_t* code_in,
41+
size_t code_size_in)
42+
: code(code_in), code_size(code_size_in), i(0) {}
4143

4244
inline uint64_t BitstringReader::read(int nbit) {
4345
assert(code_size * 8 >= nbit + i);
@@ -85,18 +87,18 @@ struct HCounterState {
8587
int k;
8688

8789
HCounterState(
88-
int* counters,
89-
int64_t* ids_per_dis,
90+
int* counters_in,
91+
int64_t* ids_per_dis_in,
9092
const uint8_t* x,
9193
int d,
92-
int k)
93-
: counters(counters),
94-
ids_per_dis(ids_per_dis),
94+
int k_in)
95+
: counters(counters_in),
96+
ids_per_dis(ids_per_dis_in),
9597
hc(x, d / 8),
9698
thres(d + 1),
9799
count_lt(0),
98100
count_eq(0),
99-
k(k) {}
101+
k(k_in) {}
100102

101103
void update_counter(const uint8_t* y, size_t j) {
102104
int32_t dis = hc.hamming(y);

0 commit comments

Comments
 (0)