[llvm] [AArch64] Dont inline streaming fn into non-streaming caller (PR #150595)
Gaƫtan Bossu via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 29 09:23:05 PDT 2025
================
@@ -270,6 +270,13 @@ bool AArch64TTIImpl::areInlineCompatible(const Function *Caller,
const Function *Callee) const {
SMECallAttrs CallAttrs(*Caller, *Callee);
+ // Never inline a function explicitly marked as being streaming,
+ // into a non-streaming function. Assume it was marked as streaming
+ // for a reason.
+ if (CallAttrs.caller().hasNonStreamingInterfaceAndBody() &&
+ CallAttrs.callee().hasStreamingInterfaceOrBody())
+ return false;
+
// When inlining, we should consider the body of the function, not the
// interface.
if (CallAttrs.callee().hasStreamingBody()) {
----------------
gbossu wrote:
I see `CallAttrs` being modified in the lines below. Could those changes affect the early exit check you added above?
https://github.com/llvm/llvm-project/pull/150595
More information about the llvm-commits
mailing list