| Index: src/IceRegAlloc.h
|
| diff --git a/src/IceRegAlloc.h b/src/IceRegAlloc.h
|
| index 2dd9dac99303ba27987005e8d4991242e0f67cc3..f181a27b396824d3bffcb2f0c33031f8d8ca6a01 100644
|
| --- a/src/IceRegAlloc.h
|
| +++ b/src/IceRegAlloc.h
|
| @@ -41,12 +41,12 @@ public:
|
| const bool UseTrimmed = true;
|
| return range().overlapsInst(Other.range().getStart(), UseTrimmed);
|
| }
|
| - Variable *const Var;
|
| + Variable *Var;
|
| void dump(const Cfg *Func) const;
|
|
|
| private:
|
| // LiveRangeWrapper(const LiveRangeWrapper &) = delete;
|
| - LiveRangeWrapper &operator=(const LiveRangeWrapper &) = delete;
|
| + // LiveRangeWrapper &operator=(const LiveRangeWrapper &) = delete;
|
| };
|
|
|
| class LinearScan {
|
| @@ -57,20 +57,7 @@ public:
|
|
|
| private:
|
| Cfg *const Func;
|
| - // RangeCompare is the comparator for sorting an LiveRangeWrapper
|
| - // by starting point in a std::set<>. Ties are broken by variable
|
| - // number so that sorting is stable.
|
| - struct RangeCompare {
|
| - bool operator()(const LiveRangeWrapper &L,
|
| - const LiveRangeWrapper &R) const {
|
| - InstNumberT Lstart = L.Var->getLiveRange().getStart();
|
| - InstNumberT Rstart = R.Var->getLiveRange().getStart();
|
| - if (Lstart == Rstart)
|
| - return L.Var->getIndex() < R.Var->getIndex();
|
| - return Lstart < Rstart;
|
| - }
|
| - };
|
| - typedef std::set<LiveRangeWrapper, RangeCompare> OrderedRanges;
|
| + typedef std::vector<LiveRangeWrapper> OrderedRanges;
|
| typedef std::list<LiveRangeWrapper> UnorderedRanges;
|
| OrderedRanges Unhandled;
|
| // UnhandledPrecolored is a subset of Unhandled, specially collected
|
|
|