diff --git a/llvm/lib/Target/Mips/MipsRegisterInfo.h b/llvm/lib/Target/Mips/MipsRegisterInfo.h --- a/llvm/lib/Target/Mips/MipsRegisterInfo.h +++ b/llvm/lib/Target/Mips/MipsRegisterInfo.h @@ -69,6 +69,8 @@ /// Debug information queries. Register getFrameRegister(const MachineFunction &MF) const override; + bool isConstantPhysReg(MCRegister PhysReg) const override; + /// Return GPR register class. virtual const TargetRegisterClass *intRegClass(unsigned Size) const = 0; diff --git a/llvm/lib/Target/Mips/MipsRegisterInfo.cpp b/llvm/lib/Target/Mips/MipsRegisterInfo.cpp --- a/llvm/lib/Target/Mips/MipsRegisterInfo.cpp +++ b/llvm/lib/Target/Mips/MipsRegisterInfo.cpp @@ -318,3 +318,7 @@ // sized objects. return MF.getRegInfo().canReserveReg(BP); } + +bool MipsRegisterInfo::isConstantPhysReg(MCRegister PhysReg) const { + return PhysReg == Mips::ZERO_64 || PhysReg == Mips::ZERO; +}