|
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
[Prev in Thread] | Current Thread | [Next in Thread] |