Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2001:
[Freeciv-Dev] Re: Profiling Civserver again
Home

[Freeciv-Dev] Re: Profiling Civserver again

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Vasco Alexandre Da Silva Costa <vasc@xxxxxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Profiling Civserver again
From: Gaute B Strokkenes <gs234@xxxxxxxxx>
Date: Thu, 02 Aug 2001 01:10:51 +0200

On Wed, 1 Aug 2001, vasc@xxxxxxxxxxxxxx wrote:
> Well does gcc optimize it this way?
> 
> #define map_adjust_x(X) \
>   (((X) % map.xsize) + (((X >= 0) - 1) & map.xsize))

You mean * rather than &, right?

> This is faster. Its faster on all CPUs. Notice it doesn't have any
> branches. Of course its also pretty darn unreadable :-)

I'm sceptical.  Note that Gregory's patch, which replaced the modulus
operations with two while loops, doubled the speed of
normalize_map_pos().  It's too bad that there's no easy way to use
loop constructs in macros, short of using inline functions instead.
Perhaps the best thing would be to change it to trigger on

  (X) < 0 || (X) >= map.xsize)

instead.  Off course, the proof of the pudding is in the eating:
Somebody really ought to profile all these different approaches,
etc. etc.

-- 
Big Gaute                               http://www.srcf.ucam.org/~gs234/
Are you mentally here at Pizza Hut??


[Prev in Thread] Current Thread [Next in Thread]