Skip to content

Commit 9f0bdf8

Browse files
committed
Address review comments
Change-Id: I8b50f54a8eab9e78ef40c8002eb1768cb8e0bdb7
1 parent ab9c3a0 commit 9f0bdf8

File tree

5 files changed

+161
-142
lines changed

5 files changed

+161
-142
lines changed

llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,11 +1018,9 @@ AArch64ExpandPseudo::expandCommitOrRestoreZA(MachineBasicBlock &MBB,
10181018
// Replace the pseudo with a call (BL).
10191019
MachineInstrBuilder MIB =
10201020
BuildMI(*SMBB, SMBB->end(), DL, TII->get(AArch64::BL));
1021-
unsigned FirstBLOperand = 1;
1022-
if (IsRestoreZA) {
1021+
if (IsRestoreZA)
10231022
MIB.addReg(MI.getOperand(1).getReg(), RegState::Implicit);
1024-
FirstBLOperand = 2;
1025-
}
1023+
unsigned FirstBLOperand = IsRestoreZA ? 2 : 1;
10261024
for (unsigned I = FirstBLOperand; I < MI.getNumOperands(); ++I)
10271025
MIB.add(MI.getOperand(I));
10281026
BuildMI(SMBB, DL, TII->get(AArch64::B)).addMBB(EndBB);

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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)});

llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ let hasSideEffects = 1 in {
9292

9393
def CommitZAPseudo
9494
: Pseudo<(outs),
95-
(ins GPR64:$tpidr2_el0, i64imm:$restore_routine, variable_ops), []>,
95+
(ins GPR64:$tpidr2_el0, i64imm:$commit_routine, variable_ops), []>,
9696
Sched<[]>;
9797

9898
def AArch64_inout_za_use

llvm/lib/Target/AArch64/AArch64TargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ bool AArch64PassConfig::addILPOpts() {
824824
}
825825

826826
void AArch64PassConfig::addPreRegAlloc() {
827-
if (EnableNewSMEABILowering && TM->getOptLevel() == CodeGenOptLevel::None)
827+
if (TM->getOptLevel() == CodeGenOptLevel::None && EnableNewSMEABILowering)
828828
addPass(createMachineSMEABIPass());
829829

830830
// Change dead register definitions to refer to the zero register.

0 commit comments

Comments
 (0)