After some refactoring this method is not being used anymore:
Code: Select all
void setBit(int f, u64 *b) {
*b |= BIT[f];
}
It is reproducible and not a fluctuation on the computer, it's a server with nothing else running on it and the fluctuations with the same executable are much less.
I made a lot of runs to be sure and the performance does drop by removing an unused method. Of course, the executable is different, too.
This is the compiler command on an AMD EPYC 7502P 32-Core Processor:
Code: Select all
clang -O3 -mavx2 olithink.c -o olithink
PS: An empty method instead of setBit at the same location keeps the performance equal:
Code: Select all
void tata() {}