summaryrefslogtreecommitdiffstats
path: root/libgfortran/intrinsics/time_1.h
diff options
context:
space:
mode:
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-27 07:09:15 +0000
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-27 07:09:15 +0000
commit417e3e9f4bd692039da9e122b9117a00567e8a51 (patch)
tree4ba076dcff35f273033f62f07fd1e6239ab3bef4 /libgfortran/intrinsics/time_1.h
parent32e3801f6f647c41b98d199b038944a52269f2e3 (diff)
downloadppe42-gcc-417e3e9f4bd692039da9e122b9117a00567e8a51.tar.gz
ppe42-gcc-417e3e9f4bd692039da9e122b9117a00567e8a51.zip
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/intrinsics/time_1.h')
-rw-r--r--libgfortran/intrinsics/time_1.h13
1 files changed, 7 insertions, 6 deletions
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.
OpenPOWER on IntegriCloud