1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-07-11 19:49:14 +00:00

Revert "Use std::stable_sort() instead of std::sort()"

Unfortunatly std::stable_sort() implementation in gcc is
horrendously slow. We have a big performance regression on
Linux systems (-20% !)

So revert the commit and wait to fix the issue in a different
way, perhaps with an our home grown sorting, that should be
comparable in speed with std::sort()

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2009-10-11 10:35:41 +02:00
parent e2e249eabd
commit d6b04c2798
3 changed files with 7 additions and 7 deletions

View file

@ -62,7 +62,7 @@ struct MoveStack {
int score;
};
// Note that operator< is set up such that std::stable_sort() will sort in descending order
// Note that operator< is set up such that std::sort() will sort in descending order
inline bool operator<(const MoveStack& f, const MoveStack& s) { return s.score < f.score; }

View file

@ -123,7 +123,7 @@ void MovePicker::go_next_phase() {
case PH_GOOD_CAPTURES:
lastMove = generate_captures(pos, moves);
score_captures();
std::stable_sort(moves, lastMove);
std::sort(moves, lastMove);
return;
case PH_KILLERS:
@ -134,7 +134,7 @@ void MovePicker::go_next_phase() {
case PH_NONCAPTURES:
lastMove = generate_noncaptures(pos, moves);
score_noncaptures();
std::stable_sort(moves, lastMove);
std::sort(moves, lastMove);
return;
case PH_BAD_CAPTURES:
@ -142,20 +142,20 @@ void MovePicker::go_next_phase() {
// to get SEE move ordering.
curMove = badCaptures;
lastMove = lastBadCapture;
std::stable_sort(badCaptures, lastMove);
std::sort(badCaptures, lastMove);
return;
case PH_EVASIONS:
assert(pos.is_check());
lastMove = generate_evasions(pos, moves, pinned);
score_evasions();
std::stable_sort(moves, lastMove);
std::sort(moves, lastMove);
return;
case PH_QCAPTURES:
lastMove = generate_captures(pos, moves);
score_captures();
std::stable_sort(moves, lastMove);
std::sort(moves, lastMove);
return;
case PH_QCHECKS:

View file

@ -210,7 +210,7 @@ void print_uci_options() {
for (Options::const_iterator it = options.begin(); it != options.end(); ++it)
vec.push_back(it->second);
std::stable_sort(vec.begin(), vec.end());
std::sort(vec.begin(), vec.end());
for (std::vector<Option>::const_iterator it = vec.begin(); it != vec.end(); ++it)
{