No rusage on win32
authorClifford Wolf <clifford@clifford.at>
Thu, 9 Oct 2014 08:51:24 +0000 (10:51 +0200)
committerClifford Wolf <clifford@clifford.at>
Thu, 9 Oct 2014 08:51:24 +0000 (10:51 +0200)
kernel/driver.cc
kernel/log.h

index f26d9ef8223eb5cadae00d4f7d601ee4ffb8a9b8..4210d7ca46ed7d3beb256347eea79a01e8acff33 100644 (file)
@@ -268,12 +268,16 @@ int main(int argc, char **argv)
                delete log_hasher;
                log_hasher = nullptr;
 
+               log_spacer();
+#ifdef WIN32
+               log("End of script. Logfile hash: %s\n", hash.c_str());
+#else
                struct rusage ru_buffer;
                getrusage(RUSAGE_SELF, &ru_buffer);
-               log_spacer();
                log("End of script. Logfile hash: %s, CPU: user %.2fs system %.2fs\n", hash.c_str(),
                                ru_buffer.ru_utime.tv_sec + 1e-6 * ru_buffer.ru_utime.tv_usec,
                                ru_buffer.ru_stime.tv_sec + 1e-6 * ru_buffer.ru_stime.tv_usec);
+#endif
                log("%s\n", yosys_version_str);
 
                int64_t total_ns = 0;
index 2177db0951bf92a2aa05782ec46da4b0b78a13f6..4514c420b24687faab80cd3bce7e59b2ad1718dc 100644 (file)
 
 #include <time.h>
 #include <sys/time.h>
-#include <sys/resource.h>
+
+#ifndef WIN32
+#  include <sys/resource.h>
+#endif
 
 // from libs/sha1/sha1.h
 class SHA1;
@@ -154,6 +157,8 @@ struct PerformanceTimer
                t = 1000000000ULL * (int64_t) rusage.ru_utime.tv_sec + (int64_t) rusage.ru_utime.tv_usec * 1000ULL;
                t += 1000000000ULL * (int64_t) rusage.ru_stime.tv_sec + (int64_t) rusage.ru_stime.tv_usec * 1000ULL;
                return t;
+#elif WIN32
+               return 0;
 #else
        #error Dont know how to measure per-process CPU time. Need alternative method (times()/clocks()/gettimeofday()?).
 #endif
@@ -191,8 +196,10 @@ static inline void log_dump_val_worker(int v) { log("%d", v); }
 static inline void log_dump_val_worker(unsigned int v) { log("%u", v); }
 static inline void log_dump_val_worker(long int v) { log("%ld", v); }
 static inline void log_dump_val_worker(unsigned long int v) { log("%lu", v); }
+#ifndef WIN32
 static inline void log_dump_val_worker(long long int v) { log("%lld", v); }
 static inline void log_dump_val_worker(unsigned long long int v) { log("%lld", v); }
+#endif
 static inline void log_dump_val_worker(char c) { log(c >= 32 && c < 127 ? "'%c'" : "'\\x%02x'", c); }
 static inline void log_dump_val_worker(unsigned char c) { log(c >= 32 && c < 127 ? "'%c'" : "'\\x%02x'", c); }
 static inline void log_dump_val_worker(bool v) { log("%s", v ? "true" : "false"); }