public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find
@ 2005-05-28 7:59 pcarlini at suse dot de
2005-06-04 12:07 ` [Bug libstdc++/21796] " chris at bubblescope dot net
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: pcarlini at suse dot de @ 2005-05-28 7:59 UTC (permalink / raw)
To: gcc-bugs
When merging to release branches the work on <algorithm> we have to resolve
this issue: the new unified std::search doesn't exploit std::find, and a small
performance regression is possible, in theory: at least benchmark. FWIW, in
mainline, we have an inconsistency instead: only the version not taking a
predicate does use std::find.
--
Summary: (v7-branch) std::search not using std::find
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pcarlini at suse dot de
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/21796] (v7-branch) std::search not using std::find
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
@ 2005-06-04 12:07 ` chris at bubblescope dot net
2005-06-04 15:16 ` pinskia at gcc dot gnu dot org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: chris at bubblescope dot net @ 2005-06-04 12:07 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From chris at bubblescope dot net 2005-06-04 12:07 -------
This is being held up by PR20408, Unnecessary code generated for empty structs, as we'd have to pass
both the item to find and the comparitor (which is often an empty class) to std::find_if
--
What |Removed |Added
----------------------------------------------------------------------------
BugsThisDependsOn| |20408
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/21796] (v7-branch) std::search not using std::find
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
2005-06-04 12:07 ` [Bug libstdc++/21796] " chris at bubblescope dot net
@ 2005-06-04 15:16 ` pinskia at gcc dot gnu dot org
2005-06-04 18:00 ` pcarlini at suse dot de
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-04 15:16 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-04 15:16 -------
(In reply to comment #1)
> This is being held up by PR20408, Unnecessary code generated for empty structs, as we'd have to
> pass both the item to find and the comparitor (which is often an empty class) to std::find_if
Why do you care about one instruction, only on stack argument passing targets?
Really there is no good reason to block one improvement for another which is most likely not going to
be fixed in a long time.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2005-06-04 15:16:04
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/21796] (v7-branch) std::search not using std::find
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
2005-06-04 12:07 ` [Bug libstdc++/21796] " chris at bubblescope dot net
2005-06-04 15:16 ` pinskia at gcc dot gnu dot org
@ 2005-06-04 18:00 ` pcarlini at suse dot de
2005-06-18 22:18 ` chris at bubblescope dot net
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pcarlini at suse dot de @ 2005-06-04 18:00 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pcarlini at suse dot de 2005-06-04 18:00 -------
There is some truth in what Andrew and Chris are saying, and myself ;) : we
have quite a few improvements to merge to mainline and other in progress in
v7. Maybe, as an intermediate step, we will end up taking care of this
issue separately from 20408.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/21796] (v7-branch) std::search not using std::find
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
` (2 preceding siblings ...)
2005-06-04 18:00 ` pcarlini at suse dot de
@ 2005-06-18 22:18 ` chris at bubblescope dot net
2005-06-18 22:22 ` pcarlini at suse dot de
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: chris at bubblescope dot net @ 2005-06-18 22:18 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From chris at bubblescope dot net 2005-06-18 22:18 -------
Actually, *slaps forehead*, the problem of empty structs can just be avoided
using EBO :) I'll knock up a patch doing just that :)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/21796] (v7-branch) std::search not using std::find
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
` (3 preceding siblings ...)
2005-06-18 22:18 ` chris at bubblescope dot net
@ 2005-06-18 22:22 ` pcarlini at suse dot de
2005-06-29 19:21 ` cvs-commit at gcc dot gnu dot org
2005-06-29 19:22 ` pcarlini at suse dot de
6 siblings, 0 replies; 8+ messages in thread
From: pcarlini at suse dot de @ 2005-06-18 22:22 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pcarlini at suse dot de 2005-06-18 22:21 -------
Ah! And in that case the solution promises to be also very clean! Remember to
post first a simple example, as usual.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/21796] (v7-branch) std::search not using std::find
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
` (4 preceding siblings ...)
2005-06-18 22:22 ` pcarlini at suse dot de
@ 2005-06-29 19:21 ` cvs-commit at gcc dot gnu dot org
2005-06-29 19:22 ` pcarlini at suse dot de
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-06-29 19:21 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-06-29 19:21 -------
Subject: Bug 21796
CVSROOT: /cvs/gcc
Module name: gcc
Branch: libstdcxx_so_7-branch
Changes by: paolo@gcc.gnu.org 2005-06-29 19:20:49
Modified files:
libstdc++-v3/include/bits: predefined_ops.h stl_algo.h
libstdc++-v3/testsuite/25_algorithms/search: 1.cc check_type.cc
libstdc++-v3/src: string-inst.cc
Log message:
2005-06-29 Chris Jefferson <chris@bubblescope.net>
PR libstdc++/21796
* include/bits/predefined_ops.h (__bind2nd, bind2nd): New.
* include/bits/stl_algo.h (search): Delegate to specializations.
(__search(,,,,,forward_iterator_tag): Tidy up original version of
std::search, add calls to find_if.
(__search(,,,,,random_access_iterator_tag): Add new random access
specialization.
* testsuite/25_algorithms/search/1.cc: Add new test.
* testsuite/25_algorithms/search/check_type.cc: Improve and extend
tests.
2005-06-29 Paolo Carlini <pcarlini@suse.de>
* src/string-inst.cc: Add explicit instantiations of __search and
__find_if.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/predefined_ops.h.diff?cvsroot=gcc&only_with_tag=libstdcxx_so_7-branch&r1=1.1.2.2&r2=1.1.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/stl_algo.h.diff?cvsroot=gcc&only_with_tag=libstdcxx_so_7-branch&r1=1.47.6.13&r2=1.47.6.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/25_algorithms/search/1.cc.diff?cvsroot=gcc&only_with_tag=libstdcxx_so_7-branch&r1=1.1.2.2&r2=1.1.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/25_algorithms/search/check_type.cc.diff?cvsroot=gcc&only_with_tag=libstdcxx_so_7-branch&r1=1.1.2.1&r2=1.1.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/src/string-inst.cc.diff?cvsroot=gcc&only_with_tag=libstdcxx_so_7-branch&r1=1.31.8.2&r2=1.31.8.3
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/21796] (v7-branch) std::search not using std::find
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
` (5 preceding siblings ...)
2005-06-29 19:21 ` cvs-commit at gcc dot gnu dot org
@ 2005-06-29 19:22 ` pcarlini at suse dot de
6 siblings, 0 replies; 8+ messages in thread
From: pcarlini at suse dot de @ 2005-06-29 19:22 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pcarlini at suse dot de 2005-06-29 19:21 -------
Fixed.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21796
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2005-06-29 19:22 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-28 7:59 [Bug libstdc++/21796] New: (v7-branch) std::search not using std::find pcarlini at suse dot de
2005-06-04 12:07 ` [Bug libstdc++/21796] " chris at bubblescope dot net
2005-06-04 15:16 ` pinskia at gcc dot gnu dot org
2005-06-04 18:00 ` pcarlini at suse dot de
2005-06-18 22:18 ` chris at bubblescope dot net
2005-06-18 22:22 ` pcarlini at suse dot de
2005-06-29 19:21 ` cvs-commit at gcc dot gnu dot org
2005-06-29 19:22 ` pcarlini at suse dot de
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).