This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: search/search_n vs find/find_if


Chris Jefferson wrote:

No, you could have said "Huh?!?"

;)


What was worrying me was that I knew some functions (fill and copy it turns out) have efficent specialisations, which I assumed would not exist in the predicated versions, and therefore we might be losing some performance. However now I look more carefully, there is no such case, the only "type specific" specialisations are for fill, copy and lexicographic_compare (which we haven't disturbed from before)

Good.


Therefore my current plan goes something like:

1) Check through all the previously simplified algorithms for anywhere where the non-predicate version uses find and the predicate version doesn't use find_if, and knock out some test cases.

Most probably, only search/search_n, but better double checking, right.


2) Try delegating find, count, replace, replace_copy, remove_copy and remove to find_if, count_if, replace_if, replace_copy_if, remove_copy_if and remove_if (while of course adding test cases). I've looked at the tree output and x86, and they are very close (the assembler isn't identical, but only differs when entering / leaving a function. I hope to try to figure out why..)

Excellent plan!


Thanks,
Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]