diff options
Diffstat (limited to 'binutils-2.22/gold/timer.cc')
-rw-r--r-- | binutils-2.22/gold/timer.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/binutils-2.22/gold/timer.cc b/binutils-2.22/gold/timer.cc index d9b8874..f3a1c91 100644 --- a/binutils-2.22/gold/timer.cc +++ b/binutils-2.22/gold/timer.cc @@ -22,6 +22,8 @@ #include "gold.h" +#include <unistd.h> + #ifdef HAVE_TIMES #include <sys/times.h> #endif @@ -49,6 +51,15 @@ Timer::start() this->get_time(&this->start_time_); } +// Record the time used by pass N (0 <= N <= 2). +void +Timer::stamp(int n) +{ + gold_assert(n >= 0 && n <= 2); + TimeStats& thispass = this->pass_times_[n]; + this->get_time(&thispass); +} + #if HAVE_SYSCONF && defined _SC_CLK_TCK # define TICKS_PER_SECOND sysconf (_SC_CLK_TCK) /* POSIX 1003.1-1996 */ #else @@ -106,4 +117,17 @@ Timer::get_elapsed_time() return delta; } +// Return the stats for pass N (0 <= N <= 2). +Timer::TimeStats +Timer::get_pass_time(int n) +{ + gold_assert(n >= 0 && n <= 2); + TimeStats thispass = this->pass_times_[n]; + TimeStats& lastpass = n > 0 ? this->pass_times_[n-1] : this->start_time_; + thispass.wall -= lastpass.wall; + thispass.user -= lastpass.user; + thispass.sys -= lastpass.sys; + return thispass; +} + } |