Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Wed, 30 Sep 2015 23:13:49 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: fast hash early exit vs. large hash list

On 19/09/15 15:58, Solar Designer wrote:
> BTW, here's a compiler trick to produce specialized functions without
> cluttering the source code:
>
> static MAYBE_INLINE void generic(int flag1, int flag2, int choice1)
> {
> 	...
> 	if (flag1) {
> 		...
> 	}
> 	...
> }
>
> static void special1(void)
> {
> 	generic(1, 0, 5);
> }

> and so on.  Where MAYBE_INLINE is our macro that tries to force function
> inlining regardless of limits on function size.  Optimizing compilers
> are able to substitute the constants and eliminate the branches and dead
> code (that would have resulted from naive inlining with no optimization).

I tried inlining like that, vs. using special functions with a macro for 
the actual MD5. The net results should be the same but for some reason 
the macro version is 5-10% faster. I'm trying to figure out why, maybe I 
need to dig into the asm :-/

magnum


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.