Lines Matching refs:RSI

69   bool operator==(const RegSeqInfo &RSI) const {  in operator ==()
70 return RSI.Instr == Instr; in operator ==()
90 bool tryMergeUsingCommonSlot(RegSeqInfo &RSI, RegSeqInfo &CompatibleRSI,
92 bool tryMergeUsingFreeSlot(RegSeqInfo &RSI, RegSeqInfo &CompatibleRSI,
97 void trackRSI(const RegSeqInfo &RSI);
180 RegSeqInfo *RSI, const RegSeqInfo *BaseRSI, in RebuildVector() argument
182 Register Reg = RSI->Instr->getOperand(0).getReg(); in RebuildVector()
183 MachineBasicBlock::iterator Pos = RSI->Instr; in RebuildVector()
190 for (const auto &It : RSI->RegToChan) { in RebuildVector()
222 RSI->Instr->eraseFromParent(); in RebuildVector()
225 RSI->Instr = NewMI; in RebuildVector()
226 RSI->RegToChan = UpdatedRegToChan; in RebuildVector()
227 RSI->UndefReg = UpdatedUndef; in RebuildVector()
266 bool R600VectorRegMerger::tryMergeUsingCommonSlot(RegSeqInfo &RSI, in tryMergeUsingCommonSlot() argument
269 for (MachineInstr::mop_iterator MOp = RSI.Instr->operands_begin(), in tryMergeUsingCommonSlot()
270 MOE = RSI.Instr->operands_end(); MOp != MOE; ++MOp) { in tryMergeUsingCommonSlot()
277 if (RSI == CompatibleRSI) in tryMergeUsingCommonSlot()
279 if (tryMergeVector(&CompatibleRSI, &RSI, RemapChan)) in tryMergeUsingCommonSlot()
286 bool R600VectorRegMerger::tryMergeUsingFreeSlot(RegSeqInfo &RSI, in tryMergeUsingFreeSlot() argument
289 unsigned NeededUndefs = 4 - RSI.UndefReg.size(); in tryMergeUsingFreeSlot()
295 tryMergeVector(&CompatibleRSI, &RSI, RemapChan); in tryMergeUsingFreeSlot()
299 void R600VectorRegMerger::trackRSI(const RegSeqInfo &RSI) { in trackRSI() argument
301 It = RSI.RegToChan.begin(), E = RSI.RegToChan.end(); It != E; ++It) { in trackRSI()
302 PreviousRegSeqByReg[(*It).first].push_back(RSI.Instr); in trackRSI()
304 PreviousRegSeqByUndefCount[RSI.UndefReg.size()].push_back(RSI.Instr); in trackRSI()
305 PreviousRegSeq[RSI.Instr] = RSI; in trackRSI()
336 RegSeqInfo RSI(*MRI, &MI); in runOnMachineFunction() local
351 if (tryMergeUsingCommonSlot(RSI, CandidateRSI, RemapChan)) { in runOnMachineFunction()
354 MII = RebuildVector(&RSI, &CandidateRSI, RemapChan); in runOnMachineFunction()
355 trackRSI(RSI); in runOnMachineFunction()
360 if (tryMergeUsingFreeSlot(RSI, CandidateRSI, RemapChan)) { in runOnMachineFunction()
362 MII = RebuildVector(&RSI, &CandidateRSI, RemapChan); in runOnMachineFunction()
363 trackRSI(RSI); in runOnMachineFunction()
367 trackRSI(RSI); in runOnMachineFunction()