Does clang actually generate different code with this change?

On Sun, May 29, 2016 at 9:39 AM, Andrey A. Chernov <a...@freebsd.org> wrote:
> Author: ache
> Date: Sun May 29 16:39:28 2016
> New Revision: 300965
> URL: https://svnweb.freebsd.org/changeset/base/300965
>
> Log:
>   Micro optimize: C standard guarantees that right shift for unsigned value
>   fills left bits with zero, and we have exact 32bit unsigned value
>   (uint32_t), so there is no reason to add "& 0x7fffffff" here.
>
>   MFC after:      1 week
>
> Modified:
>   head/lib/libc/stdlib/random.c
>
> Modified: head/lib/libc/stdlib/random.c
> ==============================================================================
> --- head/lib/libc/stdlib/random.c       Sun May 29 16:32:56 2016        
> (r300964)
> +++ head/lib/libc/stdlib/random.c       Sun May 29 16:39:28 2016        
> (r300965)
> @@ -430,7 +430,7 @@ random(void)
>                  */
>                 f = fptr; r = rptr;
>                 *f += *r;
> -               i = (*f >> 1) & 0x7fffffff;     /* chucking least random bit 
> */
> +               i = *f >> 1;    /* chucking least random bit */
>                 if (++f >= end_ptr) {
>                         f = state;
>                         ++r;
>
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to