mirror of git://gcc.gnu.org/git/gcc.git
PR 53456 CPU timing fallback using clock_gettime.
2012-05-24 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/53456 * intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime. From-SVN: r187846
This commit is contained in:
parent
165ca58dc3
commit
44813fe043
|
@ -1,3 +1,8 @@
|
||||||
|
2012-05-24 Janne Blomqvist <jb@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/53456
|
||||||
|
* intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime.
|
||||||
|
|
||||||
2012-05-23 Janne Blomqvist <jb@gcc.gnu.org>
|
2012-05-23 Janne Blomqvist <jb@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/53456
|
PR fortran/53456
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Wrappers for platform timing functions.
|
/* Wrappers for platform timing functions.
|
||||||
Copyright (C) 2003, 2007, 2009, 2011 Free Software Foundation, Inc.
|
Copyright (C) 2003, 2007, 2009, 2011, 2012 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of the GNU Fortran runtime library (libgfortran).
|
This file is part of the GNU Fortran runtime library (libgfortran).
|
||||||
|
|
||||||
|
@ -166,6 +166,21 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec
|
||||||
return -1;
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
#elif defined(HAVE_CLOCK_GETTIME) && (defined(CLOCK_PROCESS_CPUTIME_ID) \
|
||||||
|
|| defined(CLOCK_THREAD_CPUTIME_ID))
|
||||||
|
/* Newer versions of VxWorks have CLOCK_THREAD_CPUTIME_ID giving
|
||||||
|
per-thread CPU time. CLOCK_PROCESS_CPUTIME_ID would be better
|
||||||
|
but is not available. */
|
||||||
|
#ifndef CLOCK_PROCESS_CPUTIME_ID
|
||||||
|
#define CLOCK_PROCESS_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID
|
||||||
|
#endif
|
||||||
|
struct timespec ts;
|
||||||
|
int err = clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &ts);
|
||||||
|
*user_sec = ts.tv_sec;
|
||||||
|
*user_usecs = ts.tv_nsec / 1000;
|
||||||
|
*system_sec = *system_usec = 0;
|
||||||
|
return err;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
clock_t c = clock ();
|
clock_t c = clock ();
|
||||||
*user_sec = c / CLOCKS_PER_SEC;
|
*user_sec = c / CLOCKS_PER_SEC;
|
||||||
|
|
Loading…
Reference in New Issue