X[]==Y[] is 7X slower than it should be -- why?

Sean Kelly sean at invisibleduck.org
Sun Jun 22 08:21:25 PDT 2008


== Quote from Tomas Lindquist Olsen (tomas at famolsen.dk)'s article
> Sean Kelly wrote:
> > == Quote from Jarrett Billingsley (kb3ctd2 at yahoo.com)'s article
> >> "Sean Kelly" <sean at invisibleduck.org> wrote in message
> >> news:g3gtvk$1tm7$1 at digitalmars.com...
> >>> Done :p
> >>>
> >>> http://dsource.org/projects/tango/changeset/3651
> >> In _adCmp,
> >> if (a1.ptr == a2.ptr)
> >>     return 0;
> >> erm, that's not right at all.  Two slices with the same pointer and
> >> different lengths.
> >
> > Darnit, you're right.  Good catch.
> >
> >
> > Sean
> After having a look at this I don't see how it could work.
> The TypeInfo passed to _adEq/Cmp is the *element* typeinfo, not the *array*
typeinfo.
> With the current code, the way I read it, only arrays with elementsize==1 will
work (and only
> if the element is not a 1byte struct that overloads the comparison operators.
> Am I missing something or should the compilers not be changed to pass the
*array* typeinfo if
> these optimizations are to make any sense ?

I was wondering about that.  *sigh* I guess I'll have to change it back then.  How
terribly annoying.


Sean



More information about the Digitalmars-d mailing list