X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmisc.cpp;h=5bf7bae8ede51276ac6f5263ac70781cc3f96972;hp=c0c00b009fa1ab347ebb97599a2a1e687d4346ca;hb=c6baefb79df08a60912fc606d035abcc1dd70573;hpb=e381951a248ba4c6873dd81527926c6bdcac2aa6 diff --git a/src/misc.cpp b/src/misc.cpp index c0c00b00..5bf7bae8 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -24,17 +24,11 @@ #include "misc.h" #include "thread.h" -#if defined(__hpux) -# include -#endif - using namespace std; -/// Version number. If Version is left empty, then Tag plus current -/// date, in the format DD-MM-YY, are used as a version number. - +/// Version number. If Version is left empty, then compile date, in the +/// format DD-MM-YY, is shown in engine_info. static const string Version = ""; -static const string Tag = ""; /// engine_info() returns the full name of the current Stockfish version. This @@ -45,36 +39,26 @@ static const string Tag = ""; const string engine_info(bool to_uci) { const string months("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"); - const string cpu64(Is64Bit ? " 64bit" : ""); - const string popcnt(HasPopCnt ? " SSE4.2" : ""); - string month, day, year; stringstream s, date(__DATE__); // From compiler, format is "Sep 21 2008" - s << "Stockfish " << Version; + s << "Stockfish " << Version << setfill('0'); if (Version.empty()) { date >> month >> day >> year; - - s << Tag << string(Tag.empty() ? "" : " ") << setfill('0') << setw(2) << day - << "-" << setw(2) << (1 + months.find(month) / 4) << "-" << year.substr(2); + s << setw(2) << day << setw(2) << (1 + months.find(month) / 4) << year.substr(2); } - s << cpu64 << popcnt << (to_uci ? "\nid author ": " by ") + s << (Is64Bit ? " 64" : "") + << (HasPopCnt ? " SSE4.2" : "") + << (to_uci ? "\nid author ": " by ") << "Tord Romstad, Marco Costalba and Joona Kiiski"; return s.str(); } -/// Convert system time to milliseconds. That's all we need. - -Time::point Time::now() { - sys_time_t t; system_time(&t); return time_to_msec(t); -} - - /// Debug functions used mainly to collect run-time statistics static uint64_t hits[2], means[2]; @@ -174,37 +158,12 @@ std::ostream& operator<<(std::ostream& os, SyncCout sc) { void start_logger(bool b) { Logger::start(b); } -/// cpu_count() tries to detect the number of CPU cores - -int cpu_count() { - -#if defined(_WIN32) || defined(_WIN64) - SYSTEM_INFO s; - GetSystemInfo(&s); - return s.dwNumberOfProcessors; -#else - -# if defined(_SC_NPROCESSORS_ONLN) - return sysconf(_SC_NPROCESSORS_ONLN); -# elif defined(__hpux) - struct pst_dynamic psd; - if (pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0) == -1) - return 1; - return psd.psd_proc_cnt; -# else - return 1; -# endif - -#endif -} - - /// timed_wait() waits for msec milliseconds. It is mainly an helper to wrap /// conversion from milliseconds to struct timespec, as used by pthreads. void timed_wait(WaitCondition& sleepCond, Lock& sleepLock, int msec) { -#if defined(_WIN32) || defined(_WIN64) +#ifdef _WIN32 int tm = msec; #else timespec ts, *tm = &ts; @@ -221,7 +180,7 @@ void timed_wait(WaitCondition& sleepCond, Lock& sleepLock, int msec) { /// prefetch() preloads the given address in L1/L2 cache. This is a non /// blocking function and do not stalls the CPU waiting for data to be /// loaded from memory, that can be quite slow. -#if defined(NO_PREFETCH) +#ifdef NO_PREFETCH void prefetch(char*) {} @@ -237,10 +196,8 @@ void prefetch(char* addr) { # if defined(__INTEL_COMPILER) || defined(_MSC_VER) _mm_prefetch(addr, _MM_HINT_T0); - _mm_prefetch(addr+64, _MM_HINT_T0); // 64 bytes ahead # else __builtin_prefetch(addr); - __builtin_prefetch(addr+64); # endif }