@@ -9009,9 +9009,6 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
90099009 if (MF.getTarget().Options.EmitCallGraphSection && CB && CB->isIndirectCall())
90109010 CSInfo = MachineFunction::CallSiteInfo(*CB);
90119011
9012- // Determine whether we need any streaming mode changes.
9013- SMECallAttrs CallAttrs = getSMECallAttrs(MF.getFunction(), CLI);
9014-
90159012 // Check callee args/returns for SVE registers and set calling convention
90169013 // accordingly.
90179014 if (CallConv == CallingConv::C || CallConv == CallingConv::Fast) {
@@ -9025,6 +9022,8 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
90259022 CallConv = CallingConv::AArch64_SVE_VectorCall;
90269023 }
90279024
9025+ // Determine whether we need any streaming mode changes.
9026+ SMECallAttrs CallAttrs = getSMECallAttrs(MF.getFunction(), CLI);
90289027 bool UseNewSMEABILowering = Subtarget->useNewSMEABILowering();
90299028 bool IsAgnosticZAFunction = CallAttrs.caller().hasAgnosticZAInterface();
90309029 auto ZAMarkerNode = [&]() -> std::optional<unsigned> {
@@ -9043,7 +9042,7 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
90439042
90449043 // A sibling call is one where we're under the usual C ABI and not planning
90459044 // to change that but can still do a tail call:
9046- if (!ZAMarkerNode.has_value() && !TailCallOpt && IsTailCall &&
9045+ if (!ZAMarkerNode && !TailCallOpt && IsTailCall &&
90479046 CallConv != CallingConv::Tail && CallConv != CallingConv::SwiftTail)
90489047 IsSibCall = true;
90499048
@@ -9199,8 +9198,8 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
91999198 Chain = DAG.getCALLSEQ_START(Chain, IsTailCall ? 0 : NumBytes, 0, DL);
92009199 if (ZAMarkerNode) {
92019200 // Note: We need the CALLSEQ_START to glue the ZAMarkerNode to, simply
9202- // using a chain can result in incorrect scheduling. The markers referer
9203- // to the position just before the CALLSEQ_START (though occur after as
9201+ // using a chain can result in incorrect scheduling. The markers refer to
9202+ // the position just before the CALLSEQ_START (though occur after as
92049203 // CALLSEQ_START lacks in-glue).
92059204 Chain = DAG.getNode(*ZAMarkerNode, DL, DAG.getVTList(MVT::Other),
92069205 {Chain, Chain.getValue(1)});
0 commit comments