From 234d7d3bec020103e46daaff39d207d978479730 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Tue, 11 Aug 2026 20:37:03 +0800 Subject: [RISCV] Order call operands like LLVM MIR --- backend/lib/Target/RISCV/RISCVCallLowering.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'backend/lib/Target') diff --git a/backend/lib/Target/RISCV/RISCVCallLowering.cpp b/backend/lib/Target/RISCV/RISCVCallLowering.cpp index 4780edb..60bf6f2 100644 --- a/backend/lib/Target/RISCV/RISCVCallLowering.cpp +++ b/backend/lib/Target/RISCV/RISCVCallLowering.cpp @@ -1352,6 +1352,14 @@ emitOutgoingArguments(MachineIRBuilder &Builder, const CallLoweringPlan &Plan, if (!Mask) return std::unexpected(Mask.error()); + std::unordered_set DynamicUses; + for (const CCAssignment &Assignment : Plan.argumentAssignments()) { + if (Assignment.LocationRegister && DynamicUses.insert(*Assignment.LocationRegister).second) { + auto Use = Instruction->addImplicitUse(Register::fromPhysical(*Assignment.LocationRegister)); + if (!Use) + return std::unexpected(Use.error()); + } + } std::unordered_set DynamicDefs; if (!IsTail) { for (const CCAssignment &Assignment : Plan.returnAssignments()) { @@ -1363,14 +1371,6 @@ emitOutgoingArguments(MachineIRBuilder &Builder, const CallLoweringPlan &Plan, } } } - std::unordered_set DynamicUses; - for (const CCAssignment &Assignment : Plan.argumentAssignments()) { - if (Assignment.LocationRegister && DynamicUses.insert(*Assignment.LocationRegister).second) { - auto Use = Instruction->addImplicitUse(Register::fromPhysical(*Assignment.LocationRegister)); - if (!Use) - return std::unexpected(Use.error()); - } - } auto Built = Instruction->build(); if (!Built) return std::unexpected(Built.error()); -- cgit v1.2.3