Complete.Org: Mailing Lists: Archives: freeciv-dev: September 2001:
[Freeciv-Dev] Re: the directional system
Home

[Freeciv-Dev] Re: the directional system

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: rf13@xxxxxxxxxxxxxxxxxxxxxx
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: the directional system
From: Gaute B Strokkenes <gs234@xxxxxxxxx>
Date: Tue, 11 Sep 2001 21:43:24 +0200

On Sat, 8 Sep 2001, hawk@xxxxxxxxxxxxxxxxxxxxxxx wrote:
> On Fri, Sep 07, 2001 at 08:33:02PM -0400, Greg Wooledge wrote:
>> Raimar Falke (hawk@xxxxxxxxxxxxxxxxxxxxxxx) wrote:
>> > On Fri, Sep 07, 2001 at 04:51:36AM -0700, Trent Piepho wrote:
>> > > +#define DIR_REVERSE(dir) (((dir) + 4) % 8)
>> > > +#define DIR_REVERSE(dir) (((dir) + 4) & 7)
>> 
>> > $ gcc -S -O2 a.c
>> > $ cat a.s
>> 
>> Nice demonstration, but it only shows that your version of gcc can
>> handle this optimization
> 
> This is correct.
> 
>> -- there may be other compilers out there that don't.
> 
> Than please state the compiler and the version. I don't know what
> compiler are used to compile freeciv. I also don't know which
> compiler supports such optimization. However I think all compilers
> used today are able to perform the optimization since it is a very
> easy transformation IMHO.

This transformation is only safe when dir is an unsigned type, or when
the compiler can prove that a negative value for dir can not occur.

In most cases Freeciv uses plain ints, and it is usually very hard to
prove that a given variable can not be negative.  Therefore the
compiler will not be able to make this tranformation in the general
case.

> Please do the work and compile the small test program with various
> compilers. This will give you, me and the freeciv community a better
> understanding of how capable various compilers are.
> 
>> It's safer to use the bitwise AND operation.
> 
> Yes it would be safer for performance. However if performance would
> be the primary goal freeciv would use X11 directly.

I can't see what you're worried about; the "&" version is hardly any
less readable.

Attachment: test.c
Description: Text Data

Attachment: test.s
Description: Text document

-- 
Big Gaute                               http://www.srcf.ucam.org/~gs234/
We just joined the civil hair patrol!

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