Repository navigation
Dispatch structural kernels by physical width - #10841
connortsui20 wants to merge 3 commits into
Conversation
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Merging this PR will degrade performance by 16.67%4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
Summary
Follow-up to #10740. Kernels that only copy or compare stored bits can share code across signed, unsigned, and floating-point types of the same width.
Changes
API Changes
match_each_ptype_width!,match_each_decimal_type_width!, andmatch_each_power_of_two_width!bind aconst W: usize, with an explicit fallback for unsupported widths and an optional specialization list.Validation: pinned nightly formatting, scoped Clippy with all targets and features and
-D warnings, 100 focused tests, and seven width doctests pass.Code size comparison
Compared base
a59294e35ewith77a96de1c0using separate checkouts and target directories. Both use rustc 1.99.1, LLVM 23.1.1,aarch64-apple-darwin, the release profile (opt-level 3, one codegen unit, LTO off), package default features, and the repository's frame-pointer flag.Machine-code bytes from Mach-O
__textsections:vortex-bufferlibraryvortex-arraylibraryvortex-fastlaneslibraryvxbinaryThe linked
vxfile also shrinks from 120,844,528 to 120,779,936 bytes (-64,592). Library totals exclude Rust metadata. Small archive increases invortex-bufferandvortex-fastlanescome from metadata, while their machine sections are unchanged.Commands run in each checkout:
These measurements cover this target and profile. Runtime benchmarks were not run locally.