
Originally Posted by
enteon
64bit in itself will only help an algorithm if data structures larger than 32bit are used, or could be used to increase performance.
This is especially true for applications that need more than 4GB of RAM (forget PAE, it is slower).
Now what happened to the x86 world is that with the introduction of AMD64 (x86-64 extension) the registers did not only get wider but doubled!
Integer registers and SIMD registers. The latter recently even quadrupled (AVX).
Apart from that the 64bit mode offers new ways of addressing code, relative to the instruction pointer.
And maybe more I'm not aware of.
Also there have been loads of additions to the x86 instruction set since AMD64 was introduced in 2003 (Intel implemented it a bit later). I don't know if some of these additions can only be used in 64bit mode. If so, they add to the potential performance gain for 64bit software.
But if your algorithm just can not be improved via wider registers more registers or other voodoo, it is probably faster on a 32bit CPU. This is because full 64bit operations take probably more time to compute (transistor latency) and compressing 32bit (and often much smaller) numbers such that they do not waste 80% (or so, on average) of the available 64bit registers/computational units is pretty slow, if even attempted.
Therefore I conclude that if programmed wisely or at least put through a great compiler most software should be faster on a modern 64bit CPU. But there are algorithms that just don't scale. Maybe those could be exchanged for better ones, maybe not.
Filing a bug could make the programmer think about optimizations. But don't spam with those ;-)