Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Thu, 16 Apr 2015 21:08:15 +0200
From: magnum <>
Subject: Format interface changes


I think it may be about time we change key index/count variables to
unsigned int in Jumbo. Rationale:

1. The previously discussed need for GPU mask mode will soon show up
again. We'll soon need it. I don't really see a need for 64-bit pcount
though, just unsigned should be enough for a long time.

2. It makes things like "index/SIMD_COEF_32" that we have in wads of
SIMD calculations end up as a mere bitshift. The difference is quite
noticable, just changing NT2 and ignoring the compiler complaints render
a 4% boost. Before the recent AVX2 changes, we had it as
"(index>>(SIMD_COEF_32>>1))" but that only works for COEFs 2 and 4. For
a while we defined a SIMD_SHIFT_32 macro but I dropped it while fixing
all code for hardcoded widths (that was hard enough without it). Instead
of re-implementing it now, Sayantan's need came to mind. I'd really
prefer keeping the division in the source yet not in the compiled code!

Obviously we'll have to make some core code adopt to unsigned too.

What do you think? BTW when we're at it, we could start using "const"
for pointer arguments where applicable - doing this at the same time
comes almost for free compared to doing it separately. I'll obviously do
most of it with grep/sed but there's always a substantial amount of
manual editing.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.