Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:MachineBasicBlock

57 typedef std::vector<std::pair<MachineBasicBlock*,unsigned> > AvailableValsTy;
85 MachineBasicBlock *BB);
86 void ProcessPHI(MachineInstr *MI, MachineBasicBlock *TailBB,
87 MachineBasicBlock *PredBB,
93 MachineBasicBlock *TailBB,
94 MachineBasicBlock *PredBB,
98 void UpdateSuccessorsPHIs(MachineBasicBlock *FromBB, bool isDead,
99 SmallVector<MachineBasicBlock*, 8> &TDBBs,
100 SmallSetVector<MachineBasicBlock*, 8> &Succs);
103 bool IsSimple, MachineBasicBlock &TailBB);
104 bool isSimpleBB(MachineBasicBlock *TailBB);
105 bool canCompletelyDuplicateBB(MachineBasicBlock &BB);
106 bool duplicateSimpleBB(MachineBasicBlock *TailBB,
107 SmallVector<MachineBasicBlock*, 8> &TDBBs,
110 bool TailDuplicate(MachineBasicBlock *TailBB,
113 SmallVector<MachineBasicBlock*, 8> &TDBBs,
115 bool TailDuplicateAndUpdate(MachineBasicBlock *MBB,
119 void RemoveDeadBlock(MachineBasicBlock *MBB);
149 MachineBasicBlock *MBB = I;
150 SmallSetVector<MachineBasicBlock*, 8> Preds(MBB->pred_begin(),
152 MachineBasicBlock::iterator MI = MBB->begin();
156 for (SmallSetVector<MachineBasicBlock *, 8>::iterator PI = Preds.begin(),
158 MachineBasicBlock *PredBB = *PI;
161 MachineBasicBlock *PHIBB = MI->getOperand(i+1).getMBB();
176 MachineBasicBlock *PHIBB = MI->getOperand(i+1).getMBB();
197 TailDuplicatePass::TailDuplicateAndUpdate(MachineBasicBlock *MBB,
201 SmallSetVector<MachineBasicBlock*, 8> Succs(MBB->succ_begin(),
204 SmallVector<MachineBasicBlock*, 8> TDBBs;
237 MachineBasicBlock *DefBB = 0;
247 MachineBasicBlock *SrcBB = LI->second[j].first;
310 MachineBasicBlock *MBB = I++;
329 static bool isDefLiveOut(unsigned Reg, MachineBasicBlock *BB,
342 static unsigned getPHISrcRegOpIdx(MachineInstr *MI, MachineBasicBlock *SrcBB) {
353 static void getRegsUsedByPHIs(const MachineBasicBlock &BB,
355 for(MachineBasicBlock::const_iterator I = BB.begin(), E = BB.end();
370 MachineBasicBlock *BB) {
386 MachineBasicBlock *TailBB,
387 MachineBasicBlock *PredBB,
419 MachineBasicBlock *TailBB,
420 MachineBasicBlock *PredBB,
454 TailDuplicatePass::UpdateSuccessorsPHIs(MachineBasicBlock *FromBB, bool isDead,
455 SmallVector<MachineBasicBlock*, 8> &TDBBs,
456 SmallSetVector<MachineBasicBlock*,8> &Succs) {
457 for (SmallSetVector<MachineBasicBlock*, 8>::iterator SI = Succs.begin(),
459 MachineBasicBlock *SuccBB = *SI;
460 for (MachineBasicBlock::iterator II = SuccBB->begin(), EE = SuccBB->end();
498 MachineBasicBlock *SrcBB = LI->second[j].first;
518 MachineBasicBlock *SrcBB = TDBBs[j];
540 MachineBasicBlock &TailBB) {
576 for (MachineBasicBlock::iterator I = TailBB.begin(); I != TailBB.end(); ++I) {
614 TailDuplicatePass::isSimpleBB(MachineBasicBlock *TailBB) {
619 MachineBasicBlock::iterator I = TailBB->begin();
620 MachineBasicBlock::iterator E = TailBB->end();
629 bothUsedInPHI(const MachineBasicBlock &A,
630 SmallPtrSet<MachineBasicBlock*, 8> SuccsB) {
631 for (MachineBasicBlock::const_succ_iterator SI = A.succ_begin(),
633 MachineBasicBlock *BB = *SI;
642 TailDuplicatePass::canCompletelyDuplicateBB(MachineBasicBlock &BB) {
643 SmallPtrSet<MachineBasicBlock*, 8> Succs(BB.succ_begin(), BB.succ_end());
645 for (MachineBasicBlock::pred_iterator PI = BB.pred_begin(),
647 MachineBasicBlock *PredBB = *PI;
652 MachineBasicBlock *PredTBB = NULL, *PredFBB = NULL;
664 TailDuplicatePass::duplicateSimpleBB(MachineBasicBlock *TailBB,
665 SmallVector<MachineBasicBlock*, 8> &TDBBs,
668 SmallPtrSet<MachineBasicBlock*, 8> Succs(TailBB->succ_begin(),
670 SmallVector<MachineBasicBlock*, 8> Preds(TailBB->pred_begin(),
673 for (SmallSetVector<MachineBasicBlock *, 8>::iterator PI = Preds.begin(),
675 MachineBasicBlock *PredBB = *PI;
683 MachineBasicBlock *PredTBB = NULL, *PredFBB = NULL;
692 MachineBasicBlock *NewTarget = *TailBB->succ_begin();
693 MachineBasicBlock *NextBB = llvm::next(MachineFunction::iterator(PredBB));
742 TailDuplicatePass::TailDuplicate(MachineBasicBlock *TailBB,
745 SmallVector<MachineBasicBlock*, 8> &TDBBs,
759 SmallSetVector<MachineBasicBlock*, 8> Preds(TailBB->pred_begin(),
761 for (SmallSetVector<MachineBasicBlock *, 8>::iterator PI = Preds.begin(),
763 MachineBasicBlock *PredBB = *PI;
771 MachineBasicBlock *PredTBB, *PredFBB;
796 for (MachineBasicBlock::livein_iterator I = TailBB->livein_begin(),
811 MachineBasicBlock::instr_iterator I = TailBB->instr_begin();
825 MachineBasicBlock::iterator Loc = PredBB->getFirstTerminator();
841 for (MachineBasicBlock::succ_iterator I = TailBB->succ_begin(),
852 MachineBasicBlock *PrevBB = prior(MachineFunction::iterator(TailBB));
853 MachineBasicBlock *PriorTBB = 0, *PriorFBB = 0;
866 MachineBasicBlock::iterator I = TailBB->begin();
886 MachineBasicBlock::iterator Loc = PrevBB->getFirstTerminator();
927 for (SmallSetVector<MachineBasicBlock *, 8>::iterator PI = Preds.begin(),
929 MachineBasicBlock *PredBB = *PI;
939 MachineBasicBlock::iterator I = TailBB->begin();
947 MachineBasicBlock::iterator Loc = PredBB->getFirstTerminator();
960 void TailDuplicatePass::RemoveDeadBlock(MachineBasicBlock *MBB) {