On 5/27/2012 3:30 AM, Linda Walsh wrote:

    It Could be if it is done in a way that removes all the 32-bit
speed probs (alignment issues being only 1), but ALOT of what computers do is
move data around -- large amounts -- strings, buffers, etc.
64-bit archs can move a native 8-bytes/cycle, 32-bits only 4... that's a 100% increase in 32-bit instructions for something that has been measured to dominate many programs. Maybe there could be callouts to convert those calls to native
8-byte moves,
This has little to do with choice between 32- and 64-bit OS, unless you write programs which spend their time moving data blocks which are too big for cygwin. gcc -m32 defaults to generation of in-line memcpy code optimized for short strings, while gcc -m64 uses glibc functions (too big to inline), but that's only indirectly a consequence of the OS. CPUs have been adding microcode continually for better optimization of the gcc -m32 string moves, even though new CPUs are designed primarily for 64-bit OS. The same data move instructions are present in either OS. It took years for glibc to implement efficient string moves for x86_64, and those still bump up against the question whether they always use code which runs on the CPUs of a decade ago.

CPU designers spend lots of cycles simulating runs of future CPUs on instruction traces of current applications. There's a lot more quantitative analysis there then in any assertions I've seen about the future of cygwin.

--
Tim Prince


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to