| /freebsd-12.1/contrib/llvm/lib/Target/Hexagon/ |
| H A D | RDFRegisters.h | 72 struct RegisterRef { struct 76 RegisterRef() = default; argument 114 RegisterRef normalize(RegisterRef RR) const; 116 bool alias(RegisterRef RA, RegisterRef RB) const { in alias() 132 RegisterRef mapTo(RegisterRef RR, unsigned R) const; 153 bool aliasRR(RegisterRef RA, RegisterRef RB) const; 154 bool aliasRM(RegisterRef RR, RegisterRef RM) const; 155 bool aliasMM(RegisterRef RM, RegisterRef RN) const; 167 static bool isCoverOf(RegisterRef RA, RegisterRef RB, in isCoverOf() 179 RegisterRef intersectWith(RegisterRef RR) const; [all …]
|
| H A D | RDFRegisters.cpp | 98 RegisterRef PhysicalRegisterInfo::normalize(RegisterRef RR) const { in normalize() 116 if (MI != Reg && aliasMM(RegisterRef(Reg), RegisterRef(MI))) in getAliasSet() 126 if (aliasRM(RegisterRef(Reg), RegisterRef(MI))) in getAliasSet() 132 bool PhysicalRegisterInfo::aliasRR(RegisterRef RA, RegisterRef RB) const { in aliasRR() 163 bool PhysicalRegisterInfo::aliasRM(RegisterRef RR, RegisterRef RM) const { in aliasRM() 198 bool PhysicalRegisterInfo::aliasMM(RegisterRef RM, RegisterRef RN) const { in aliasMM() 226 RegisterRef PhysicalRegisterInfo::mapTo(RegisterRef RR, unsigned R) const { in mapTo() 306 RegisterRef RegisterAggr::intersectWith(RegisterRef RR) const { in intersectWith() 310 return RegisterRef(); in intersectWith() 316 RegisterRef RegisterAggr::clearIn(RegisterRef RR) const { in clearIn() [all …]
|
| H A D | HexagonExpandCondsets.cpp | 177 struct RegisterRef { struct in __anon416cea110111::HexagonExpandCondsets 228 void renameInRange(RegisterRef RO, RegisterRef RN, unsigned PredR, 237 bool coalesceRegisters(RegisterRef R1, RegisterRef R2); 584 RegisterRef RS = SO; in getCondTfrOpcode() 644 if (RegisterRef(SrcOp) == RegisterRef(DstR, DstSR)) in genCondTfrFor() 691 RegisterRef RT(ST); in split() 802 RegisterRef RR = Op; in canMoveOver() 908 void HexagonExpandCondsets::renameInRange(RegisterRef RO, RegisterRef RN, in renameInRange() 957 RegisterRef RT(MS); in predicate() 1033 RegisterRef RD = MD; in predicate() [all …]
|
| H A D | RDFCopy.cpp | 47 RegisterRef DstR = DFG.makeRegRef(Dst.getReg(), Dst.getSubReg()); in interpretAsCopy() 48 RegisterRef SrcR = DFG.makeRegRef(Src.getReg(), Src.getSubReg()); in interpretAsCopy() 89 NodeId CopyPropagation::getLocalReachingDef(RegisterRef RefRR, in getLocalReachingDef() 111 dbgs() << ' ' << Print<RegisterRef>(J.first, DFG) << '=' in run() 112 << Print<RegisterRef>(J.second, DFG); in run() 122 auto MinPhysReg = [this] (RegisterRef RR) -> unsigned { in run() 146 RegisterRef DR = DA.Addr->getRegRef(DFG); in run() 150 RegisterRef SR = FR->second; in run() 175 dbgs() << "Can replace " << Print<RegisterRef>(DR, DFG) in run() 176 << " with " << Print<RegisterRef>(SR, DFG) << " in " in run()
|
| H A D | RDFLiveness.h | 59 NodeList getAllReachingDefs(RegisterRef RefRR, NodeAddr<RefNode*> RefA, 67 NodeList getAllReachingDefs(RegisterRef RefRR, NodeAddr<RefNode*> RefA) { in getAllReachingDefs() 71 NodeSet getAllReachedUses(RegisterRef RefRR, NodeAddr<DefNode*> DefA, 74 NodeSet getAllReachedUses(RegisterRef RefRR, NodeAddr<DefNode*> DefA) { in getAllReachedUses() 78 std::pair<NodeSet,bool> getAllReachingDefsRec(RegisterRef RefRR, 81 NodeAddr<RefNode*> getNearestAliasedRef(RegisterRef RefRR, 141 std::pair<NodeSet,bool> getAllReachingDefsRecImpl(RegisterRef RefRR,
|
| H A D | RDFLiveness.cpp | 147 RegisterRef RR = TA.Addr->getRegRef(DFG); in getAllReachingDefs() 239 RegisterRef QR = DA.Addr->getRegRef(DFG); in getAllReachingDefs() 408 RegisterRef DR = DA.Addr->getRegRef(DFG); in getAllReachedUses() 524 RegisterRef R(UI->first, I.second); in computePhiInfo() 642 RegisterRef R(T.first); in computePhiInfo() 654 if (RegisterRef SS = MidDefs.clearIn(RegisterRef(R.Reg, M))) { in computePhiInfo() 813 std::vector<RegisterRef> LV; in computeLiveIns() 848 RegisterRef R = *I; in resetLiveIns() 997 RegisterRef LRef(LE.first); in traverse() 1045 RegisterRef T = RRs.clearIn(LRef); in traverse() [all …]
|
| H A D | HexagonBitSimplify.cpp | 218 BitTracker::RegisterRef &SL, BitTracker::RegisterRef &SH, 436 BitTracker::RegisterRef &SL, BitTracker::RegisterRef &SH, in parseRegSequence() 1069 bool usedBitsEqual(BitTracker::RegisterRef RD, BitTracker::RegisterRef RS); 1281 BitTracker::RegisterRef RS) { in usedBitsEqual() 1609 BitTracker::RegisterRef MR; in processBlock() 1687 BitTracker::RegisterRef SL, SH; in propagateRegCopy() 1761 BitTracker::RegisterRef &Rs, BitTracker::RegisterRef &Rt); 1888 BitTracker::RegisterRef &Rt) { in matchPackhl() 2021 BitTracker::RegisterRef Rs, Rt; in genPackhl() 2146 BitTracker::RegisterRef RS = Op; in genExtractLow() [all …]
|
| H A D | BitTracker.h | 38 struct RegisterRef; 54 RegisterCell get(RegisterRef RR) const; 55 void put(RegisterRef RR, const RegisterCell &RC); 56 void subst(RegisterRef OldRR, RegisterRef NewRR); 141 struct BitTracker::RegisterRef { struct 142 RegisterRef(unsigned R = 0, unsigned S = 0) 144 RegisterRef(const MachineOperand &MO) in RegisterRef() argument 397 uint16_t getRegBitWidth(const RegisterRef &RR) const; 399 RegisterCell getCell(const RegisterRef &RR, const CellMapType &M) const; 400 void putCell(const RegisterRef &RR, RegisterCell RC, CellMapType &M) const; [all …]
|
| H A D | RDFGraph.cpp | 774 LR.insert(RegisterRef(R)); in getLandingPadLiveIns() 776 LR.insert(RegisterRef(R)); in getLandingPadLiveIns() 926 RegisterRef RR = *I; in build() 989 return RegisterRef(Reg); in makeRegRef() 999 RegisterRef DataFlowGraph::restrictRef(RegisterRef AR, RegisterRef BR) const { in restrictRef() 1002 return M.any() ? RegisterRef(AR.Reg, M) : RegisterRef(); in restrictRef() 1013 return RegisterRef(); in restrictRef() 1454 auto MaxCoverIn = [this] (RegisterRef RR, RegisterSet &RRs) -> RegisterRef { in buildPhis() 1455 for (RegisterRef I : RRs) in buildPhis() 1465 std::vector<RegisterRef> MaxRefs; in buildPhis() [all …]
|
| H A D | RDFGraph.h | 413 using RegisterSet = std::set<RegisterRef>; 519 RegisterRef getRegRef(const DataFlowGraph &G) const; 526 void setRegRef(RegisterRef RR, DataFlowGraph &G); 741 PackedRegisterRef pack(RegisterRef RR) { in pack() 744 PackedRegisterRef pack(RegisterRef RR) const { in pack() 747 RegisterRef unpack(PackedRegisterRef PR) const { in unpack() 751 RegisterRef makeRegRef(unsigned Reg, unsigned Sub) const; 752 RegisterRef makeRegRef(const MachineOperand &Op) const; 753 RegisterRef restrictRef(RegisterRef AR, RegisterRef BR) const; 828 RegisterRef RR, NodeAddr<BlockNode*> PredB, [all …]
|
| H A D | RDFCopy.h | 39 using EqualityMap = std::map<RegisterRef, RegisterRef>; 55 NodeId getLocalReachingDef(RegisterRef RefRR, NodeAddr<InstrNode*> IA);
|
| H A D | HexagonBlockRanges.cpp | 263 RegisterRef R, const MachineRegisterInfo &MRI, in expandToSubRegs() 293 std::map<RegisterRef,IndexType> LastDef, LastUse; in computeInitialLiveRanges() 304 auto closeRange = [&LastUse,&LastDef,&LiveMap] (RegisterRef R) -> void { in computeInitialLiveRanges() 324 RegisterRef R = { Op.getReg(), Op.getSubReg() }; in computeInitialLiveRanges() 340 RegisterRef R = { Op.getReg(), Op.getSubReg() }; in computeInitialLiveRanges() 365 RegisterRef R = { PR, 0 }; in computeInitialLiveRanges() 372 for (RegisterRef R : Defs) in computeInitialLiveRanges() 376 for (RegisterRef S : Defs) { in computeInitialLiveRanges() 385 for (RegisterRef S : Clobbers) { in computeInitialLiveRanges() 436 auto addDeadRanges = [&IndexMap,&LiveMap,&DeadMap] (RegisterRef R) -> void { in computeDeadMap()
|
| H A D | HexagonBlockRanges.h | 34 struct RegisterRef { struct 37 bool operator<(RegisterRef R) const { 41 using RegisterSet = std::set<RegisterRef>; 143 using RegToRangeMap = std::map<RegisterRef, RangeList>; 147 static RegisterSet expandToSubRegs(RegisterRef R,
|
| H A D | BitTracker.cpp | 726 RegisterRef RD = MI.getOperand(0); in evaluate() 728 RegisterRef RS = MI.getOperand(1); in evaluate() 730 RegisterRef RT = MI.getOperand(3); in evaluate() 745 RegisterRef RD = MI.getOperand(0); in evaluate() 746 RegisterRef RS = MI.getOperand(1); in evaluate() 805 RegisterRef DefRR(MD); in visitPHI() 826 RegisterRef RU = PI.getOperand(i); in visitPHI() 858 RegisterRef RU(MO); in visitNonBranch() 864 RegisterRef RD(P.first); in visitNonBranch() 876 RegisterRef RD(MO); in visitNonBranch() [all …]
|
| H A D | HexagonBitTracker.h | 28 using RegisterRef = BitTracker::RegisterRef; member
|
| H A D | HexagonOptAddrMode.cpp | 167 RegisterRef OffsetRR; in canRemoveAddasl() 170 RegisterRef RR = UA.Addr->getRegRef(*DFG); in canRemoveAddasl() 216 RegisterRef UR = UN.Addr->getRegRef(*DFG); in allValidCandidates() 249 RegisterRef DR = DFG->getPRI().normalize(DA.Addr->getRegRef(*DFG)); in getAllRealUses() 269 if (!DFG->getPRI().alias(RegisterRef(I.first), DR)) in getAllRealUses() 287 RegisterRef LRExtRR; in isSafeToExtLR() 292 RegisterRef RR = UA.Addr->getRegRef(*DFG); in isSafeToExtLR()
|
| H A D | HexagonBitTracker.cpp | 95 uint16_t RW = getRegBitWidth(RegisterRef(Reg, Sub)); in mask() 164 std::vector<BT::RegisterRef> Vector; 171 Vector[i] = BT::RegisterRef(MO); in RegisterRefs() 179 const BT::RegisterRef &operator[](unsigned n) const { in operator []() 966 BT::RegisterRef PD(DefR, 0); in evaluate() 1021 RegisterRef PR = BI.getOperand(0); in evaluate() 1192 RegisterRef RD = MD; in evaluateLoad() 1221 RegisterRef RD = MI.getOperand(0); in evaluateFormalCopy() 1222 RegisterRef RS = MI.getOperand(1); in evaluateFormalCopy()
|
| H A D | HexagonRDFOpt.cpp | 113 auto mapRegs = [&EM] (RegisterRef DstR, RegisterRef SrcR) -> void { in INITIALIZE_PASS_DEPENDENCY()
|
| H A D | HexagonFrameLowering.cpp | 2254 HexagonBlockRanges::RegisterRef SrcRR = { SrcOp.getReg(), in optimizeSpillSlots() 2323 HexagonBlockRanges::RegisterRef FoundRR = { FoundR, 0 }; in optimizeSpillSlots()
|