Minor timing cleanups.
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 27 May 2012 07:09:15 +0000 (07:09 +0000)
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 27 May 2012 07:09:15 +0000 (07:09 +0000)
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

libgfortran/ChangeLog
libgfortran/intrinsics/time_1.h

index e30622f..e8f296d 100644 (file)
@@ -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
index 94f2f3d..98a20d2 100644 (file)
@@ -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.