Reenable high accuracy timers

As discussed on the user [mailing list](http://www.open-mpi.org/community/lists/users/2014/11/25824.php) the current implementation of MPI_Wtime defaults to gettimeofday in most cases. This patch proposes a better approach by:
1. reenabling the use of micro-second accuracy OPAL timers
2. Adding support for cycle level timers

@goodell please review. Based on our discussion at SC I made sure that when available we are using the RDTSC-based timers.
The syntax seems to be correct. The problem is that I over-specified the
clobber list (rax and rdx) were already implied by the "=a" and "=d" one
line above.

  George.


On Mon, Nov 24, 2014 at 3:29 PM, Dave Goodell <notifications@github.com>
wrote:

> In opal/include/opal/sys/amd64/timer.h:
>
> >  static inline opal_timer_t
> >  opal_sys_timer_get_cycles(void)
> >  {
> > -    opal_timer_t ret;
> > -
> > -    __asm__ __volatile__("rdtsc" : "=A"(ret));
> > -
> > -    return ret;
> > -}
> > -
> > +     unsigned a, d;
> > +#if 0
> > +     __asm__ __volatile__ ("cpuid\n\t"
> > +                           "rdtsc\n\t"
> > +                           : "=a" (a), "=d" (d)
> > +                           :: "%rax", "%rbx", "%rcx", "%rdx");
>
> I think you want to drop the % characters in the clobber list (two places
> in this file, once in ia32/timer.h). Untested, but that's my recollection
> of the syntax.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/open-mpi/ompi/pull/285/files#r20823713>.
>