[all-commits] [llvm/llvm-project] 6d30bc: [AArch64][SME] Allow inlining when streaming-mode ...

Sander de Smalen via All-commits all-commits at lists.llvm.org
Mon Oct 30 03:47:21 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6d30bc00858941043ea7d45938192adfd1020922
      https://github.com/llvm/llvm-project/commit/6d30bc00858941043ea7d45938192adfd1020922
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/Transforms/Inline/AArch64/sme-pstatesm-attrs.ll
    M llvm/test/Transforms/Inline/AArch64/sme-pstateza-attrs.ll

  Log Message:
  -----------
  [AArch64][SME] Allow inlining when streaming-mode attributes dont match up. (#68415)

The use-case here is to support things like:

  int foo(int x, int y) __arm_streaming { return std::max<int>(x, y); }

where the call to non-streaming `std::max<int>(x, y)` can be safely
inlined into the streaming function.

This is a first step and will need further work to allow more cases
(e.g. more finegrained analysis of the function calls to ensure they
don't result in any incompatible instructions for the requested mode).




More information about the All-commits mailing list