On 9 Mar 2002, Gabriel Gerhardsson wrote:
> Hi Shannon
>
> I also agree with you in principle.
> *But* in this case we where talking about a couple of standard functions
> who is used all over the place (That's what this thread started about
> anyway).
Yes, but I took at least some of what was said in this message to be more
of a general endorsement of assembly optimization at this point (rather
than just the memcpy issue), which is really what I was responding to.
> Functions like memcpy and such that could be speeded up by a
> fair degree by using instructions from MMX, SSE and the like. Many C
> compilers does not yet have support for such simple things as using the
> MMX 64-bit copying commands. It has to be done in asm.
I understand this, but then the issue becomes one of (potentially) having
to support optimizations for at least a half dozen different processors
which each may require different code, and while I have no problem with
this later in the life of a stable product, we are not to that point yet.
> But you are absolutely right when we are talking about more specific
> parts of plex86. We shouldn't even think of optimizing them in asm yet.
> Only if we can be positive that that part wont change to much in the
> future.
Agreed.
>
> The versions of memcpy found in the Linux kernel have been hand
> optimized by *very* competent people. Probably also with help from AMD
> and Intel engineers. So if we could make use of them or the like, it
> would be A Good Thing.
Absolutely, but again we are getting into environment specific
optimizations, but instead of being processor specific, it is OS specific,
which plex86 is not.
Again, I have no objection to any of this, it is just that in my
experience it is a waste of time to do this kind of stuff until the
product is reasonably stable. On the other hand, severe performance
problems on a project like this can slow the development process, so I see
nothing wrong with optimizing the C code for actual verifiable
performance bottlenecks.
Shannon C. Dealy | DeaTech Research Inc.
[EMAIL PROTECTED] | - Custom Software Development -
| Embedded Systems, Real-time, Device Drivers
Phone: (800) 467-5820 | Networking, Scientific & Engineering Applications
or: (541) 451-5177 | www.deatech.com