From 8553df97bbc6154dae9d0ad861857e71a0efa420 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Sat, 1 Aug 2026 13:09:30 +0800 Subject: [CodeGen] Add transactional MachineIR builder Validate insertion cursors, operand ownership, descriptor constraints, ties, implicit registers, and memory operands before allocating or publishing an instruction. Share instruction legality checks with the verifier path and preserve deterministic insertion order. --- backend/include/rcc/CodeGen/MachineInstr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'backend/include/rcc/CodeGen/MachineInstr.h') diff --git a/backend/include/rcc/CodeGen/MachineInstr.h b/backend/include/rcc/CodeGen/MachineInstr.h index 376273f..bcae306 100644 --- a/backend/include/rcc/CodeGen/MachineInstr.h +++ b/backend/include/rcc/CodeGen/MachineInstr.h @@ -87,8 +87,8 @@ public: } void reserveOperands(std::size_t Capacity); - [[nodiscard]] Expected addOperand(MachineOperand Operand); - [[nodiscard]] Expected insertOperand(std::size_t Index, MachineOperand Operand); + [[nodiscard]] Expected addOperand(MachineOperand &&Operand); + [[nodiscard]] Expected insertOperand(std::size_t Index, MachineOperand &&Operand); [[nodiscard]] Expected eraseOperand(std::size_t Index); [[nodiscard]] Expected tieOperands(std::size_t DefIndex, std::size_t UseIndex); -- cgit v1.2.3