nkavv at physics.auth.gr
Wed Sep 12 13:27:27 CEST 2007
Hi Torbjorn and other people there ^_^
i have an interest on computer architecture (specifying my own
architectures, their implementations -- soft cores -- and tools) and
recently i had a specific need for optimizing code sequences (integer
arithmetic library development for my processor). This where gmp and the
recently announced (by Tobjorn) superopt-va come in place.
To my understanding the superopt-va is written from scratch, and some
things that where implemented in the GNU superopt, are not there (yet)
I have a few questions/comments on superopt-va:
1) As described, superopt-va, only optimizes algebraic forms. That is,
m->n mappings that i have tested using other primitive operations (e.g.
a logical shift left) are not accepted (are does not produce anything
usable) by the superoptimizer. I'm thinking of extending the superopt-va
primitive operation set so that it may target a more rich set of the
2) Is it possible to specify unsigned words (assuming that the default
is signed words), e.g. via the regular type casting? I remember this was
available for the GNU superopt.
3) What is this Toom arithmetic? I have never heard about it yet. Where
is it used (this might be a little OT, but it seems that Toom functions
are the only benchmark that the new superopt has been exercised on.)
4) Is "superopt-va" going to be included in tests/devel directory of the
gmp release? I have added the related files to this dir in my own copy.
Or is it considered very alpha for that?
5) I'm hoping of optimizing small integer arithmetic structures (e.g. a
euclidean distance approximation), or an alpha blending operation. Such
structures would typically require around 4-10 to 4-20 operations, not
more. I'm developing for which i shall return for .def file (and source
code changes of course) if all goes well.
More information about the gmp-discuss