From 90c59ccae65e811e666743d5be162f7325f5b0e3 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Wed, 4 Mar 2015 00:15:02 +0000 Subject: Revert "unique_ptrify LiveRange::segmentSet" Apparently something does care about ordering of LiveIntervals... so revert all that stuff (r231175, r231176, r231177) & take some time to re-evaluate. llvm-svn: 231184 --- llvm/lib/CodeGen/LiveInterval.cpp | 1 + llvm/lib/CodeGen/LiveStackAnalysis.cpp | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'llvm/lib') diff --git a/llvm/lib/CodeGen/LiveInterval.cpp b/llvm/lib/CodeGen/LiveInterval.cpp index e1aee4d898a..d60b0b1a504 100644 --- a/llvm/lib/CodeGen/LiveInterval.cpp +++ b/llvm/lib/CodeGen/LiveInterval.cpp @@ -743,6 +743,7 @@ void LiveRange::flushSegmentSet() { segments.empty() && "segment set can be used only initially before switching to the array"); segments.append(segmentSet->begin(), segmentSet->end()); + delete segmentSet; segmentSet = nullptr; verify(); } diff --git a/llvm/lib/CodeGen/LiveStackAnalysis.cpp b/llvm/lib/CodeGen/LiveStackAnalysis.cpp index 5c9c679e97b..8a6ac251ab2 100644 --- a/llvm/lib/CodeGen/LiveStackAnalysis.cpp +++ b/llvm/lib/CodeGen/LiveStackAnalysis.cpp @@ -61,10 +61,8 @@ LiveStacks::getOrCreateInterval(int Slot, const TargetRegisterClass *RC) { assert(Slot >= 0 && "Spill slot indice must be >= 0"); SS2IntervalMap::iterator I = S2IMap.find(Slot); if (I == S2IMap.end()) { - I = S2IMap.emplace(std::piecewise_construct, std::forward_as_tuple(Slot), - std::forward_as_tuple( - TargetRegisterInfo::index2StackSlot(Slot), 0.0F)) - .first; + I = S2IMap.insert(I, std::make_pair(Slot, + LiveInterval(TargetRegisterInfo::index2StackSlot(Slot), 0.0F))); S2RCMap.insert(std::make_pair(Slot, RC)); } else { // Use the largest common subclass register class. -- cgit v1.2.3