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] |
On 30-03-2016 15:14, Tulio Magno Quites Machado Filho wrote: > Adhemerval Zanella <adhemerval.zanella@linaro.org> writes: > >> On 30-03-2016 10:14, Tulio Magno Quites Machado Filho wrote: >>> Adhemerval Zanella <adhemerval.zanella@linaro.org> writes: >>> >>>> * sysdeps/powerpc/powerpc64/strcspn.S: Remove file. >>>> * sysdeps/powerpc/powerpc64/strpbrk.S: Likewise. >>> >>> But the removal of these 2 brings some serious performance degradation. >>> I think we should keep them for now. >> >> Do you mean regression on POWER7 only or for POWER8 as well? > > Both. > >> And what do you mean by 'serious'? > > The new strcspn C implementation spent 8x the time of the powerpc64 assembly. > While strpbrk spent ~12x the time. > Using the benchtests. > This is definitively not what I am seeing the environment I am using (powerpc64le, POWER8E (raw), 3.5GHz, --with-cpu=power7, CFLAGS=-O3, gcc 4.8.4). I am sending you the benchtests data in attachment. For strcspn if reject is length {0,1} strchrnul will be used, which is way faster than constructing the table and reading byte per byte. Also for the rest of inputs, C version is slight faster in fact. It is the same for strpbrk, since it will call strcspn in the end. The only patch it will be faster is when 'accept == '\0', since powerpc64 algorithm has a fast patch to return 0 in this case (where C implementation will call strchrnul). I am not seeing much difference with default optimization (-O2) as well.
Attachment:
bench-strcspn-base.out
Description: Text document
Attachment:
bench-strcspn-patch.out
Description: Text document
Attachment:
bench-strpbrk-base.out
Description: Text document
Attachment:
bench-strpbrk-patch.out
Description: Text document
Attachment:
bench-strspn-base.out
Description: Text document
Attachment:
bench-strspn-patch.out
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |