On 9/16/06, Ross Ridge <[EMAIL PROTECTED]> wrote:
Ross Ridge writes:
>Microsoft's implementation has proven that "stupid" byte comparions can
>generate significant savings.

Daniel Berlin wrtes:
>No they haven't.

So Microsoft and everyone who says they've got significant savings using
it is lying?
Over what?

Do you really want me to sit here and knock down every single one of
your arguments?

Let's take your misunderstanding of my point about linkonce functions:
You posited a scenario where you want to optimize a function multiple
times using a different compiler flags and cpu architectures, and say
that they may produce the same rtl but different assembly.
Even though this argument is moot in the face of hashing compiler
options as well, you run into the exact same problem with linkonce
functions.  Your functions you are trying to optimize for multiple cpu
types and compiled with different flags may be output as linkonce
functions.  The linker is simply going to pick one, regardless of what
CPU architecture or assembly it generated, the same way hashing RTL
*without* including compiler options would.  This is the point. You've
*already* got this problem you claim would occur in my scheme.  Does
this also make linkonce functions an idea that is not "any good"?

You also say "
Microsoft's implementation has proven that "stupid" byte comparions can
generate significant savings."

The fact is that Microsoft's implementation rarely generates
significant savings over that given by linkonce functions,  and when
it does, it will in no way compare to anything that does *more* than
stupid byte comparisons will give you.

>But have fun implementing it in your linker, and still making it safe
>if that's what you really want.
>I'm not going to do that, and I don't believe it is a good idea.

I'm not asking you to do anything.  I'm just telling you that I don't
think your idea is any good.
That's nice.  It's the only way to do it sanely and correctly in all
cases, without having to teach the linker how to look at code, or to
control the linker (which we don't on some platforms), and output a
side channel explaining what it is allowed to eliminate, at which
point, you might as well do it in the compiler!

You can believe what you like about the idea.  Until you are willing
to implement something *you* believe will help, or at the least
explain how you forsee it being done safely (which Microsoft
doesn't!), it's very hard to take you seriously.


--Dan

Reply via email to