Recommit r231168: unique_ptrify LiveRange::segmentSet
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 4 Mar 2015 01:20:33 +0000 (01:20 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 4 Mar 2015 01:20:33 +0000 (01:20 +0000)
commit41cf4633480ad7caee26d200190ac381c96c8b57
treeb047ef67fc38da0c2640dbe807a7306edbff398a
parent1df6d33c5eb998cc38707bb9a97f3fa6cbf0ca53
Recommit r231168: unique_ptrify LiveRange::segmentSet

GCC 4.7's libstdc++ doesn't have std::map::emplace, but it does have
std::unordered_map::emplace, and the use case here doesn't appear to
need ordering. The container has been changed in a separate/precursor
patch, and now this patch should hopefully build cleanly even with
GCC 4.7.

& then I realized the order of the container did matter, so extra
handling of ordering was added in r231189.

Original commit message:
This makes LiveRange non-copyable, and LiveInterval is already
non-movable (due to the explicit dtor), so now it's non-copyable and
non-movable.

Fix the one case where we were relying on the (deprecated in C++11)
implicit copy ctor of LiveInterval (which happened to work because the
ctor created an object with a null segmentSet, so double-deleting the
null pointer was fine).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231192 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/LiveInterval.h
lib/CodeGen/LiveInterval.cpp
lib/CodeGen/LiveStackAnalysis.cpp