Lines Matching refs:LocIdx
43 class LocIdx {
48 LocIdx() : Location(UINT_MAX) {} in LocIdx() function
52 LocIdx(unsigned L) : Location(L) { in LocIdx() function
56 static LocIdx MakeIllegalLoc() { return LocIdx(); } in MakeIllegalLoc()
57 static LocIdx MakeTombstoneLoc() { in MakeTombstoneLoc()
58 LocIdx L = LocIdx(); in MakeTombstoneLoc()
69 bool operator==(const LocIdx &L) const { return Location == L.Location; }
73 bool operator!=(const LocIdx &L) const { return !(*this == L); }
75 bool operator<(const LocIdx &Other) const {
130 ValueIDNum(uint64_t Block, uint64_t Inst, LocIdx Loc) { in ValueIDNum()
178 template <> struct DenseMapInfo<LocIdx> {
179 static inline LocIdx getEmptyKey() { return LocIdx::MakeIllegalLoc(); }
180 static inline LocIdx getTombstoneKey() { return LocIdx::MakeTombstoneLoc(); }
182 static unsigned getHashValue(const LocIdx &Loc) { return Loc.asU64(); }
184 static bool isEqual(const LocIdx &A, const LocIdx &B) { return A == B; }
345 LocIdx Loc;
350 ResolvedDbgOp(LocIdx Loc) : Loc(Loc), IsConst(false) {}
619 using argument_type = LocIdx;
620 unsigned operator()(const LocIdx &L) const { return L.asU64(); }
682 std::vector<LocIdx> LocIDToLocIdx;
732 LocIdx Idx;
737 value_type(LocIdx Idx, ValueIDNum &Value) : Idx(Idx), Value(Value) {}
738 const LocIdx Idx; /// Read-only index of this location.
742 MLocIterator(LocToValueType &ValueMap, LocIdx Idx)
754 void operator++() { Idx = LocIdx(Idx.asU64() + 1); }
756 value_type operator*() { return value_type(Idx, ValueMap[LocIdx(Idx)]); }
857 LocIDToLocIdx.resize(NumRegs, LocIdx::MakeIllegalLoc());
861 void setMLoc(LocIdx L, ValueIDNum Num) {
867 ValueIDNum readMLoc(LocIdx L) {
874 LocIdx trackRegister(unsigned ID);
876 LocIdx lookupOrTrackRegister(unsigned ID) {
877 LocIdx &Index = LocIDToLocIdx[ID];
885 LocIdx &Index = LocIDToLocIdx[R];
894 LocIdx Idx = lookupOrTrackRegister(ID);
903 LocIdx Idx = lookupOrTrackRegister(ID);
909 LocIdx Idx = lookupOrTrackRegister(ID);
919 LocIdx Idx = LocIDToLocIdx[ID];
924 LocIdx getRegMLoc(Register R) {
942 LocIdx getSpillMLoc(unsigned SpillID) {
948 bool isSpill(LocIdx Idx) const { return LocIdxToLocID[Idx] >= NumRegs; }
951 unsigned getLocSizeInBits(LocIdx L) const {
974 std::string LocIdxToName(LocIdx Idx) const;
1090 using MLocTransferMap = SmallDenseMap<LocIdx, ValueIDNum>;
1179 std::optional<LocIdx> ReadLoc;
1459 bool isCalleeSaved(LocIdx L) const;
1475 std::optional<LocIdx> findLocationForMemOperand(const MachineInstr &MI);