[llvm] [AArch64][SME] Extend Inliner cost-model with custom penalty for calls. (PR #68416)

Amara Emerson via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 31 00:40:10 PDT 2023


================
@@ -0,0 +1,43 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
+; RUN: opt < %s -mtriple=aarch64-unknown-linux-gnu -mattr=+sme -S -passes=inline  -inlinedefault-threshold=1 | FileCheck %s
+
+; This test sets the inline-threshold to 1 such that by default the call to @streaming_callee is not inlined.
+; However, if the call to @streaming_callee requires a streaming-mode change, it should always inline the call because the streaming-mode change is more expensive.
+target triple = "aarch64"
+
+declare void @streaming_compatible_f() "aarch64_pstate_sm_compatible"
+
+define void @streaming_callee() "aarch64_pstate_sm_enabled" {
----------------
aemerson wrote:

A comment would be helpful here to explain that `@streaming_callee` doesn't contain any operations that use ZA state, and therefore can be legally inlined into a normal function.

https://github.com/llvm/llvm-project/pull/68416


More information about the llvm-commits mailing list