public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/47433] New: libstdc++ parallel mode calls std::swap explicitely
@ 2011-01-24 12:52 manuel.holtgrewe@fu-berlin.de
  2011-01-24 12:56 ` [Bug libstdc++/47433] " paolo.carlini at oracle dot com
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: manuel.holtgrewe@fu-berlin.de @ 2011-01-24 12:52 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47433

           Summary: libstdc++ parallel mode calls std::swap explicitely
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: manuel.holtgrewe@fu-berlin.de


The parallel libstdc++ calls std::swap explicitely. To my knowledge, this
disables the user to specify his own, possibly more efficient swap routine.
This is especially severe in parallel sorting and partitioning.

 libstdc++-v3-parallel-trunk $ ack 'std::swap'
balanced_quicksort.h
135:    std::swap(*__pivot_pos, *(__end - 1));
147:      std::swap(*(__begin + __split_pos), *__pivot_pos);
287:            std::swap(*__pivot_pos, *(__end - 1));
306:            std::swap(*__split_pos1, *__pivot_pos);

losertree.h
237:        std::swap(_M_losers[__pos]._M_sup, __sup);
238:        std::swap(_M_losers[__pos]._M_source, __source);
239:        std::swap(_M_losers[__pos]._M_key, __key);
333:        std::swap(_M_losers[__pos]._M_sup, __sup);
334:        std::swap(_M_losers[__pos]._M_source, __source);
335:        std::swap(_M_losers[__pos]._M_key, __key);
464:        std::swap(_M_losers[__pos]._M_sup, __sup);
465:        std::swap(_M_losers[__pos]._M_source, __source);
466:        std::swap(_M_losers[__pos]._M_keyp, __keyp);
541:        std::swap(_M_losers[__pos]._M_sup, __sup);
542:        std::swap(_M_losers[__pos]._M_source, __source);
543:        std::swap(_M_losers[__pos]._M_keyp, __keyp);
697:        std::swap(_M_losers[__pos]._M_source, __source);
698:        std::swap(_M_losers[__pos]._M_key, __key);
788:        std::swap(_M_losers[__pos]._M_source, __source);
789:        std::swap(_M_losers[__pos]._M_key, __key);
937:        std::swap(_M_losers[__pos]._M_source, __source);
938:        std::swap(_M_losers[__pos]._M_keyp, __keyp);
1027:        std::swap(_M_losers[__pos]._M_source, __source);
1028:        std::swap(_M_losers[__pos]._M_keyp, __keyp);

partition.h
181:              std::swap(__begin[__thread_left],
241:          std::swap_ranges(__begin + __thread_left_border
264:          std::swap_ranges(__begin + __thread_right_border,
304:        std::swap(__begin[__final_left], __begin[__final_right]);
357:            std::swap(*__pivot_pos, *(__end - 1));
379:            std::swap(*__split_pos1, *__pivot_pos);


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-02-25 14:05 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-24 12:52 [Bug libstdc++/47433] New: libstdc++ parallel mode calls std::swap explicitely manuel.holtgrewe@fu-berlin.de
2011-01-24 12:56 ` [Bug libstdc++/47433] " paolo.carlini at oracle dot com
2011-01-24 13:10 ` paolo.carlini at oracle dot com
2011-01-24 13:12 ` manuel.holtgrewe@fu-berlin.de
2011-01-24 13:23 ` paolo.carlini at oracle dot com
2011-01-24 13:28 ` singler at kit dot edu
2011-01-24 13:36 ` singler at kit dot edu
2011-01-24 13:55 ` paolo.carlini at oracle dot com
2011-01-24 14:03 ` redi at gcc dot gnu.org
2011-01-24 14:07 ` singler at kit dot edu
2011-01-24 14:11 ` singler at kit dot edu
2011-01-24 14:43 ` paolo.carlini at oracle dot com
2011-01-24 17:31 ` singler at gcc dot gnu.org
2011-01-24 17:34 ` singler at kit dot edu
2011-02-11 10:13 ` singler at gcc dot gnu.org
2011-02-25 14:44 ` singler at gcc dot gnu.org

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).