On Thu, 2024-02-08 at 16:35 +0100, Jose E. Marchesi wrote: [...] > If the compiler generates assembly code the same code for profile2.c for > before and after, that means that the loop does _not_ get unrolled when > profiler.inc.h is built with -O2 but without #pragma unroll. > > But what if #pragma unroll is used? If it unrolls then, that would mean > that the pragma does something more than -funroll-loops/-O2. > > Sorry if I am not making sense. Stuff like this confuses me to no end > ;) Sorry, I messed up while switching branches :( Here are the correct stats: | File | insn # | insn # | | | before | after | |-----------------+--------+--------| | profiler1.bpf.o | 16716 | 4813 | | profiler2.bpf.o | 2088 | 2050 | | profiler3.bpf.o | 4465 | 1690 |