[PATCH 1/4] aarch64: Add vector implementations of cos routines
Wilco Dijkstra
Wilco.Dijkstra@arm.com
Wed Jun 14 16:27:10 GMT 2023
Hi Adhemerval,
>> +static float64x2_t VPCS_ATTR NOINLINE
>
> Why does it need NOINLINE here? Are you trying to optimize for code size?
> With stack protector I do see a small code size increase which does not
> happen without stack protector.
>
> Otherwise, I don't think you will get much regarding code reorganization.
This (and the const volatile on data) is required to generate good quality code.
There is a callback here from vector calling standard to normal calling standard
which requires a large number of registers to be saved and restored. Since this
is only needed for exceptional cases, this has to be done in a separate function
so that the common doesn't get these overheads.
There is still another GCC bug I need to work around - it decides to save/restore
registers once for each scalar math function callback which makes the exceptional
case significantly slower (and have much larger codesize).
Cheers,
Wilco
More information about the Libc-alpha
mailing list