[all-commits] [llvm/llvm-project] b9203b: [clang][FMV][AArch64] Improve streaming mode compa...

Alexandros Lamprineas via All-commits all-commits at lists.llvm.org
Thu Aug 1 00:03:13 PDT 2024


  Branch: refs/heads/release/19.x
  Home:   https://github.com/llvm/llvm-project
  Commit: b9203b6067c868d4305400f0964dbac8e15285db
      https://github.com/llvm/llvm-project/commit/b9203b6067c868d4305400f0964dbac8e15285db
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-08-01 (Thu, 01 Aug 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    A clang/test/Sema/aarch64-fmv-streaming.c
    M clang/test/Sema/aarch64-sme-func-attrs.c

  Log Message:
  -----------
  [clang][FMV][AArch64] Improve streaming mode compatibility.

* Allow arm-streaming if all the functions versions adhere to it.
* Allow arm-streaming-compatible if all the functions versions adhere to it.
* Allow arm-locally-streaming regardless of the other functions versions.

When the caller needs to toggle the streaming mode all the function versions
of the callee must adhere to the same mode, otherwise the call will yield a
runtime error.

Imagine the versions of the callee live in separate TUs. The version that
is visible to the caller will determine the calling convention used when
generating code for the callsite. Therefore we cannot support mixing
streaming with non-streaming function versions. Imagine TU1 has a streaming
caller and calls foo._sme which is streaming-compatible. The codegen for
the callsite will not switch off the streaming mode. Then in TU2 we have
a version which is non-streaming and could potentially be called in
streaming mode. Similarly if the caller is non-streaming and the called
version is streaming-compatible the codegen for the callsite will not
switch on the streaming mode, but other versions may be streaming.


  Commit: 00d97039a6dacd17beebce32b727e8c23900eeae
      https://github.com/llvm/llvm-project/commit/00d97039a6dacd17beebce32b727e8c23900eeae
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-08-01 (Thu, 01 Aug 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    A clang/test/CodeGen/aarch64-fmv-streaming.c
    M clang/test/Sema/attr-target-version.c

  Log Message:
  -----------
  Changes from last revision:

* Disregard declarations with different variadic type. Note that
  we are not diagnosing such differences, we just do not consider
  the two declarations part of the same declaration chain. As a
  result the diagnostic comes upon use: "ambiguous call". This
  is NFC.

* Added a sema test for variadic type mismatch.

* Added a codegen test for the calling conventions.


  Commit: 84de15796052e629a2276bcf1d502d1a8163e32b
      https://github.com/llvm/llvm-project/commit/84de15796052e629a2276bcf1d502d1a8163e32b
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-08-01 (Thu, 01 Aug 2024)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/CodeGen/aarch64-fmv-streaming.c
    M clang/test/Sema/aarch64-fmv-streaming.c

  Log Message:
  -----------
  Changes from last revision:

Made __arm_locally_streaming require the same calling convention
as the rest of the callee versions and updated the tests.


  Commit: 196fb42d2ef10cc6b3c9732c2612d2cd2973d340
      https://github.com/llvm/llvm-project/commit/196fb42d2ef10cc6b3c9732c2612d2cd2973d340
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-08-01 (Thu, 01 Aug 2024)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp

  Log Message:
  -----------
  Changes fro last revision:

Combined two separate SME_PState bitmask checks into one as suggested.


  Commit: bb412b723139a7a7f20f768857d9d4c656ac6fbb
      https://github.com/llvm/llvm-project/commit/bb412b723139a7a7f20f768857d9d4c656ac6fbb
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-08-01 (Thu, 01 Aug 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/lib/AST/ASTContext.cpp
    M clang/test/Sema/attr-target-version.c

  Log Message:
  -----------
  Changes from last revision:

* Replaced areFMVCompatible with hasSameType. Looks like this change was
  unnecessary in the first place. Most likely a residue from my WIP
  before I raised the PR. Thanks Sander for finding this!

* Removed the corresponding sema test for variadic type mismatch.


Compare: https://github.com/llvm/llvm-project/compare/7f1cd7866ef8...bb412b723139

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