================ @@ -1275,6 +1279,31 @@ bool AArch64TargetCodeGenInfo::wouldInliningViolateFunctionCallABI( GetArmSMEInlinability(Caller, Callee) != ArmSMEInlinability::Ok; } +void AArch64TargetCodeGenInfo::emitFunctionCallProlog( + CGBuilderTy &Builder, const FunctionDecl *Caller, + const FunctionDecl *Callee) const { + const AArch64ABIInfo &ABIInfo = getABIInfo<AArch64ABIInfo>(); + const TargetInfo &TI = ABIInfo.getContext().getTargetInfo(); + + if (!TI.hasFeature("sme")) + return; + + if (!Callee || !isStreamingCompatible(Callee)) + return; + + if (const auto *FPT = Caller->getType()->getAs<FunctionProtoType>()) { + unsigned SMEAttrs = FPT->getAArch64SMEAttributes(); + if (!(SMEAttrs & FunctionType::SME_PStateSMCompatibleMask)) { + bool IsStreaming = SMEAttrs & FunctionType::SME_PStateSMEnabledMask; ---------------- sdesmalen-arm wrote:
nit: ```suggestion bool CallerIsStreaming = SMEAttrs & FunctionType::SME_PStateSMEnabledMask; ``` https://github.com/llvm/llvm-project/pull/121917 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits