[all-commits] [llvm/llvm-project] 772e31: [FMV] Allow multi versioning without default decla...

Alexandros Lamprineas via All-commits all-commits at lists.llvm.org
Mon Mar 25 02:44:04 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 772e316457ef94759804d9f4da0af70d8d2ca4d4
      https://github.com/llvm/llvm-project/commit/772e316457ef94759804d9f4da0af70d8d2ca4d4
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-03-25 (Mon, 25 Mar 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/CodeGen/attr-target-version.c
    M clang/test/CodeGenCXX/attr-target-version.cpp
    M clang/test/Sema/aarch64-sme-func-attrs.c
    M clang/test/Sema/attr-target-version.c
    M clang/test/SemaCXX/attr-target-version.cpp

  Log Message:
  -----------
  [FMV] Allow multi versioning without default declaration. (#85454)

This was a limitation which has now been lifted. Please read the
thread below for more details:

https://github.com/llvm/llvm-project/pull/84405#discussion_r1525583647

Basically it allows to separate versioned implementations across
different TUs without having to share private header files which
contain the default declaration.

The ACLE spec has been updated accordingly to make this explicit:
"Each version declaration should be visible at the translation
 unit in which the corresponding function version resides."

https://github.com/ARM-software/acle/pull/310

If a resolver is required (because there is a caller in the TU),
then a default declaration is implicitly generated.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list