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


Reply via email to