Re: [PATCH RFC] 2.5.73 zlib #2 codefold

Jörn Engel (joern@wohnheim.fh-wedel.de)
Wed, 2 Jul 2003 18:59:00 +0200


On Wed, 2 July 2003 10:46:05 +0200, Joakim Tjernlund wrote:
>
> > This patch folds three calls to memmove_update into one. This is the
> > same structure that was in the 1.1.3 version of the zlib as well. The
> > change towards 1.1.4 was mixed with a real bugfix, so it slipped
> > through my brain.
> >
> [SNIP]
>
> Looks fine to me.
>
> Here is another one in gen_bitlen():
> Replace:
> for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
> with:
> memset(&s->bl_count[0], 0, MAX_BITS * sizeof(s->bl_count[0]));
>
> Also the following could should be replaced(in defutil.h):
> /* ===========================================================================
> * Reverse the first len bits of a code, using straightforward code (a faster
> * method would use a table)
> * IN assertion: 1 <= len <= 15
> */
> static inline unsigned bi_reverse(unsigned code, /* the value to invert */
> int len) /* its bit length */
> {
> register unsigned res = 0;
> do {
> res |= code & 1;
> code >>= 1, res <<= 1;
> } while (--len > 0);
> return res >> 1;
> }
>
> Anybody have a table version handy?

Onto my unwritten todo list with them. The next lazy afternoon will
come for sure.

Etiennes code sounds promising as well. Will have a closer look one
of those afternoons. If it does fit the description, it might be a
good alternative for those platforms it happens to run on.

On a whole, I think it is better to leave most changes out of
mainline until 2.7 is opened. At least, unless someone comes up with
an extensive test suite for correctness, throughput and interactivity.
Volunteers? ;)

Jörn

-- 
Data dominates. If you've chosen the right data structures and organized
things well, the algorithms will almost always be self-evident. Data
structures, not algorithms, are central to programming.
-- Rob Pike
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/