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.

From-SVN: r187922
This commit is contained in:
Janne Blomqvist 2012-05-27 10:09:15 +03:00
parent f51a04db53
commit 1ca8bef021
2 changed files with 14 additions and 6 deletions

View 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> 2012-05-24 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/53456 PR fortran/53456

View File

@ -158,10 +158,11 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec
struct tms buf; struct tms buf;
clock_t err; clock_t err;
err = times (&buf); err = times (&buf);
*user_sec = buf.tms_utime / HZ; long hz = HZ;
*user_usec = buf.tms_utime % HZ * (1000000. / HZ); *user_sec = buf.tms_utime / hz;
*system_sec = buf.tms_stime / HZ; *user_usec = (buf.tms_utime % hz) * (1000000. / hz);
*system_usec = buf.tms_stime % HZ * (1000000. / HZ); *system_sec = buf.tms_stime / hz;
*system_usec = (buf.tms_stime % hz) * (1000000. / hz);
if ((err == (clock_t) -1) && errno != 0) if ((err == (clock_t) -1) && errno != 0)
return -1; return -1;
return 0; return 0;
@ -184,7 +185,7 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec
#else #else
clock_t c = clock (); clock_t c = clock ();
*user_sec = c / CLOCKS_PER_SEC; *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; *system_sec = *system_usec = 0;
if (c == (clock_t) -1) if (c == (clock_t) -1)
return -1; return -1;
@ -204,7 +205,7 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec
usecs - OUTPUT, microseconds usecs - OUTPUT, microseconds
The OUTPUT arguments shall represent the number of seconds and 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 Return value: 0 for success, -1 for error. In case of error, errno
is set. is set.