Lines Matching refs:RSI
81 bool operator==(const RegSeqInfo &RSI) const { in operator ==()
82 return RSI.Instr == Instr; in operator ==()
96 bool tryMergeUsingCommonSlot(RegSeqInfo &RSI, RegSeqInfo &CompatibleRSI,
98 bool tryMergeUsingFreeSlot(RegSeqInfo &RSI, RegSeqInfo &CompatibleRSI,
104 void trackRSI(const RegSeqInfo &RSI);
180 RegSeqInfo *RSI, const RegSeqInfo *BaseRSI, in RebuildVector() argument
182 unsigned Reg = RSI->Instr->getOperand(0).getReg(); in RebuildVector()
183 MachineBasicBlock::iterator Pos = RSI->Instr; in RebuildVector()
190 for (DenseMap<unsigned, unsigned>::iterator It = RSI->RegToChan.begin(), in RebuildVector()
191 E = RSI->RegToChan.end(); It != E; ++It) { in RebuildVector()
225 RSI->Instr->eraseFromParent(); in RebuildVector()
228 RSI->Instr = NewMI; in RebuildVector()
229 RSI->RegToChan = UpdatedRegToChan; in RebuildVector()
230 RSI->UndefReg = UpdatedUndef; in RebuildVector()
275 bool R600VectorRegMerger::tryMergeUsingCommonSlot(RegSeqInfo &RSI, in tryMergeUsingCommonSlot() argument
278 for (MachineInstr::mop_iterator MOp = RSI.Instr->operands_begin(), in tryMergeUsingCommonSlot()
279 MOE = RSI.Instr->operands_end(); MOp != MOE; ++MOp) { in tryMergeUsingCommonSlot()
286 if (RSI == CompatibleRSI) in tryMergeUsingCommonSlot()
288 if (tryMergeVector(&CompatibleRSI, &RSI, RemapChan)) in tryMergeUsingCommonSlot()
295 bool R600VectorRegMerger::tryMergeUsingFreeSlot(RegSeqInfo &RSI, in tryMergeUsingFreeSlot() argument
298 unsigned NeededUndefs = 4 - RSI.UndefReg.size(); in tryMergeUsingFreeSlot()
304 tryMergeVector(&CompatibleRSI, &RSI, RemapChan); in tryMergeUsingFreeSlot()
308 void R600VectorRegMerger::trackRSI(const RegSeqInfo &RSI) { in trackRSI() argument
310 It = RSI.RegToChan.begin(), E = RSI.RegToChan.end(); It != E; ++It) { in trackRSI()
311 PreviousRegSeqByReg[(*It).first].push_back(RSI.Instr); in trackRSI()
313 PreviousRegSeqByUndefCount[RSI.UndefReg.size()].push_back(RSI.Instr); in trackRSI()
314 PreviousRegSeq[RSI.Instr] = RSI; in trackRSI()
347 RegSeqInfo RSI(*MRI, &MI); in runOnMachineFunction() local
362 if (tryMergeUsingCommonSlot(RSI, CandidateRSI, RemapChan)) { in runOnMachineFunction()
365 MII = RebuildVector(&RSI, &CandidateRSI, RemapChan); in runOnMachineFunction()
366 trackRSI(RSI); in runOnMachineFunction()
371 if (tryMergeUsingFreeSlot(RSI, CandidateRSI, RemapChan)) { in runOnMachineFunction()
373 MII = RebuildVector(&RSI, &CandidateRSI, RemapChan); in runOnMachineFunction()
374 trackRSI(RSI); in runOnMachineFunction()
378 trackRSI(RSI); in runOnMachineFunction()