bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ffs*, integer_length*: Optimized for MSVC


From: Gisle Vanem
Subject: Re: ffs*, integer_length*: Optimized for MSVC
Date: Tue, 4 Aug 2020 09:21:42 +0200
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0

Bruno Haible wrote:

2020-08-03  Bruno Haible  <bruno@clisp.org>

        integer_length: Optimize for MSVC.
        * lib/integer_length.c: Include <intrin.h>.
        (integer_length): With MSVC, use the _BitScanReverse built-in.

With clang-cl I get link-results like:
 integer_length_l.obj : error LNK2005: _integer_length already defined in 
integer_length.obj
 integer_length_ll.obj : error LNK2005: _integer_length already defined in 
integer_length.obj

Building with 'cl', I see no such problem.

It seems 'clang-cl' and 'cl' handles a 'static inline'
in those 'integer_length*' and 'ffs*' files differently
depending on some other condition; optimize settings?

But why not just drop these copied snippets:
  # include <intrin.h>
  /* Copied from ffs.c.  */
  static inline int
  ffs (int i)

and:
  # include <intrin.h>
  /* Copied from integer_length.c.  */
  static inline int
  integer_length (unsigned int x)

Is an extra call that much slower?

--
--gv



reply via email to

[Prev in Thread] Current Thread [Next in Thread]