Lines Matching defs:HexagonBlockRanges
31 struct HexagonBlockRanges { struct
35 struct RegisterRef {
43 using RegisterSet = std::set<RegisterRef>;
49 enum : unsigned {
56 IndexType() {} in IndexType()
57 IndexType(unsigned Idx) : Index(Idx) {} in IndexType()
59 static bool isInstr(IndexType X) { return X.Index >= First; } in isInstr()
75 unsigned Index = None;
87 IndexType start() const { return first; } in start()
88 IndexType end() const { return second; } in end()
98 bool Fixed = false; // Can be renamed? "Fixed" means "no".
99 bool TiedEnd = false; // The end is not a use, but a dead def tied to a use.
102 void setStart(const IndexType &S) { first = S; } in setStart()
103 void setEnd(const IndexType &E) { second = E; } in setEnd()
110 void add(IndexType Start, IndexType End, bool Fixed, bool TiedEnd) { in add()
113 void add(const IndexRange &Range) { in add()
131 MachineBasicBlock &getBlock() const { return Block; } in getBlock()
138 IndexType First, Last;
142 std::map<IndexType,MachineInstr*> Map;
145 using RegToRangeMap = std::map<RegisterRef, RangeList>;
152 struct PrintRangeMap {
177 inline HexagonBlockRanges::IndexType::operator unsigned() const { argument