Index: llvm/lib/Target/Mips/MipsFrameLowering.h
--- llvm/lib/Target/Mips/MipsFrameLowering.h.orig
+++ llvm/lib/Target/Mips/MipsFrameLowering.h
@@ -14,6 +14,7 @@
 #define LLVM_LIB_TARGET_MIPS_MIPSFRAMELOWERING_H
 
 #include "Mips.h"
+#include "MipsReturnProtectorLowering.h"
 #include "llvm/CodeGen/TargetFrameLowering.h"
 
 namespace llvm {
@@ -26,8 +27,11 @@ class MipsFrameLowering : public TargetFrameLowering {
   bool hasFPImpl(const MachineFunction &MF) const override;
 
 public:
+
+  const MipsReturnProtectorLowering RPL;
+
   explicit MipsFrameLowering(const MipsSubtarget &sti, Align Alignment)
-      : TargetFrameLowering(StackGrowsDown, Alignment, 0, Alignment), STI(sti) {
+      : TargetFrameLowering(StackGrowsDown, Alignment, 0, Alignment), STI(sti), RPL() {
   }
 
   static const MipsFrameLowering *create(const MipsSubtarget &ST);
@@ -42,6 +46,8 @@ class MipsFrameLowering : public TargetFrameLowering {
   bool enableShrinkWrapping(const MachineFunction &MF) const override {
     return true;
   }
+
+  const ReturnProtectorLowering *getReturnProtector() const override;
 
   MachineBasicBlock::iterator
   eliminateCallFramePseudoInstr(MachineFunction &MF,
