Re: [PATCH] block-sha1: make the size member first in the context struct
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