diff options
author | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2018-07-14 09:40:01 +0000 |
---|---|---|
committer | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2018-07-14 09:40:01 +0000 |
commit | f905bf14086f7158bd645c4ad0c62567e1b97543 (patch) | |
tree | 0e35d29fbcecc4fbf6a72de1214347abde3f5977 /llvm/lib/CodeGen | |
parent | fb503ac0277ab6613d96c35f0eb6f789e585d3df (diff) | |
download | bcm5719-llvm-f905bf14086f7158bd645c4ad0c62567e1b97543.tar.gz bcm5719-llvm-f905bf14086f7158bd645c4ad0c62567e1b97543.zip |
[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
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/MachineOutliner.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp index b69a98ccc7d..5a365f2a657 100644 --- a/llvm/lib/CodeGen/MachineOutliner.cpp +++ b/llvm/lib/CodeGen/MachineOutliner.cpp @@ -1309,7 +1309,7 @@ bool MachineOutliner::outline( // 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 |