Lines Matching defs:HexagonBlockRanges
32 struct HexagonBlockRanges { struct
35 struct RegisterRef {
41 typedef std::set<RegisterRef> RegisterSet;
47 enum : unsigned {
53 static bool isInstr(IndexType X) { return X.Index >= First; } in isInstr()
55 IndexType() : Index(None) {} in IndexType()
56 IndexType(unsigned Idx) : Index(Idx) {} in IndexType()
71 unsigned Index;
79 IndexRange() : Fixed(false), TiedEnd(false) {} in IndexRange()
82 IndexType start() const { return first; } in start()
83 IndexType end() const { return second; } in end()
92 bool Fixed; // Can be renamed? "Fixed" means "no".
93 bool TiedEnd; // The end is not a use, but a dead def tied to a use.
96 void setStart(const IndexType &S) { first = S; } in setStart()
97 void setEnd(const IndexType &E) { second = E; } in setEnd()
104 void add(IndexType Start, IndexType End, bool Fixed, bool TiedEnd) { in add()
107 void add(const IndexRange &Range) { in add()
123 MachineBasicBlock &getBlock() const { return Block; } in getBlock()
129 IndexType First, Last;
133 std::map<IndexType,MachineInstr*> Map;
136 typedef std::map<RegisterRef,RangeList> RegToRangeMap;
142 struct PrintRangeMap {
166 inline HexagonBlockRanges::IndexType::operator unsigned() const { argument