Skip to content

use size_t for reduced input dims in reduce compute kernels#10779

Open
aizu-m wants to merge 1 commit into
google:masterfrom
aizu-m:reduce-compute-dim-narrowing
Open

use size_t for reduced input dims in reduce compute kernels#10779
aizu-m wants to merge 1 commit into
google:masterfrom
aizu-m:reduce-compute-dim-narrowing

Conversation

@aizu-m

@aizu-m aizu-m commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Building with -Wshorten-64-to-32:

src/operator-run.c:1435:22: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
 1435 |   int input_shape1 = context->input_shape[1];

xnn_compute_contiguous_reduce and xnn_compute_discontiguous_reduce copy the reduced dimensions out of context->input_shape (a size_t array) into int locals, then use them as loop bounds. A reduced dimension of 2^31 or more truncates to a negative int. In for (size_t i = 0; i < input_shape1; ++i) that negative value converts back to a near-2^64 bound, so the loop walks the input and output pointers well past their buffers. The discontiguous path also hands the truncated values straight to the size_t k2/k3 parameters of discontiguous_reduce2.

Every other extent, stride and index in both functions is already size_t. These four locals were the only ones left as int. Changed them to match.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant