From 417e3e9f4bd692039da9e122b9117a00567e8a51 Mon Sep 17 00:00:00 2001 From: jb Date: Sun, 27 May 2012 07:09:15 +0000 Subject: [PATCH] Minor timing cleanups. 2012-05-27 Janne Blomqvist * intrinsics/time_1.h (gf_cputime): Don't reevaluate HZ expression for times fallback, clarify operation ordering for times and clock fallbacks. (gf_gettime): Fix comment typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187922 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgfortran/ChangeLog | 7 +++++++ libgfortran/intrinsics/time_1.h | 13 +++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index e30622f..e8f296d 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2012-05-27 Janne Blomqvist + + * intrinsics/time_1.h (gf_cputime): Don't reevaluate HZ expression + for times fallback, clarify operation ordering for times and clock + fallbacks. + (gf_gettime): Fix comment typo. + 2012-05-24 Janne Blomqvist PR fortran/53456 diff --git a/libgfortran/intrinsics/time_1.h b/libgfortran/intrinsics/time_1.h index 94f2f3d..98a20d2 100644 --- a/libgfortran/intrinsics/time_1.h +++ b/libgfortran/intrinsics/time_1.h @@ -158,10 +158,11 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec struct tms buf; clock_t err; err = times (&buf); - *user_sec = buf.tms_utime / HZ; - *user_usec = buf.tms_utime % HZ * (1000000. / HZ); - *system_sec = buf.tms_stime / HZ; - *system_usec = buf.tms_stime % HZ * (1000000. / HZ); + long hz = HZ; + *user_sec = buf.tms_utime / hz; + *user_usec = (buf.tms_utime % hz) * (1000000. / hz); + *system_sec = buf.tms_stime / hz; + *system_usec = (buf.tms_stime % hz) * (1000000. / hz); if ((err == (clock_t) -1) && errno != 0) return -1; return 0; @@ -184,7 +185,7 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec #else clock_t c = clock (); *user_sec = c / CLOCKS_PER_SEC; - *user_usec = c % CLOCKS_PER_SEC * (1000000. / CLOCKS_PER_SEC); + *user_usec = (c % CLOCKS_PER_SEC) * (1000000. / CLOCKS_PER_SEC); *system_sec = *system_usec = 0; if (c == (clock_t) -1) return -1; @@ -204,7 +205,7 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec usecs - OUTPUT, microseconds The OUTPUT arguments shall represent the number of seconds and - nanoseconds since the Epoch. + microseconds since the Epoch. Return value: 0 for success, -1 for error. In case of error, errno is set. -- 2.7.4