aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/lib/CodeGen/MachineOperand.cpp')
-rw-r--r--backend/lib/CodeGen/MachineOperand.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/backend/lib/CodeGen/MachineOperand.cpp b/backend/lib/CodeGen/MachineOperand.cpp
index f265c3f..3994286 100644
--- a/backend/lib/CodeGen/MachineOperand.cpp
+++ b/backend/lib/CodeGen/MachineOperand.cpp
@@ -300,6 +300,11 @@ Expected<void> MachineOperand::setRegister(Register Reg) {
return makeUnexpected(ErrorCode::InvalidArgument, "setRegister requires a register operand");
}
+ if (std::get<Register>(Storage) == Reg)
+ return {};
+
+ RegFlags.clear(RegisterOperandFlag::Renamable);
+
MachineRegisterInfo *RegInfo = LinkedRegInfo;
if (RegInfo == nullptr && Parent != nullptr)
RegInfo = &Parent->function().registerInfo();