Cleanup collectChangingRegs
authorAdrian Prantl <aprantl@apple.com>
Wed, 6 Aug 2014 18:41:19 +0000 (18:41 +0000)
committerAdrian Prantl <aprantl@apple.com>
Wed, 6 Aug 2014 18:41:19 +0000 (18:41 +0000)
The handling of the epilogue is best expressed as an early exit and
there is no reason to look for register defs in DbgValue MIs.

Patch by Frederic Riss!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214986 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp

index f557ccddb47dce36380f60cffc7e83fca9c8cf93..143b0135c8c8432c3b233ac355765683fb762cb4 100644 (file)
@@ -152,10 +152,11 @@ static void collectChangingRegs(const MachineFunction *MF,
                                 std::set<unsigned> &Regs) {
   for (const auto &MBB : *MF) {
     auto FirstEpilogueInst = getFirstEpilogueInst(MBB);
-    bool IsInEpilogue = false;
+
     for (const auto &MI : MBB) {
-      IsInEpilogue |= &MI == FirstEpilogueInst;
-      if (!MI.getFlag(MachineInstr::FrameSetup) && !IsInEpilogue)
+      if (&MI == FirstEpilogueInst)
+        break;
+      if (!MI.getFlag(MachineInstr::FrameSetup))
         collectClobberedRegisters(MI, TRI, Regs);
     }
   }