64-bit windows version?

Bulat Ziganshin bulat.ziganshin at gmail.com
Thu Jun 21 00:04:07 EDT 2007

Hello skaller,

Thursday, June 21, 2007, 7:06:09 AM, you wrote:
>> generally speaking, people want to use 64-bit code in order to work
>> with much larger data space, overall speed may be better than using
>> 32-bit version with 2gb limit

> With x86_64, 64 bit programs are usually faster than 32 bit ones
> even for small data, probably because despite the extra stack space
> etc that is required for double sized pointers, there are also
> more registers. There may also be a penalty for 32 bit code in other
> parts of the processing pipeline, eg segmentation (which is not
> available for 64 bit code).

this small speed increase will be easily outweighted by using
non-optimizing (un*register*ized means "non using registers in
optimal way") compiler

the whole problem is that GHC has very complex compilation strategy
which is fine-tuned for every platform fully supported. it mangles asm
code produced by C compiler, it uses registers directly, so on. this
is so-called registerized build. and without all these optimizations
it just generates plain ANSI C code, this is unregizterized build. the
last is much simpler to implement - you need to port only

> IMHO the main use of 32 bit machines now is embedded applications,
> for example mobile phones.

but this doesn't apply to 32-bit code. moreover, you say about
computers that are now selled but there are lots of old boxes. and not
everyone with 64-bit CPU buys 64-bit OS

from my POV, main reason for 64-bitness is using more than 2G of
memory, and growed amount of memory in typical desktops was the reason
why 64-bit systems now becomes popular. in terms of CPU architecture,
x86-64 is still CISC while RISC and EPIC architectures proven their
efficiency in last 20 years. doubled amount of registers is very small
step in this direction

Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com

More information about the Glasgow-haskell-users mailing list