tree 12ffd4742145f742ffb32a5cc18944c8b8a0825a
parent 517fd770651451e9de2ad22c813df50cd8821cfc
author David Benjamin <davidben@google.com> 1725389190 -0400
committer Boringssl LUCI CQ <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com> 1725397246 +0000

Mark the CPU capability helpers as const, not just pure

If we have code like this, the compiler will not currently dedup the
capability check:

  void foo() {
    if (CRYPTO_is_AVX2_capable()) {
      foo_avx2();
    } else {
      foo_nohw();
    }
  }

  foo();
  foo();
  foo();

This is because a pure function may still inspect some globals and the
compiler doesn't know that foo_avx2() does not change the output of
CRYPTO_is_AVX2_capable(). We'd really like that to turn into:

  if (CRYPTO_is_AVX2_capable()) {
    foo_avx2();
    foo_avx2();
    foo_avx2();
  } else {
    foo_nohw();
    foo_nohw();
    foo_nohw();
  }

Strictly speaking, these functions are not const because they inspect a
global variable and a test might modify
OPENSSL_get_armcap_pointer_for_test(). However, that internal, test-only
function is already documented as needing to be resolved before any
other BoringSSL function is called. When that rule is heeded, const is
fine.

Bug: 42290548
Change-Id: I1737fd00d443e8854294dcc8446b7b0aa38ffc76
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70828
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
