From f603c88d13f583ef25afbcab122007a897e59e61 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Wed, 24 Dec 2014 02:11:43 +0000 Subject: [PATCH] LiveIntervalAnalysis: Fix performance bug that I introduced in r224663. Without a reference the code did not remember when moving the iterators of the subranges/registerunit ranges forward and instead would scan from the beginning again at the next position. llvm-svn: 224803 --- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp index 8c53658..56f38b6 100644 --- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -676,7 +676,7 @@ void LiveIntervals::addKillFlags(const VirtRegMap *VRM) { // There should be no kill flag on FOO when %vreg5 is rewritten as %EAX. for (auto &RUP : RU) { const LiveRange &RURange = *RUP.first; - LiveRange::const_iterator I = RUP.second; + LiveRange::const_iterator &I = RUP.second; if (I == RURange.end()) continue; I = RURange.advanceTo(I, RI->end); @@ -704,7 +704,7 @@ void LiveIntervals::addKillFlags(const VirtRegMap *VRM) { DefinedLanesMask = 0; for (auto &SRP : SRs) { const LiveInterval::SubRange &SR = *SRP.first; - LiveRange::const_iterator I = SRP.second; + LiveRange::const_iterator &I = SRP.second; if (I == SR.end()) continue; I = SR.advanceTo(I, RI->end); -- 2.7.4