Re: [PATCH] Improve clocksource unstable warning

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Andrew Lutomirski
Date: Tuesday, November 16, 2010 - 6:24 pm

On Tue, Nov 16, 2010 at 8:19 PM, john stultz <johnstul@us.ibm.com> wrote:

Why would it be any worse than right now?  We could keep shift as high
as 32 (or even higher) and use the exact same logic as we use now.

gcc compiles this code:

uint64_t mul_64_32_shift(uint64_t a, uint32_t mult, uint32_t shift)
{
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
  if (shift >= 32)
    __builtin_unreachable();
#endif
  return (uint64_t)( ((__uint128_t)a * (__uint128_t)mult) >> shift );
}

To:

   0:   89 f0                   mov    %esi,%eax
   2:   89 d1                   mov    %edx,%ecx
   4:   48 f7 e7                mul    %rdi
   7:   48 0f ad d0             shrd   %cl,%rdx,%rax
   b:   48 d3 ea                shr    %cl,%rdx
   e:   f6 c1 40                test   $0x40,%cl
  11:   48 0f 45 c2             cmovne %rdx,%rax
  15:   c3                      retq

And if the compiler were a little smarter, it would generate:

mov    %esi,%eax
mov    %edx,%ecx
mul    %rdi
shrd   %cl,%rdx,%rax
retq

So it would be essentially free.

--Andy
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] Improve clocksource unstable warning, Andy Lutomirski, (Wed Nov 10, 3:16 pm)
Re: [PATCH] Improve clocksource unstable warning, Thomas Gleixner, (Wed Nov 10, 3:28 pm)
[PATCH v2] Improve clocksource unstable warning, Andy Lutomirski, (Wed Nov 10, 3:42 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Fri Nov 12, 2:31 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Fri Nov 12, 2:51 pm)
Re: [PATCH] Improve clocksource unstable warning, Andrew Lutomirski, (Fri Nov 12, 2:52 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Fri Nov 12, 4:40 pm)
Re: [PATCH] Improve clocksource unstable warning, Andrew Lutomirski, (Fri Nov 12, 4:48 pm)
Re: [PATCH] Improve clocksource unstable warning, Andrew Lutomirski, (Fri Nov 12, 4:51 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Fri Nov 12, 4:52 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Fri Nov 12, 5:22 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Fri Nov 12, 5:58 pm)
Re: [PATCH] Improve clocksource unstable warning, Andrew Lutomirski, (Tue Nov 16, 5:05 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Tue Nov 16, 5:26 pm)
Re: [PATCH] Improve clocksource unstable warning, Andrew Lutomirski, (Tue Nov 16, 5:54 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Tue Nov 16, 6:19 pm)
Re: [PATCH] Improve clocksource unstable warning, Andrew Lutomirski, (Tue Nov 16, 6:24 pm)
Re: [PATCH] Improve clocksource unstable warning, john stultz, (Tue Nov 16, 6:54 pm)