Repository navigation
Skip codegen of unreachable int to decimal carrier arms - #10735
Conversation
a59fe35 to
ec5286e
Compare
Merging this PR will degrade performance by 22.72%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
|
connortsui20
left a comment
There was a problem hiding this comment.
this will likely be different after the changes Im planning on making in #10733
ec5286e to
623fc4e
Compare
The scaled-down integer to decimal cast selects the carrier as max(carrier(S), T). The source and target types fix the carrier, but the dispatch macro compiled the kernel for all six decimal widths in each (S, T) pair. A const condition now removes the five arms that cannot match before codegen. vortex-array release __text: 14,012,988 -> 13,697,852 bytes (-315 KB). LLVM IR lines: 5,405,422 -> 5,200,767. Signed-off-by: Robert Kruszewski <github@robertk.io> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
623fc4e to
1a0cd7a
Compare
The scaled-down integer to decimal cast selects its carrier as
max(carrier(S), T). The source typeSand the target typeTfix the carrier, butmatch_each_decimal_value_type!compiled the kernel for all six decimal widths in each of the 48(S, T)pairs. Anif constcondition now removes the five arms that cannot match before code generation. The arm that runs is the same as before.primitive_decimal_carrier_typebecomes aconst fnso that the condition can use it.vortex-arrayrelease__text(macOS arm64)vortex-arrayLLVM IR lines