Lines Matching defs:Filler

1 //===-- MipsDelaySlotFiller.cpp - Mips Delay Slot Filler ------------------===//
177 class Filler : public MachineFunctionPass {
179 Filler(TargetMachine &tm)
183 return "Mips Delay Slot Filler";
213 IterTy &Filler) const;
249 char Filler::ID = 0;
256 /// This function inserts clones of Filler into predecessor blocks.
257 static void insertDelayFiller(Iter Filler, const BB2BrMap &BrMap) {
258 MachineFunction *MF = Filler->getParent()->getParent();
262 MIBundleBuilder(I->second).append(MF->CloneMachineInstr(&*Filler));
265 I->first->insert(I->first->end(), MF->CloneMachineInstr(&*Filler));
270 /// This function adds registers Filler defines to MBB's live-in register list.
271 static void addLiveInRegs(Iter Filler, MachineBasicBlock &MBB) {
272 for (unsigned I = 0, E = Filler->getNumOperands(); I != E; ++I) {
273 const MachineOperand &MO = Filler->getOperand(I);
491 bool Filler::runOnMachineBasicBlock(MachineBasicBlock &MBB) {
527 return new Filler(tm);
531 bool Filler::searchRange(MachineBasicBlock &MBB, IterTy Begin, IterTy End,
533 IterTy &Filler) const {
548 Filler = I;
555 bool Filler::searchBackward(MachineBasicBlock &MBB, Iter Slot) const {
561 ReverseIter Filler;
565 if (!searchRange(MBB, ReverseIter(Slot), MBB.rend(), RegDU, MemDU, Filler))
568 MBB.splice(llvm::next(Slot), &MBB, llvm::next(Filler).base());
574 bool Filler::searchForward(MachineBasicBlock &MBB, Iter Slot) const {
581 Iter Filler;
585 if (!searchRange(MBB, llvm::next(Slot), MBB.end(), RegDU, NM, Filler))
588 MBB.splice(llvm::next(Slot), &MBB, Filler);
594 bool Filler::searchSuccBBs(MachineBasicBlock &MBB, Iter Slot) const {
607 Iter Filler;
628 if (!searchRange(MBB, SuccBB->begin(), SuccBB->end(), RegDU, *IM, Filler))
631 insertDelayFiller(Filler, BrMap);
632 addLiveInRegs(Filler, *SuccBB);
633 Filler->eraseFromParent();
638 MachineBasicBlock *Filler::selectSuccBB(MachineBasicBlock &B) const {
649 Filler::getBranch(MachineBasicBlock &MBB, const MachineBasicBlock &Dst) const {
684 bool Filler::examinePred(MachineBasicBlock &Pred, const MachineBasicBlock &Succ,
705 bool Filler::delayHasHazard(const MachineInstr &Candidate, RegDefsUses &RegDU,
715 bool Filler::terminateSearch(const MachineInstr &Candidate) const {