reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
73 using BT = BitTracker;
lib/Target/Hexagon/BitTracker.h269 inline BitTracker::BitValue 278 inline BitTracker::BitValue 355 inline const BitTracker::RegisterCell& 362 inline BitTracker::RegisterCell 370 inline BitTracker::RegisterCell 378 inline BitTracker::RegisterCelllib/Target/Hexagon/HexagonBitSimplify.cpp
202 static bool isEqual(const BitTracker::RegisterCell &RC1, uint16_t B1, 203 const BitTracker::RegisterCell &RC2, uint16_t B2, uint16_t W); 204 static bool isZero(const BitTracker::RegisterCell &RC, uint16_t B, 206 static bool getConst(const BitTracker::RegisterCell &RC, uint16_t B, 210 static bool getSubregMask(const BitTracker::RegisterRef &RR, 217 BitTracker::RegisterRef &SL, BitTracker::RegisterRef &SH, 217 BitTracker::RegisterRef &SL, BitTracker::RegisterRef &SH, 226 const BitTracker::RegisterRef &RR, MachineRegisterInfo &MRI); 227 static bool isTransparentCopy(const BitTracker::RegisterRef &RD, 228 const BitTracker::RegisterRef &RS, MachineRegisterInfo &MRI); 313 bool HexagonBitSimplify::isEqual(const BitTracker::RegisterCell &RC1, 314 uint16_t B1, const BitTracker::RegisterCell &RC2, uint16_t B2, 318 if (RC1[B1+i].Type == BitTracker::BitValue::Ref && RC1[B1+i].RefI.Reg == 0) 321 if (RC2[B2+i].Type == BitTracker::BitValue::Ref && RC2[B2+i].RefI.Reg == 0) 329 bool HexagonBitSimplify::isZero(const BitTracker::RegisterCell &RC, 338 bool HexagonBitSimplify::getConst(const BitTracker::RegisterCell &RC, 343 const BitTracker::BitValue &BV = RC[i-1]; 404 bool HexagonBitSimplify::getSubregMask(const BitTracker::RegisterRef &RR, 432 BitTracker::RegisterRef &SL, BitTracker::RegisterRef &SH, 432 BitTracker::RegisterRef &SL, BitTracker::RegisterRef &SH, 895 const BitTracker::RegisterRef &RR, MachineRegisterInfo &MRI) { 925 bool HexagonBitSimplify::isTransparentCopy(const BitTracker::RegisterRef &RD, 926 const BitTracker::RegisterRef &RS, MachineRegisterInfo &MRI) { 1051 RedundantInstrElimination(BitTracker &bt, const HexagonInstrInfo &hii, 1065 bool usedBitsEqual(BitTracker::RegisterRef RD, BitTracker::RegisterRef RS); 1065 bool usedBitsEqual(BitTracker::RegisterRef RD, BitTracker::RegisterRef RS); 1070 BitTracker &BT; 1214 BitTracker::RegisterRef UR = *I; 1259 BitTracker::RegisterRef RR = MI.getOperand(OpN); 1276 bool RedundantInstrElimination::usedBitsEqual(BitTracker::RegisterRef RD, 1277 BitTracker::RegisterRef RS) { 1278 const BitTracker::RegisterCell &DC = BT.lookup(RD.Reg); 1279 const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg); 1318 BitTracker::RegisterRef RD = MI->getOperand(0); 1321 const BitTracker::RegisterCell &DC = BT.lookup(RD.Reg); 1328 BitTracker::RegisterRef RS = Op; 1338 const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg); 1374 ConstGeneration(BitTracker &bt, const HexagonInstrInfo &hii, 1387 BitTracker &BT; 1473 const BitTracker::RegisterCell &DRC = BT.lookup(DR); 1496 CopyGeneration(BitTracker &bt, const HexagonInstrInfo &hii, 1503 bool findMatch(const BitTracker::RegisterRef &Inp, 1504 BitTracker::RegisterRef &Out, const RegisterSet &AVs); 1509 BitTracker &BT; 1535 bool CopyGeneration::findMatch(const BitTracker::RegisterRef &Inp, 1536 BitTracker::RegisterRef &Out, const RegisterSet &AVs) { 1539 const BitTracker::RegisterCell &InpRC = BT.lookup(Inp.Reg); 1548 const BitTracker::RegisterCell &RC = BT.lookup(R); 1605 BitTracker::RegisterRef MR; 1623 BitTracker::RegisterRef TL = { R, SubLo }; 1624 BitTracker::RegisterRef TH = { R, SubHi }; 1625 BitTracker::RegisterRef ML, MH; 1666 BitTracker::RegisterRef RD = MI.getOperand(0); 1673 BitTracker::RegisterRef RS = MI.getOperand(1); 1683 BitTracker::RegisterRef SL, SH; 1698 BitTracker::RegisterRef RH = MI.getOperand(1), RL = MI.getOperand(2); 1708 BitTracker::RegisterRef RS = MI.getOperand(SrcX); 1739 BitSimplification(BitTracker &bt, const MachineDominatorTree &mdt, 1748 struct RegHalf : public BitTracker::RegisterRef { 1752 bool matchHalf(unsigned SelfR, const BitTracker::RegisterCell &RC, 1754 bool validateReg(BitTracker::RegisterRef R, unsigned Opc, unsigned OpNum); 1756 bool matchPackhl(unsigned SelfR, const BitTracker::RegisterCell &RC, 1757 BitTracker::RegisterRef &Rs, BitTracker::RegisterRef &Rt); 1757 BitTracker::RegisterRef &Rs, BitTracker::RegisterRef &Rt); 1762 bool genPackhl(MachineInstr *MI, BitTracker::RegisterRef RD, 1763 const BitTracker::RegisterCell &RC); 1764 bool genExtractHalf(MachineInstr *MI, BitTracker::RegisterRef RD, 1765 const BitTracker::RegisterCell &RC); 1766 bool genCombineHalf(MachineInstr *MI, BitTracker::RegisterRef RD, 1767 const BitTracker::RegisterCell &RC); 1768 bool genExtractLow(MachineInstr *MI, BitTracker::RegisterRef RD, 1769 const BitTracker::RegisterCell &RC); 1770 bool genBitSplit(MachineInstr *MI, BitTracker::RegisterRef RD, 1771 const BitTracker::RegisterCell &RC, const RegisterSet &AVs); 1772 bool simplifyTstbit(MachineInstr *MI, BitTracker::RegisterRef RD, 1773 const BitTracker::RegisterCell &RC); 1774 bool simplifyExtractLow(MachineInstr *MI, BitTracker::RegisterRef RD, 1775 const BitTracker::RegisterCell &RC, const RegisterSet &AVs); 1776 bool simplifyRCmp0(MachineInstr *MI, BitTracker::RegisterRef RD); 1787 BitTracker &BT; 1796 const BitTracker::RegisterCell &RC, unsigned B, RegHalf &RH) { 1824 const BitTracker::RegisterCell &SC = BT.lookup(Reg); 1829 const BitTracker::BitValue &RV = RC[i+B]; 1830 if (RV.Type == BitTracker::BitValue::Ref) { 1873 bool BitSimplification::validateReg(BitTracker::RegisterRef R, unsigned Opc, 1883 const BitTracker::RegisterCell &RC, BitTracker::RegisterRef &Rs, 1883 const BitTracker::RegisterCell &RC, BitTracker::RegisterRef &Rs, 1884 BitTracker::RegisterRef &Rt) { 1919 BitTracker::RegisterRef RS = ValOp; 1922 const BitTracker::RegisterCell &RC = BT.lookup(RS.Reg); 1964 BitTracker::RegisterRef RS = MI->getOperand(2); 1967 const BitTracker::RegisterCell &RC = BT.lookup(RS.Reg); 2013 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2013 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2017 BitTracker::RegisterRef Rs, Rt; 2040 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2040 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2079 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2079 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2111 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2111 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2142 BitTracker::RegisterRef RS = Op; 2145 const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg); 2171 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC, 2171 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC, 2205 const BitTracker::BitValue &B0 = RC[0]; 2206 if (B0.Type != BitTracker::BitValue::Ref) 2215 const BitTracker::BitValue &V = RC[i]; 2216 if (V.Type != BitTracker::BitValue::Ref) 2232 const BitTracker::RegisterCell &SC = BT.lookup(S); 2236 const BitTracker::BitValue &S0 = SC[0]; 2237 if (S0.Type != BitTracker::BitValue::Ref || S0.RefI.Reg != SrcR) 2251 const BitTracker::BitValue &V = SC[I]; 2252 if (V.Type != BitTracker::BitValue::Ref) 2324 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2324 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC) { 2330 BitTracker::RegisterRef RS = MI->getOperand(1); 2339 const BitTracker::RegisterCell &SC = BT.lookup(RS.Reg); 2340 const BitTracker::BitValue &V = SC[F+BN]; 2341 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg != RS.Reg) { 2347 BitTracker::RegisterRef RR(V.RefI.Reg, 0); 2384 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC, 2384 BitTracker::RegisterRef RD, const BitTracker::RegisterCell &RC, 2417 const BitTracker::BitValue &TopV = RC[W-1]; 2424 const BitTracker::BitValue &V = RC[I]; 2425 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg == RD.Reg) 2471 const BitTracker::RegisterCell &SC = BT.lookup(R); 2576 BitTracker::RegisterRef RD) { 2596 BitTracker::RegisterRef SR = MI->getOperand(1); 2599 const BitTracker::RegisterCell &SC = BT.lookup(SR.Reg); 2605 const BitTracker::BitValue &V = SC[I]; 2617 BitTracker::RegisterCell NewRC(W); 2685 BitTracker::RegisterCell NewRC(W); 2686 NewRC[0] = BitTracker::BitValue::self(); 2687 NewRC.fill(1, W, BitTracker::BitValue::Zero); 2725 BitTracker::RegisterRef RD = Op0; 2729 const BitTracker::RegisterCell &RC = BT.lookup(RD.Reg); 2773 BitTracker BT(HE, MF); 2902 BitTracker *BTP = nullptr; 2912 BitTracker::RegisterRef Inp, Out; 2919 BitTracker::RegisterRef LR, PR; // Loop Register, Preheader Register 2969 const BitTracker::RegisterCell &RC = BTP->lookup(Reg); 2971 const BitTracker::BitValue &V = RC[i]; 3023 const BitTracker::RegisterCell &OutC = BTP->lookup(OutR); 3025 const BitTracker::BitValue &V = OutC[i]; 3026 if (V.Type != BitTracker::BitValue::Ref) 3038 const BitTracker::RegisterCell &OutC1 = BTP->lookup(OutR1); 3039 const BitTracker::RegisterCell &OutC2 = BTP->lookup(OutR2); 3045 const BitTracker::BitValue &V1 = OutC1[i], &V2 = OutC2[i]; 3046 if (V1.Type != V2.Type || V1.Type == BitTracker::BitValue::One) 3048 if (V1.Type != BitTracker::BitValue::Ref) 3318 BitTracker BT(HE, MF);lib/Target/Hexagon/HexagonBitTracker.cpp
38 using BT = BitTracker;
lib/Target/Hexagon/HexagonBitTracker.h25 struct HexagonEvaluator : public BitTracker::MachineEvaluator { 26 using CellMapType = BitTracker::CellMapType; 27 using RegisterRef = BitTracker::RegisterRef; 28 using RegisterCell = BitTracker::RegisterCell; 29 using BranchTargetList = BitTracker::BranchTargetList; 39 BitTracker::BitMask mask(unsigned Reg, unsigned Sub) const override;lib/Target/Hexagon/HexagonGenInsert.cpp
233 bool operator() (const BitTracker::BitValue &V1, 234 const BitTracker::BitValue &V2) const; 241 bool BitValueOrdering::operator() (const BitTracker::BitValue &V1, 242 const BitTracker::BitValue &V2) const { 267 CellMapShadow(const BitTracker &T) : BT(T) {} 269 const BitTracker::RegisterCell &lookup(unsigned VR) { 274 const BitTracker::RegisterCell *CP = CVect[RInd]; 280 const BitTracker &BT; 283 using CellVectType = std::vector<const BitTracker::RegisterCell *>; 336 const BitTracker::RegisterCell &RC1 = CM.lookup(VR1), &RC2 = CM.lookup(VR2); 339 const BitTracker::BitValue &V1 = RC1[i], &V2 = RC2[i]; 353 const BitTracker::RegisterCell &RC1 = CM.lookup(VR1); 354 const BitTracker::RegisterCell &RC2 = CM.lookup(VR2); 369 const BitTracker::BitValue &V1 = RC1[Bit1], V2 = RC2[Bit2]; 645 const BitTracker::RegisterCell &RC = CMS->lookup(VR); 648 const BitTracker::BitValue &BV = RC[i]; 657 const BitTracker::RegisterCell &RC = CMS->lookup(VR); 663 const BitTracker::BitValue &BV = RC[i]; 702 const BitTracker::RegisterCell &RC = CMS->lookup(VR); 704 const BitTracker::BitValue &V = RC[i]; 705 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg == VR) 712 BitTracker::RegisterCell RC = CMS->lookup(VR); 714 const BitTracker::BitValue &V = RC[i]; 715 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg != VR) 806 const BitTracker::RegisterCell &RC = CMS->lookup(VR); 878 const BitTracker::RegisterCell &AC = CMS->lookup(SrcR); 1528 BitTracker BTLoc(HE, MF);