Denis P. Mendoza wrote:BTW Tord, the new Glaurung 2 src series has been very, very friendly to the Intel and MSVC compilers in Windows lately. and we really thank you for that. The peculiar thing was, it's getting better and faster, though compiler warnings are growing in numbers.
Is it just the usual "performance warnings", or something else? The performance warnings can safely be ignored. They are caused by functions like this:
Code: Select all
inline bool Position::pawn_is_doubled(Color c, Square s) const {
return this->pawns_of_color(c) & squares_behind(c, s);
}
The compiler complains about the expensive cast of a bitboard (this->pawns_of_color(c) and squares_behind(c, s) are both of the Bitboard type) to a bool. But because the function is inlined, and because the return value is always just used as a condition in an "if" statement, a decent compiler will always be able to optimize away the cast.
It would be easy to prevent the warnings by changing the return type of this and similar functions from bool to Bitboard, but it would make the code look a bit uglier.
In 32-bit mode, t's like riding in a rally-cross Mitsubishi Evolution. going in 64-bit mode...feels like riding side-by-side with Michael Schumacher

. The acceleration from single to dual-core is fantastic.
Between 32-bit and 64-bit, the difference in speed would probably be slightly smaller if you define USE_32BIT_ATTACKS (near the top of bitboard.h).
The acceleration from single to dual core should indeed be slightly better in Glaurung 2.0 than in Glaurung 2 - ε/5, but the really big difference is the parallell search speedup on systems with more than 2 CPUs.
Tord