[m-dev.] x86-64 architecture support

Fergus Henderson fjh at cs.mu.OZ.AU
Wed Oct 19 11:16:22 AEST 2005


On 29-Aug-2005, Peter Schachte <schachte at cs.mu.OZ.AU> wrote:
> On Sat, Aug 27, 2005 at 09:41:42AM +1000, Zoltan Somogyi wrote:
> > On 26-Aug-2005, Peter Hawkins <peter at hawkins.emu.id.au> wrote:
> > > It seems the 64-bit version is somewhat slower, despite having an extra 
> > > global register variable.
> > 
> > But the data has become twice as big. This has the same effect as
> > cutting the cache size in half.
> 
> But wouldn't this argument suggest that everything data cache-bound
> would be markedly slower using 64 bit code?  I understand the typical
> experience is that the athlon 64 runs around 30% faster when compiled
> for 64 bit code.

The increase in data sizes is likely to be worse for Mercury code than
for C code, because in C code, typically only a portion of the data
is pointers, whereas in Mercury most of the data is either pointers or
pointer-sized.  In the current Mercury implementation, record fields and
array elements are always pointer-sized (smaller values are zero-extended,
larger values are boxed).  In C, struct fields are often smaller than 64 bits.

-- 
Fergus Henderson                    |  "I have always known that the pursuit
                                    |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list