Обсуждение: avoid some calls to memset with array initializer

Поиск
Список
Период
Сортировка

avoid some calls to memset with array initializer

От
Justin Pryzby
Дата:
Is there any appetite for use of array initializer rather than memset, as in
attached ?  So far, I only looked for "memset.*null", and I can't see that any
of these are hot paths, but saves a cycle or two and a line of code for each.

gcc 4.9.2 with -O2 emits smaller code with array initializer than with inlined
call to memset.

$ wc -l contrib/pageinspect/heapfuncs.S? 
 22159 contrib/pageinspect/heapfuncs.S0
 22011 contrib/pageinspect/heapfuncs.S1

Also true of gcc 5.4.  And 7.3:

 25294 contrib/pageinspect/heapfuncs.S0
 25234 contrib/pageinspect/heapfuncs.S1

Вложения

Re: avoid some calls to memset with array initializer

От
rmrodriguez@carto.com
Дата:
I think this proposal is the same as [1], so you might want to read that thread.



1- https://www.postgresql.org/message-id/flat/201DD0641B056142AC8C6645EC1B5F62014B919631%40SYD1217

On Thu, Jan 2, 2020 at 5:38 PM Justin Pryzby <pryzby@telsasoft.com> wrote:
>
> Is there any appetite for use of array initializer rather than memset, as in
> attached ?  So far, I only looked for "memset.*null", and I can't see that any
> of these are hot paths, but saves a cycle or two and a line of code for each.
>
> gcc 4.9.2 with -O2 emits smaller code with array initializer than with inlined
> call to memset.
>
> $ wc -l contrib/pageinspect/heapfuncs.S?
>  22159 contrib/pageinspect/heapfuncs.S0
>  22011 contrib/pageinspect/heapfuncs.S1
>
> Also true of gcc 5.4.  And 7.3:
>
>  25294 contrib/pageinspect/heapfuncs.S0
>  25234 contrib/pageinspect/heapfuncs.S1



--
Raúl Marín Rodríguez
carto.com