diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/RDFGraph.cpp | 16 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/RDFGraph.h | 18 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/RDFLiveness.cpp | 8 |
5 files changed, 24 insertions, 24 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp b/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp index 938bdca054f..44637615b04 100644 --- a/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp +++ b/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp @@ -234,13 +234,13 @@ HexagonBlockRanges::RegisterSet HexagonBlockRanges::getLiveIns( RegisterSet LiveIns; RegisterSet Tmp; for (auto I : B.liveins()) { - if (I.LaneMask == ~LaneBitmask(0)) { + if (I.LaneMask.all()) { Tmp.insert({I.PhysReg,0}); continue; } for (MCSubRegIndexIterator S(I.PhysReg, &TRI); S.isValid(); ++S) { LaneBitmask M = TRI.getSubRegIndexLaneMask(S.getSubRegIndex()); - if (M & I.LaneMask) + if (!(M & I.LaneMask).none()) Tmp.insert({S.getSubReg(), 0}); } } diff --git a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp index f0e9c594dbf..55978a63b92 100644 --- a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp +++ b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp @@ -369,7 +369,7 @@ void HexagonExpandCondsets::updateDeadsInRange(unsigned Reg, LaneBitmask LM, if (!TargetRegisterInfo::isVirtualRegister(DR) || DR != Reg) return false; LaneBitmask SLM = getLaneMask(DR, DSR); - return (SLM & LM) != 0; + return !(SLM & LM).none(); }; // The splitting step will create pairs of predicated definitions without diff --git a/llvm/lib/Target/Hexagon/RDFGraph.cpp b/llvm/lib/Target/Hexagon/RDFGraph.cpp index 963b04b2f94..04052b74a04 100644 --- a/llvm/lib/Target/Hexagon/RDFGraph.cpp +++ b/llvm/lib/Target/Hexagon/RDFGraph.cpp @@ -30,7 +30,7 @@ namespace llvm { namespace rdf { raw_ostream &operator<< (raw_ostream &OS, const PrintLaneMaskOpt &P) { - if (P.Mask != ~LaneBitmask(0)) + if (!P.Mask.all()) OS << ':' << PrintLaneMask(P.Mask); return OS; } @@ -662,7 +662,7 @@ bool RegisterAggr::hasAliasOf(RegisterRef RR) const { RegisterRef NR = normalize(RR); auto F = Masks.find(NR.Reg); if (F != Masks.end()) { - if (F->second & NR.Mask) + if (!(F->second & NR.Mask).none()) return true; } if (CheckUnits) { @@ -676,7 +676,7 @@ bool RegisterAggr::hasAliasOf(RegisterRef RR) const { bool RegisterAggr::hasCoverOf(RegisterRef RR) const { // Always have a cover for empty lane mask. RegisterRef NR = normalize(RR); - if (!NR.Mask) + if (NR.Mask.none()) return true; auto F = Masks.find(NR.Reg); if (F == Masks.end()) @@ -717,7 +717,7 @@ RegisterAggr &RegisterAggr::clear(RegisterRef RR) { if (F == Masks.end()) return *this; LaneBitmask NewM = F->second & ~NR.Mask; - if (NewM == LaneBitmask(0)) + if (NewM.none()) Masks.erase(F); else F->second = NewM; @@ -1089,7 +1089,7 @@ RegisterRef DataFlowGraph::normalizeRef(RegisterRef RR) const { RegisterRef DataFlowGraph::restrictRef(RegisterRef AR, RegisterRef BR) const { if (AR.Reg == BR.Reg) { LaneBitmask M = AR.Mask & BR.Mask; - return M ? RegisterRef(AR.Reg, M) : RegisterRef(); + return !M.none() ? RegisterRef(AR.Reg, M) : RegisterRef(); } #ifndef NDEBUG RegisterRef NAR = normalizeRef(AR); @@ -1211,7 +1211,7 @@ bool DataFlowGraph::alias(RegisterRef RA, RegisterRef RB) const { // This can happen when the register has only one unit, or when the // unit corresponds to explicit aliasing. In such cases, the lane mask // from RegisterRef should be ignored. - if (!PA.second || !PB.second) + if (PA.second.none() || PB.second.none()) return true; // At this point the common unit corresponds to a subregister. The lane @@ -1221,7 +1221,7 @@ bool DataFlowGraph::alias(RegisterRef RA, RegisterRef RB) const { // while the lane mask of r2 in d1 may be 0b0001. LaneBitmask LA = PA.second & RA.Mask; LaneBitmask LB = PB.second & RB.Mask; - if (LA != 0 && LB != 0) { + if (!LA.none() && !LB.none()) { unsigned Root = *MCRegUnitRootIterator(PA.first, &TRI); // If register units were guaranteed to only have 1 bit in any lane // mask, the code below would not be necessary. This is because LA @@ -1232,7 +1232,7 @@ bool DataFlowGraph::alias(RegisterRef RA, RegisterRef RB) const { const TargetRegisterClass &RC = *TRI.getMinimalPhysRegClass(Root); LaneBitmask MaskA = TRI.reverseComposeSubRegIndexLaneMask(SubA, LA); LaneBitmask MaskB = TRI.reverseComposeSubRegIndexLaneMask(SubB, LB); - if (MaskA & MaskB & RC.LaneMask) + if (!(MaskA & MaskB & RC.LaneMask).none()) return true; } diff --git a/llvm/lib/Target/Hexagon/RDFGraph.h b/llvm/lib/Target/Hexagon/RDFGraph.h index 2e9a6cc6720..b279752a21f 100644 --- a/llvm/lib/Target/Hexagon/RDFGraph.h +++ b/llvm/lib/Target/Hexagon/RDFGraph.h @@ -403,9 +403,9 @@ namespace rdf { LaneBitmask Mask; RegisterRef() : RegisterRef(0) {} - explicit RegisterRef(RegisterId R, LaneBitmask M = ~LaneBitmask(0)) - : Reg(R), Mask(R != 0 ? M : 0) {} - operator bool() const { return Reg != 0 && Mask != LaneBitmask(0); } + explicit RegisterRef(RegisterId R, LaneBitmask M = LaneBitmask::getAll()) + : Reg(R), Mask(R != 0 ? M : LaneBitmask::getNone()) {} + operator bool() const { return Reg != 0 && !Mask.none(); } bool operator== (const RegisterRef &RR) const { return Reg == RR.Reg && Mask == RR.Mask; } @@ -458,7 +458,7 @@ namespace rdf { uint32_t find(T Val) const { auto F = llvm::find(Map, Val); assert(F != Map.end()); - return *F; + return F - Map.begin(); } private: std::vector<T> Map; @@ -468,15 +468,15 @@ namespace rdf { LaneMaskIndex() = default; LaneBitmask getLaneMaskForIndex(uint32_t K) const { - return K == 0 ? ~LaneBitmask(0) : get(K); + return K == 0 ? LaneBitmask::getAll() : get(K); } uint32_t getIndexForLaneMask(LaneBitmask LM) { - assert(LM != LaneBitmask(0)); - return LM == ~LaneBitmask(0) ? 0 : insert(LM); + assert(!LM.none()); + return LM.all() ? 0 : insert(LM); } uint32_t getIndexForLaneMask(LaneBitmask LM) const { - assert(LM != LaneBitmask(0)); - return LM == ~LaneBitmask(0) ? 0 : find(LM); + assert(!LM.none()); + return LM.all() ? 0 : find(LM); } PackedRegisterRef pack(RegisterRef RR) { return { RR.Reg, getIndexForLaneMask(RR.Mask) }; diff --git a/llvm/lib/Target/Hexagon/RDFLiveness.cpp b/llvm/lib/Target/Hexagon/RDFLiveness.cpp index 55b1de02155..3563d056692 100644 --- a/llvm/lib/Target/Hexagon/RDFLiveness.cpp +++ b/llvm/lib/Target/Hexagon/RDFLiveness.cpp @@ -659,7 +659,7 @@ void Liveness::computeLiveIns() { RegisterRef UR = DFG.normalizeRef(getRestrictedRegRef(PUA)); for (const std::pair<RegisterId,NodeRefSet> &T : RUs) { // Check if T.first aliases UR? - LaneBitmask M = 0; + LaneBitmask M; for (std::pair<NodeId,LaneBitmask> P : T.second) M |= P.second; @@ -710,7 +710,7 @@ void Liveness::computeLiveIns() { } do { LaneBitmask M = TRI.getSubRegIndexLaneMask(S.getSubRegIndex()); - if (M & P.second) + if (!(M & P.second).none()) LV.push_back(RegisterRef(S.getSubReg())); ++S; } while (S.isValid()); @@ -759,7 +759,7 @@ void Liveness::resetKills(MachineBasicBlock *B) { } do { LaneBitmask M = TRI.getSubRegIndexLaneMask(S.getSubRegIndex()); - if (M & I.LaneMask) + if (!(M & I.LaneMask).none()) LV.set(S.getSubReg()); ++S; } while (S.isValid()); @@ -1001,7 +1001,7 @@ void Liveness::traverse(MachineBasicBlock *B, RefMap &LiveIn) { RegisterAggr &Local = LiveMap[B]; RefMap &LON = PhiLON[B]; for (auto &R : LON) { - LaneBitmask M = 0; + LaneBitmask M; for (auto P : R.second) M |= P.second; Local.insert(RegisterRef(R.first,M)); |