[all-commits] [llvm/llvm-project] 8ec50d: [AArch64] Fix FMV ifunc resolver usage on old Andr...

Pavel Iliin via All-commits all-commits at lists.llvm.org
Fri Sep 29 09:11:21 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8ec50d64464c7e6804827d5f4f298366be535001
      https://github.com/llvm/llvm-project/commit/8ec50d64464c7e6804827d5f4f298366be535001
  Author: Pavel Iliin <Pavel.Iliin at arm.com>
  Date:   2023-09-29 (Fri, 29 Sep 2023)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/CodeGen/attr-target-clones-aarch64.c
    M clang/test/CodeGen/attr-target-version.c
    M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
    M clang/test/CodeGenCXX/attr-target-version.cpp
    M clang/test/Driver/aarch64-features.c
    M compiler-rt/lib/builtins/cpu_model.c

  Log Message:
  -----------
  [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions.

The patch fixes Function Multi Versioning features detection by ifunc
resolver on Android API levels < 30.
Ifunc hwcaps parameters are not supported on Android API levels 23-29,
so all CPU features are set unsupported if they were not initialized
before ifunc resolver call.
There is no support for ifunc on Android API levels < 23, so Function
Multi Versioning is disabled in this case.

Also use two underscore prefix for FMV runtime support functions to
avoid conflict with user program ones.

Differential Revision: https://reviews.llvm.org/D158641




More information about the All-commits mailing list