• Andrii Nakryiko's avatar
    selftests/bpf: adjust strobemeta loop to satisfy latest clang · 4670d68b
    Andrii Nakryiko authored
    Some recent changes in latest Clang started causing the following
    warning when unrolling strobemeta test case main loop:
    
      progs/strobemeta.h:416:2: warning: loop not unrolled: the optimizer was
      unable to perform the requested transformation; the transformation might
      be disabled or specified as part of an unsupported transformation
      ordering [-Wpass-failed=transform-warning]
    
    This patch simplifies loop's exit condition to depend only on constant
    max iteration number (STROBE_MAX_MAP_ENTRIES), while moving early
    termination logic inside the loop body. The changes are equivalent from
    program logic standpoint, but fixes the warning. It also appears to
    improve generated BPF code, as it fixes previously failing non-unrolled
    strobemeta test cases.
    
    Cc: Alexei Starovoitov <ast@fb.com>
    Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    4670d68b
strobemeta.h 14.8 KB