Re: [PATCH] block-sha1: make the size member first in the context struct
- From
Nicolas Pitre <nico@cam.org>
- Date
- Aug 18, 2009, 00:39 UTC
- Message-ID
- <alpine.LFD.2.00.0908172035320.6044@xanadu.home>
- In-Reply-To
- <alpine.DEB.1.00.0908180223280.8306@pacific.mpi-cbg.de>
On Tue, 18 Aug 2009, Johannes Schindelin wrote:
Show 25 quoted lines
> Hi,
>
> On Mon, 17 Aug 2009, Nicolas Pitre wrote:
>
> > This is a 64-bit value, hence having it first provides a better
> > alignment.
> >
> > Signed-off-by: Nicolas Pitre <nico@cam.org>
> >
> > diff --git a/block-sha1/sha1.h b/block-sha1/sha1.h
> > index 6ff59b2..b864df6 100644
> > --- a/block-sha1/sha1.h
> > +++ b/block-sha1/sha1.h
> > @@ -7,9 +7,9 @@
> > */
> >
> > typedef struct {
> > + unsigned long long size;
> > unsigned int H[5];
> > unsigned int W[16];
> > - unsigned long long size;
> > } blk_SHA_CTX;
>
> By the reasoning suggested in the commit message, should H[5] not go to
> the end?Both arrays are based of unsigned ints which have the same alignment rules. Furthermore the size and H members are much more used than the W member, and keeping them close should help with CPU cache locality.
Nicolas