Am 08.01.2022 um 23:54 schrieb nia:
On Fri, Jan 07, 2022 at 08:04:49PM +0000, Roland Illig wrote:Using memcmp for comparing the variable name was probably overkill since the variable names are usually very short, so rather compare them byte by byte.I don't see the point of this change - it makes the code harder to read. We should trust the optimizing compiler, or alternatively trust that comparing short byte strings isn't particularly expensive.
My idea was that it is usually enough to compare the first byte of the variable name to see the mismatch, and that the variable names from .for loops are usually shorter than 8 bytes. Therefore I wanted to save the function call to memcmp, as well as the extra comparison for length > 7 that is in x86_64's libc.a(memcmp.o). I didn't measure whether the speed improvement is noticeable though. Throwing away 12 lines of code plus a struct looked good to me though, therefore I went this way. If I were to extract the newly added code into a function call cpp_skip_string(&p, varname), would that help? That function could be used in var.c as well, for example in ModMatch and ModMatchEq.