Re: Optimize mul_var() for var1ndigits >= 8

Dean Rasheed <dean.a.rasheed@gmail.com>

From: Dean Rasheed <dean.a.rasheed@gmail.com>
To: Joel Jacobson <joel@compiler.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-08-06T11:52:32Z
Lists: pgsql-hackers

Attachments

On Mon, 5 Aug 2024 at 13:34, Joel Jacobson <joel@compiler.org> wrote:
>
> Noted from 5e1f3b9eb:
> "While it adds some space on 32-bit machines, we aren't optimizing for that case anymore."
>
> In this case, the extra 32-bit numeric_mul code seems to be 89 lines of code, excluding comments.
> To me, this seems like quite a lot, so I lean on thinking we should omit that code for now.
> We can always add it later if we get pushback.
>

OK, I guess that's reasonable. There is no clear-cut right answer
here, but I don't really want to have a lot of 32-bit-specific code
that significantly complicates this function, making it harder to
maintain. Without that code, the patch becomes much simpler, which
seems like a decent justification for any performance tradeoffs on
32-bit machines that are unlikely to affect many people anyway.

Regards,
Dean

Commits

  1. Optimise numeric multiplication using base-NBASE^2 arithmetic.

  2. Extend mul_var_short() to 5 and 6-digit inputs.