mirror of git://gcc.gnu.org/git/gcc.git
2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
Revert unintended changes to include/parallel files. From-SVN: r173066
This commit is contained in:
parent
9f1163b171
commit
df9cb15f7a
|
@ -1,6 +1,6 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
|
|
||||||
// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
// software; you can redistribute it and/or modify it under the terms
|
// software; you can redistribute it and/or modify it under the terms
|
||||||
|
@ -116,11 +116,7 @@ namespace __gnu_parallel
|
||||||
* @brief The destructor.
|
* @brief The destructor.
|
||||||
*/
|
*/
|
||||||
~_LoserTreeBase()
|
~_LoserTreeBase()
|
||||||
{
|
{ ::operator delete(_M_losers); }
|
||||||
for (unsigned int __i = 0; __i < (2 * _M_k); ++__i)
|
|
||||||
_M_losers[__i].~_Loser();
|
|
||||||
::operator delete(_M_losers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initializes the sequence "_M_source" with the element "__key".
|
* @brief Initializes the sequence "_M_source" with the element "__key".
|
||||||
|
@ -135,15 +131,15 @@ namespace __gnu_parallel
|
||||||
{
|
{
|
||||||
unsigned int __pos = _M_k + __source;
|
unsigned int __pos = _M_k + __source;
|
||||||
|
|
||||||
if (_M_first_insert)
|
if(_M_first_insert)
|
||||||
{
|
{
|
||||||
// Construct all keys, so we can easily destruct them.
|
// Construct all keys, so we can easily deconstruct them.
|
||||||
for (unsigned int __i = 0; __i < (2 * _M_k); ++__i)
|
for (unsigned int __i = 0; __i < (2 * _M_k); ++__i)
|
||||||
new(&(_M_losers[__i]._M_key)) _Tp(__key);
|
new(&(_M_losers[__i]._M_key)) _Tp(__key);
|
||||||
_M_first_insert = false;
|
_M_first_insert = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
_M_losers[__pos]._M_key = __key;
|
new(&(_M_losers[__pos]._M_key)) _Tp(__key);
|
||||||
|
|
||||||
_M_losers[__pos]._M_sup = __sup;
|
_M_losers[__pos]._M_sup = __sup;
|
||||||
_M_losers[__pos]._M_source = __source;
|
_M_losers[__pos]._M_source = __source;
|
||||||
|
@ -383,7 +379,7 @@ namespace __gnu_parallel
|
||||||
}
|
}
|
||||||
|
|
||||||
~_LoserTreePointerBase()
|
~_LoserTreePointerBase()
|
||||||
{ delete[] _M_losers; }
|
{ ::operator delete[](_M_losers); }
|
||||||
|
|
||||||
int __get_min_source()
|
int __get_min_source()
|
||||||
{ return _M_losers[0]._M_source; }
|
{ return _M_losers[0]._M_source; }
|
||||||
|
@ -596,17 +592,13 @@ namespace __gnu_parallel
|
||||||
|
|
||||||
for (unsigned int __i = _M_k + _M_ik - 1; __i < (2 * _M_k); ++__i)
|
for (unsigned int __i = _M_k + _M_ik - 1; __i < (2 * _M_k); ++__i)
|
||||||
{
|
{
|
||||||
::new(&(_M_losers[__i]._M_key)) _Tp(__sentinel);
|
_M_losers[__i]._M_key = __sentinel;
|
||||||
_M_losers[__i]._M_source = -1;
|
_M_losers[__i]._M_source = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
~_LoserTreeUnguardedBase()
|
~_LoserTreeUnguardedBase()
|
||||||
{
|
{ ::operator delete(_M_losers); }
|
||||||
for (unsigned int __i = 0; __i < (2 * _M_k); ++__i)
|
|
||||||
_M_losers[__i].~_Loser();
|
|
||||||
::operator delete(_M_losers);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__get_min_source()
|
__get_min_source()
|
||||||
|
@ -623,7 +615,7 @@ namespace __gnu_parallel
|
||||||
{
|
{
|
||||||
unsigned int __pos = _M_k + __source;
|
unsigned int __pos = _M_k + __source;
|
||||||
|
|
||||||
::new(&(_M_losers[__pos]._M_key)) _Tp(__key);
|
new(&(_M_losers[__pos]._M_key)) _Tp(__key);
|
||||||
_M_losers[__pos]._M_source = __source;
|
_M_losers[__pos]._M_source = __source;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -1045,12 +1045,11 @@ namespace __gnu_parallel
|
||||||
_ValueType;
|
_ValueType;
|
||||||
|
|
||||||
// __k sequences.
|
// __k sequences.
|
||||||
const _SeqNumber __k
|
_SeqNumber __k = static_cast<_SeqNumber>(__seqs_end - __seqs_begin);
|
||||||
= static_cast<_SeqNumber>(__seqs_end - __seqs_begin);
|
|
||||||
|
|
||||||
const _ThreadIndex __num_threads = omp_get_num_threads();
|
_ThreadIndex __num_threads = omp_get_num_threads();
|
||||||
|
|
||||||
const _DifferenceType __num_samples =
|
_DifferenceType __num_samples =
|
||||||
__gnu_parallel::_Settings::get().merge_oversampling * __num_threads;
|
__gnu_parallel::_Settings::get().merge_oversampling * __num_threads;
|
||||||
|
|
||||||
_ValueType* __samples = static_cast<_ValueType*>
|
_ValueType* __samples = static_cast<_ValueType*>
|
||||||
|
@ -1097,10 +1096,6 @@ namespace __gnu_parallel
|
||||||
__pieces[__slab][__seq].second =
|
__pieces[__slab][__seq].second =
|
||||||
_GLIBCXX_PARALLEL_LENGTH(__seqs_begin[__seq]);
|
_GLIBCXX_PARALLEL_LENGTH(__seqs_begin[__seq]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (_SeqNumber __s = 0; __s < __k; ++__s)
|
|
||||||
for (_DifferenceType __i = 0; __i < __num_samples; ++__i)
|
|
||||||
__samples[__s * __num_samples + __i].~_ValueType();
|
|
||||||
::operator delete(__samples);
|
::operator delete(__samples);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1263,10 +1258,10 @@ namespace __gnu_parallel
|
||||||
__length = std::min<_DifferenceTp>(__length, __total_length);
|
__length = std::min<_DifferenceTp>(__length, __total_length);
|
||||||
|
|
||||||
if (__total_length == 0 || __k == 0)
|
if (__total_length == 0 || __k == 0)
|
||||||
{
|
{
|
||||||
delete[] __ne_seqs;
|
delete[] __ne_seqs;
|
||||||
return __target;
|
return __target;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::pair<_DifferenceType, _DifferenceType> >* __pieces;
|
std::vector<std::pair<_DifferenceType, _DifferenceType> >* __pieces;
|
||||||
|
|
||||||
|
|
|
@ -378,8 +378,6 @@ namespace __gnu_parallel
|
||||||
|
|
||||||
# pragma omp barrier
|
# pragma omp barrier
|
||||||
|
|
||||||
for (_DifferenceType __i = 0; __i < __length_local; ++__i)
|
|
||||||
__sd->_M_temporary[__iam][__i].~_ValueType();
|
|
||||||
::operator delete(__sd->_M_temporary[__iam]);
|
::operator delete(__sd->_M_temporary[__iam]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -415,7 +413,6 @@ namespace __gnu_parallel
|
||||||
// shared variables
|
// shared variables
|
||||||
_PMWMSSortingData<_RAIter> __sd;
|
_PMWMSSortingData<_RAIter> __sd;
|
||||||
_DifferenceType* __starts;
|
_DifferenceType* __starts;
|
||||||
_DifferenceType __size;
|
|
||||||
|
|
||||||
# pragma omp parallel num_threads(__num_threads)
|
# pragma omp parallel num_threads(__num_threads)
|
||||||
{
|
{
|
||||||
|
@ -430,7 +427,7 @@ namespace __gnu_parallel
|
||||||
|
|
||||||
if (!__exact)
|
if (!__exact)
|
||||||
{
|
{
|
||||||
__size =
|
_DifferenceType __size =
|
||||||
(_Settings::get().sort_mwms_oversampling * __num_threads - 1)
|
(_Settings::get().sort_mwms_oversampling * __num_threads - 1)
|
||||||
* __num_threads;
|
* __num_threads;
|
||||||
__sd._M_samples = static_cast<_ValueType*>
|
__sd._M_samples = static_cast<_ValueType*>
|
||||||
|
@ -466,11 +463,7 @@ namespace __gnu_parallel
|
||||||
delete[] __sd._M_temporary;
|
delete[] __sd._M_temporary;
|
||||||
|
|
||||||
if (!__exact)
|
if (!__exact)
|
||||||
{
|
::operator delete(__sd._M_samples);
|
||||||
for (_DifferenceType __i = 0; __i < __size; ++__i)
|
|
||||||
__sd._M_samples[__i].~_ValueType();
|
|
||||||
::operator delete(__sd._M_samples);
|
|
||||||
}
|
|
||||||
|
|
||||||
delete[] __sd._M_offsets;
|
delete[] __sd._M_offsets;
|
||||||
delete[] __sd._M_pieces;
|
delete[] __sd._M_pieces;
|
||||||
|
|
|
@ -91,7 +91,8 @@ namespace __gnu_parallel
|
||||||
_ThreadIndex __iam = omp_get_thread_num();
|
_ThreadIndex __iam = omp_get_thread_num();
|
||||||
|
|
||||||
// Neutral element.
|
// Neutral element.
|
||||||
_Result* __reduct;
|
_Result* __reduct = static_cast<_Result*>
|
||||||
|
(::operator new(sizeof(_Result)));
|
||||||
|
|
||||||
_DifferenceType
|
_DifferenceType
|
||||||
__start = __equally_split_point(__length, __num_threads, __iam),
|
__start = __equally_split_point(__length, __num_threads, __iam),
|
||||||
|
@ -99,7 +100,7 @@ namespace __gnu_parallel
|
||||||
|
|
||||||
if (__start < __stop)
|
if (__start < __stop)
|
||||||
{
|
{
|
||||||
__reduct = new _Result(__f(__o, __begin + __start));
|
new(__reduct) _Result(__f(__o, __begin + __start));
|
||||||
++__start;
|
++__start;
|
||||||
__constructed[__iam] = true;
|
__constructed[__iam] = true;
|
||||||
}
|
}
|
||||||
|
@ -109,26 +110,18 @@ namespace __gnu_parallel
|
||||||
for (; __start < __stop; ++__start)
|
for (; __start < __stop; ++__start)
|
||||||
*__reduct = __r(*__reduct, __f(__o, __begin + __start));
|
*__reduct = __r(*__reduct, __f(__o, __begin + __start));
|
||||||
|
|
||||||
if (__constructed[__iam])
|
__thread_results[__iam] = *__reduct;
|
||||||
{
|
|
||||||
::new(&__thread_results[__iam]) _Result(*__reduct);
|
|
||||||
delete __reduct;
|
|
||||||
}
|
|
||||||
} //parallel
|
} //parallel
|
||||||
|
|
||||||
for (_ThreadIndex __i = 0; __i < __num_threads; ++__i)
|
for (_ThreadIndex __i = 0; __i < __num_threads; ++__i)
|
||||||
if (__constructed[__i])
|
if (__constructed[__i])
|
||||||
{
|
__output = __r(__output, __thread_results[__i]);
|
||||||
__output = __r(__output, __thread_results[__i]);
|
|
||||||
__thread_results[__i].~_Result();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Points to last element processed (needed as return value for
|
// Points to last element processed (needed as return value for
|
||||||
// some algorithms like transform).
|
// some algorithms like transform).
|
||||||
__f._M_finish_iterator = __begin + __length;
|
__f._M_finish_iterator = __begin + __length;
|
||||||
|
|
||||||
::operator delete(__thread_results);
|
delete[] __thread_results;
|
||||||
|
|
||||||
delete[] __constructed;
|
delete[] __constructed;
|
||||||
|
|
||||||
return __o;
|
return __o;
|
||||||
|
|
|
@ -184,10 +184,7 @@ namespace __gnu_parallel
|
||||||
__bin_op, __sums[__iam]);
|
__bin_op, __sums[__iam]);
|
||||||
} //parallel
|
} //parallel
|
||||||
|
|
||||||
for (_ThreadIndex __i = 0; __i < __num_threads; ++__i)
|
|
||||||
__sums[__i].~_ValueType();
|
|
||||||
::operator delete(__sums);
|
::operator delete(__sums);
|
||||||
|
|
||||||
delete[] __borders;
|
delete[] __borders;
|
||||||
|
|
||||||
return __result + __n;
|
return __result + __n;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
|
|
||||||
// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
// software; you can redistribute it and/or modify it under the terms
|
// software; you can redistribute it and/or modify it under the terms
|
||||||
|
@ -82,8 +82,6 @@ namespace __gnu_parallel
|
||||||
_DifferenceType __split = __parallel_partition(__begin, __end,
|
_DifferenceType __split = __parallel_partition(__begin, __end,
|
||||||
__pred, __num_threads);
|
__pred, __num_threads);
|
||||||
|
|
||||||
for (_DifferenceType __s = 0; __s < __num_samples; ++__s)
|
|
||||||
__samples[__s].~_ValueType();
|
|
||||||
::operator delete(__samples);
|
::operator delete(__samples);
|
||||||
|
|
||||||
return __split;
|
return __split;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
|
|
||||||
// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
// software; you can redistribute it and/or modify it under the terms
|
// software; you can redistribute it and/or modify it under the terms
|
||||||
|
@ -209,7 +209,7 @@ namespace __gnu_parallel
|
||||||
_ThreadIndex __target_p = __bin_proc[__target_bin];
|
_ThreadIndex __target_p = __bin_proc[__target_bin];
|
||||||
|
|
||||||
// Last column [__d->_M_num_threads] stays unchanged.
|
// Last column [__d->_M_num_threads] stays unchanged.
|
||||||
::new(&(__temporaries[__target_p][__dist[__target_bin + 1]++]))
|
::new(&(__temporaries[__target_p][__dist[__target_bin + 1]++]))
|
||||||
_ValueType(*(__source + __i + __start));
|
_ValueType(*(__source + __i + __start));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,8 +227,8 @@ namespace __gnu_parallel
|
||||||
(__sd->_M_temporaries[__iam]
|
(__sd->_M_temporaries[__iam]
|
||||||
+ (__b == __d->_M_bins_begin
|
+ (__b == __d->_M_bins_begin
|
||||||
? 0 : __sd->_M_dist[__b][__d->_M_num_threads])),
|
? 0 : __sd->_M_dist[__b][__d->_M_num_threads])),
|
||||||
*__end = (__sd->_M_temporaries[__iam]
|
* __end = (__sd->_M_temporaries[__iam]
|
||||||
+ __sd->_M_dist[__b + 1][__d->_M_num_threads]);
|
+ __sd->_M_dist[__b + 1][__d->_M_num_threads]);
|
||||||
|
|
||||||
__sequential_random_shuffle(__begin, __end, __rng);
|
__sequential_random_shuffle(__begin, __end, __rng);
|
||||||
std::copy(__begin, __end, __sd->_M_source + __global_offset
|
std::copy(__begin, __end, __sd->_M_source + __global_offset
|
||||||
|
@ -236,8 +236,6 @@ namespace __gnu_parallel
|
||||||
? 0 : __sd->_M_dist[__b][__d->_M_num_threads]));
|
? 0 : __sd->_M_dist[__b][__d->_M_num_threads]));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (_SequenceIndex __i = 0; __i < __offset; ++__i)
|
|
||||||
__sd->_M_temporaries[__iam][__i].~_ValueType();
|
|
||||||
::operator delete(__sd->_M_temporaries[__iam]);
|
::operator delete(__sd->_M_temporaries[__iam]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,9 +501,6 @@ namespace __gnu_parallel
|
||||||
delete[] __dist0;
|
delete[] __dist0;
|
||||||
delete[] __dist1;
|
delete[] __dist1;
|
||||||
delete[] __oracles;
|
delete[] __oracles;
|
||||||
|
|
||||||
for (_DifferenceType __i = 0; __i < __n; ++__i)
|
|
||||||
__target[__i].~_ValueType();
|
|
||||||
::operator delete(__target);
|
::operator delete(__target);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue