Home
last modified time | relevance | path

Searched refs:RegisterRef (Results 1 – 19 of 19) sorted by relevance

/freebsd-12.1/contrib/llvm/lib/Target/Hexagon/
H A DRDFRegisters.h72 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 DRDFRegisters.cpp98 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 DHexagonExpandCondsets.cpp177 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 DRDFCopy.cpp47 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 DRDFLiveness.h59 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 DRDFLiveness.cpp147 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 DHexagonBitSimplify.cpp218 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 DBitTracker.h38 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 DRDFGraph.cpp774 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 DRDFGraph.h413 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 DRDFCopy.h39 using EqualityMap = std::map<RegisterRef, RegisterRef>;
55 NodeId getLocalReachingDef(RegisterRef RefRR, NodeAddr<InstrNode*> IA);
H A DHexagonBlockRanges.cpp263 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 DHexagonBlockRanges.h34 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 DBitTracker.cpp726 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 DHexagonBitTracker.h28 using RegisterRef = BitTracker::RegisterRef; member
H A DHexagonOptAddrMode.cpp167 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 DHexagonBitTracker.cpp95 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 DHexagonRDFOpt.cpp113 auto mapRegs = [&EM] (RegisterRef DstR, RegisterRef SrcR) -> void { in INITIALIZE_PASS_DEPENDENCY()
H A DHexagonFrameLowering.cpp2254 HexagonBlockRanges::RegisterRef SrcRR = { SrcOp.getReg(), in optimizeSpillSlots()
2323 HexagonBlockRanges::RegisterRef FoundRR = { FoundR, 0 }; in optimizeSpillSlots()