If a function needs a frame pointer, but r11 (aka fp) has not been used,
[oota-llvm.git] / lib / Target / ARM / ARMFrameLowering.cpp
index c90001569609388a3ec6563357f5b04610fd6ff8..5a114a94e6f88b5b7254bb43ec8a5f74352488a2 100644 (file)
@@ -1529,6 +1529,10 @@ ARMFrameLowering::processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
 
     if (hasFP(MF)) {
       MRI.setPhysRegUsed(FramePtr);
+      auto FPPos = std::find(UnspilledCS1GPRs.begin(), UnspilledCS1GPRs.end(),
+                             FramePtr);
+      if (FPPos != UnspilledCS1GPRs.end())
+        UnspilledCS1GPRs.erase(FPPos);
       NumGPRSpills++;
     }