This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] powerpc: Fix build of wcscpy with --disable-multi-arch


Hi Adhemerval,

>> Yes, even if ifuncs made sense 15+ years ago, today there is no benefit at all.
>> All internal uses of copysign are inlined using fcpsgn in eg. powerpc64le-linux-gnu
>> and the power4 sequence for the power4 variants.
>
> The question is still which baseline to use, to balance some optimization
> and to avoid the multiple permutation builds. I think for powerpc
> it is better to just use the builtin for all the math ifunc variants.

It should just use the generic implementation like most targets. And the generic
implementation can just use the builtin. That way we only need an override in rare
cases (eg. a target which disables the generic GCC inlining or uses a weird floating
point format).

The same should be done for a few similar functions which are inlined on all targets,
eg. fabs, sqrt, signbit. This would enable removal of lots of unnecessary ifuncs and
target overrides.

There is also a large number of single-instruction functions which are supported
by many targets, but not by most (eg. rint, ceil, round, fma). We could add a simple
header which defines for each target which of these are supported. The generic
code can then use the builtin for those. This would remove ~30 overrides from
sysdeps/aarch64/fpu.

Cheers,
Wilco

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]