[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