2008-07-15 Johannes Singler <singler@ira.uka.de>
* include/parallel/find_selectors.h:
Correct name for include guard #ifndef.
* include/parallel/balanced_quicksort.h: Likewise.
* include/parallel/unique_copy.h: Likewise.
* include/parallel/multiway_mergesort.h: Likewise.
* include/parallel/checkers.h: Likewise.
* include/parallel/[various files]:
Add/correct comment for #endif of include guard (at end of file)
From-SVN: r137827
2008-05-16 Johannes Singler <singler@ira.uka.de>
* doc/xml/manual/parallel_mode.xml:
Documented the new choices, factoring out common tags.
* include/parallel/multiway_merge.h:
Place comparison functor at the end, to comply with
established convention.
(parallel_multiway_merge) Pass number of threads explicitly.
Introduce new compile-time variants, make exact splitting the
default.
* include/parallel/tags.h:
Extend exact_tag, introduce sampling_tag.
* include/parallel/merge.h:
(parallel_merge_advance) Adapt to changed interface.
* include/parallel/multiway_mergesort.h: Likewise.
From-SVN: r135411
* include/parallel/multiway_merge.h:
(multiway_merge_*_unguarded):
Pass sentinel directly, to allow correct determination.
(multiway_merge_loser_tree_unguarded):
Remove over-cautious assertion.
(calls to multiway_merge_*_splitting):
Parametrize with type that is correct in all cases.
* include/parallel/losertree.h:
(delete_min_insert (in many classes)):
Correct and standardize assertions.
From-SVN: r134977
2008-04-07 Johannes Singler <singler@ira.uka.de>
* include/parallel/multiway_merge.h:
Moved decisions to compiletime instead of runtime.
* include/parallel/losertree.h:
Removed obsolete variants, added variant that uses pointers
in the loser tree.
* include/parallel/types.h:
Remove obsolete settings options from enum.
* include/parallel/features.h:
Remove obsolete compile-time switches.
* include/parallel/compiletime_settings.h:
Remove obsolete variant that copies back *after* sorting.
* include/parallel/tags.h:
Add one new tag for compile-time switch.
* include/parallel/merge.h:
Adapt to changes in multiway_merge.h.
* include/parallel/multiway_mergesort.h:
Adapt to changes in multiway_merge.h.
Factor out splitting variants.
Remove obsolete variant that copies back *after* sorting.
* include/parallel/sort.h:
Adapt to changes in multiway_mergesort.h.
* testsuite/25_algorithms/sort/35588.cc:
Added test case from / for PR 35588.
From-SVN: r133975
2007-12-15 Benjamin Kosnik <bkoz@redhat.com>
Paolo Carlini <pcarlini@suse.de>
* include/parallel/partial_sum.h: Include new. Fix for DR 402.
* include/parallel/multiway_merge.h:Fix for DR 402.
* include/parallel/losertree.h: Same.
* include/parallel/quicksort.h: Same.
* include/parallel/random_shuffle.h: Same.
* include/parallel/multiway_mergesort.h: Same.
Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
From-SVN: r130956
2007-11-28 Johannes Singler <singler@ira.uka.de>
* include/parallel/multiway_merge.h: Destruct only elements that
were have been constructed before. Code beautifying and formatting.
* include/parallel/losertree.h: (Copy) construct all loser tree
item keys, so they can be deconstructed all at once.
* include/parallel/quicksort.h: Fix memory leak.
* include/parallel/random_shuffle.h: Use copy constructor instead
of assignment. Code beautifying and formatting.
* include/parallel/unique_copy.h: Use assignment instead of copy
constructor.
* include/parallel/multiway_mergesort.h: Use copy constructor
instead of assignment. Code beautifying and formatting.
* include/parallel/random_shuffle.h: Use copy constructor instead
of assignment. Code beautifying.
From-SVN: r130490
2007-11-14 Johannes Singler <singler@ira.uka.de>
* include/parallel/multiway_merge.h: More robust finding of an
arbitrary existing element inside the input sequences.
* include/bits/stl_algo.h: Fix typo to actually call appropriate
sequential version.
From-SVN: r130183
2007-10-09 Benjamin Kosnik <bkoz@montsouris.artheist.org>
PR libstdc++/33489 continued.
* include/parallel/features.h (_GLIBCXX_LOSER_TREE): Set to zero.
(_GLIBCXX_LOSER_TREE_POINTER): Set to one.
(_GLIBCXX_LOSER_TREE_UNGUARDED): Set to zero.
(_GLIBCXX_LOSER_TREE_POINTER_UNGUARDED): Set to one.
* include/parallel/multiway_merge.h (parallel_multiway_merge):
Change array of value_type to array of value_type pointers.
(multiway_merge_bubble): Same.
(multiway_merge_loser_tree): Same.
* include/parallel/merge.h (merge_advance_movc): Change to avoid
default construction.
* include/parallel/multiseq_selection.h (multiseq_partition):
Replace value_type, bool pair with value_type*, null-initialized.
* include/parallel/multiway_mergesort.h (parallel_sort_mwms):
Don't use array form of operator new for value_types.
(parallel_sort_mwms_pu): Same.
* include/parallel/quicksort.h (parallel_sort_qs_divide): Don't
use array form to construct pointer to value_type on stack,
instead use __builtin_alloca.
* include/parallel/random_shuffle.h (sequential_random_shuffle): Same,
but use operator new.
(parallel_random_shuffle_drs_pu): Same.
* include/parallel/partial_sum.h ( parallel_partial_sum_linear): Same.
* include/parallel/losertree.h: Format.
* include/parallel/settings.h: Format.
* include/parallel/multiway_merge.h: Move traits to....
* include/parallel/losertree.h: ... here.
From-SVN: r129179
* docs/html/parallel_mode.html: Added reference to MCSTL.
More documentation on compile-time settings and tuning.
* include/parallel/multiway_merge.h: Added reference to paper.
* include/parallel/multiseq_selection.h: Added reference to paper.
* include/parallel/workstealing.h: Added reference to paper.
* include/parallel/balanced_quicksort.h: Added reference to paper.
* include/parallel/tree.h: Added reference to paper.
From-SVN: r129129