diff options
author | jb <jb@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-05-27 07:09:15 +0000 |
---|---|---|
committer | jb <jb@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-05-27 07:09:15 +0000 |
commit | 417e3e9f4bd692039da9e122b9117a00567e8a51 (patch) | |
tree | 4ba076dcff35f273033f62f07fd1e6239ab3bef4 /libgfortran | |
parent | 32e3801f6f647c41b98d199b038944a52269f2e3 (diff) | |
download | gcc-417e3e9f4bd692039da9e122b9117a00567e8a51.tar.gz |
Minor timing cleanups.
2012-05-27 Janne Blomqvist <jb@gcc.gnu.org>
* 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
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 7 | ||||
-rw-r--r-- | libgfortran/intrinsics/time_1.h | 13 |
2 files changed, 14 insertions, 6 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index e30622f7440..e8f296d4b2f 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2012-05-27 Janne Blomqvist <jb@gcc.gnu.org> + + * 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 <jb@gcc.gnu.org> PR fortran/53456 diff --git a/libgfortran/intrinsics/time_1.h b/libgfortran/intrinsics/time_1.h index 94f2f3d1050..98a20d2bb70 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. |