[all-commits] [llvm/llvm-project] 93011f: [FMV][AArch64][clang] Emit fmv-features metadata i...

Alexandros Lamprineas via All-commits all-commits at lists.llvm.org
Tue Jan 7 00:51:45 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 93011fe2a5268aab9bf59e71b9d21a3818d1e199
      https://github.com/llvm/llvm-project/commit/93011fe2a5268aab9bf59e71b9d21a3818d1e199
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2025-01-07 (Tue, 07 Jan 2025)

  Changed paths:
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/AArch64/fmv-dependencies.c
    A clang/test/CodeGen/AArch64/fmv-features.c
    M clang/test/CodeGen/AArch64/fmv-streaming.c
    M clang/test/CodeGen/attr-target-clones-aarch64.c
    M clang/test/CodeGen/attr-target-version.c

  Log Message:
  -----------
  [FMV][AArch64][clang] Emit fmv-features metadata in LLVM IR. (#118544)

We need to be able to propagate information about FMV attribute strings
from C/C++ source to LLVM IR. This is necessary so that we can
distinguish which target-features are coming from the cmdline, which are
coming from the target attribute, and which are coming from feature
dependency expansion. We need this for static resolution of calls in
LLVM. Here's a motivating example:

Suppose you have target_version("i8mm+dotprod") and
target_version("fcma"). The first version clearly has higher priority.
Now suppose you specify -march=armv8-a+i8mm on the command line. Then
the versions would have target-features "+i8mm,+dotprod" and
"+i8mm,+fcma" respectively. If you are using those to deduce version
priority, then you would incorrectly deduce that the second version was
higher priority than the first.



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