[MachineOutliner] Check the last instruction from the sequence when updating liveness

The MachineOutliner was doing an std::for_each from the call (inserted
before the outlined sequence) to the iterator at the end of the
sequence.

std::for_each needs the iterator past the end, so the last instruction
was not taken into account when propagating the liveness information.

This fixes the machine verifier issue in machine-outliner-disubprogram.ll.

Differential Revision: https://reviews.llvm.org/D49295

llvm-svn: 337090
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp
index b69a98c..5a365f2 100644
--- a/llvm/lib/CodeGen/MachineOutliner.cpp
+++ b/llvm/lib/CodeGen/MachineOutliner.cpp
@@ -1309,7 +1309,7 @@
       // First inst in outlined range <-- Anything that's defined in this
       // ...                           .. range has to be added as an implicit
       // Last inst in outlined range  <-- def to the call instruction.
-      std::for_each(CallInst, EndIt, CopyDefs);
+      std::for_each(CallInst, std::next(EndIt), CopyDefs);
     }
 
     // Erase from the point after where the call was inserted up to, and