Re: Multiply by a constant --> shift-and-adds algorithm?

Sergey Solyanik <ssolyanik@icdc.com>9 Nov 1997 12:06:15 -0500

From comp.compilers

Related articles
Multiply by a constant --> shift-and-adds algorithm? Vincent.Lefevre@ens-lyon.fr (Vincent Lefevre) (1997-11-07)
Re: Multiply by a constant --> shift-and-adds algorithm? rweaver@ix.netcom.com (1997-11-09)
Re: Multiply by a constant --> shift-and-adds algorithm? preston@cs.rice.edu (1997-11-09)
Re: Multiply by a constant --> shift-and-adds algorithm? ssolyanik@icdc.com (Sergey Solyanik) (1997-11-09)
Multiply by a constant --> shift-and-adds algorithm? txr@alumni.caltech.edu (Tim Rentsch) (1997-11-09)
Re: Multiply by a constant --> shift-and-adds algorithm? n8tm@aol.com (1997-11-11)
Re: Multiply by a constant --> shift-and-adds algorithm? dube@brachio.IRO.UMontreal.CA (Danny Dube) (1997-11-11)
Re: Multiply by a constant --> shift-and-adds algorithm? cdg@nullstone.com (Christopher Glaeser) (1997-11-13)
Re: Multiply by a constant --> shift-and-adds algorithm? ssolyanik@icdc.com (Sergey Solyanik) (1997-11-14)
Re: Multiply by a constant --> shift-and-adds algorithm? shankar@powertelglobal.com (Shankar Unni) (1997-11-15)
[2 later articles]
| List of all articles for this month |

 From: Sergey Solyanik Newsgroups: comp.compilers Date: 9 Nov 1997 12:06:15 -0500 Organization: Bentley Systems, Inc. References: 97-11-038 Keywords: arithmetic, optimize

Vincent Lefevre wrote:
>
> Some compilers (including gcc) are able to convert a "multiply by a
> constant" operation into a sequence of shifts and adds/subtracts.

The method I am using for our JIT compiler is memoizing dynamic
algorithm that uses a dag of best match sequences. I cannot share the
source code because it is commercial product, but I've put algorithm
description and compiled program (win32) that uses it at:

http://w3.icdc.com/~solyanik/decomp.html

This algorithm is a "smart brute force" (as any dynamic algorithm),
but it seems to work and it turned out to be fast enough for JIT
environment.

I would be very interested to seem smarter implementation.

Regards -

Sergey Solyanik
Software Developer
Bentley Systems, Inc
--

Post a followup to this message