Skip to content

Commit 3070c87

Browse files
committed
Address review comments
Change-Id: I8b50f54a8eab9e78ef40c8002eb1768cb8e0bdb7
1 parent 64b2519 commit 3070c87

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
@@ -1029,11 +1029,9 @@ AArch64ExpandPseudo::expandCommitOrRestoreZA(MachineBasicBlock &MBB,
10291029
// Replace the pseudo with a call (BL).
10301030
MachineInstrBuilder MIB =
10311031
BuildMI(*SMBB, SMBB->end(), DL, TII->get(AArch64::BL));
1032-
unsigned FirstBLOperand = 1;
1033-
if (IsRestoreZA) {
1032+
if (IsRestoreZA)
10341033
MIB.addReg(MI.getOperand(1).getReg(), RegState::Implicit);
1035-
FirstBLOperand = 2;
1036-
}
1034+
unsigned FirstBLOperand = IsRestoreZA ? 2 : 1;
10371035
for (unsigned I = FirstBLOperand; I < MI.getNumOperands(); ++I)
10381036
MIB.add(MI.getOperand(I));
10391037
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
@@ -9055,9 +9055,6 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
90559055
if (MF.getTarget().Options.EmitCallGraphSection && CB && CB->isIndirectCall())
90569056
CSInfo = MachineFunction::CallSiteInfo(*CB);
90579057

9058-
// Determine whether we need any streaming mode changes.
9059-
SMECallAttrs CallAttrs = getSMECallAttrs(MF.getFunction(), *this, CLI);
9060-
90619058
// Check callee args/returns for SVE registers and set calling convention
90629059
// accordingly.
90639060
if (CallConv == CallingConv::C || CallConv == CallingConv::Fast) {
@@ -9071,6 +9068,8 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
90719068
CallConv = CallingConv::AArch64_SVE_VectorCall;
90729069
}
90739070

9071+
// Determine whether we need any streaming mode changes.
9072+
SMECallAttrs CallAttrs = getSMECallAttrs(MF.getFunction(), *this, CLI);
90749073
bool UseNewSMEABILowering = Subtarget->useNewSMEABILowering();
90759074
bool IsAgnosticZAFunction = CallAttrs.caller().hasAgnosticZAInterface();
90769075
auto ZAMarkerNode = [&]() -> std::optional<unsigned> {
@@ -9089,7 +9088,7 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
90899088

90909089
// A sibling call is one where we're under the usual C ABI and not planning
90919090
// to change that but can still do a tail call:
9092-
if (!ZAMarkerNode.has_value() && !TailCallOpt && IsTailCall &&
9091+
if (!ZAMarkerNode && !TailCallOpt && IsTailCall &&
90939092
CallConv != CallingConv::Tail && CallConv != CallingConv::SwiftTail)
90949093
IsSibCall = true;
90959094

@@ -9238,8 +9237,8 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
92389237
Chain = DAG.getCALLSEQ_START(Chain, IsTailCall ? 0 : NumBytes, 0, DL);
92399238
if (ZAMarkerNode) {
92409239
// Note: We need the CALLSEQ_START to glue the ZAMarkerNode to, simply
9241-
// using a chain can result in incorrect scheduling. The markers referer
9242-
// to the position just before the CALLSEQ_START (though occur after as
9240+
// using a chain can result in incorrect scheduling. The markers refer to
9241+
// the position just before the CALLSEQ_START (though occur after as
92439242
// CALLSEQ_START lacks in-glue).
92449243
Chain = DAG.getNode(*ZAMarkerNode, DL, DAG.getVTList(MVT::Other),
92459244
{Chain, Chain.getValue(1)});

llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td

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

102102
def CommitZAPseudo
103103
: Pseudo<(outs),
104-
(ins GPR64:$tpidr2_el0, i64imm:$restore_routine, variable_ops), []>,
104+
(ins GPR64:$tpidr2_el0, i64imm:$commit_routine, variable_ops), []>,
105105
Sched<[]>;
106106

107107
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)