Lines Matching refs:PI
517 PHIInfo &PI = PHIs.back(); in canConvertIf() local
519 for (unsigned i = 1; i != PI.PHI->getNumOperands(); i += 2) { in canConvertIf()
520 if (PI.PHI->getOperand(i+1).getMBB() == TPred) in canConvertIf()
521 PI.TReg = PI.PHI->getOperand(i).getReg(); in canConvertIf()
522 if (PI.PHI->getOperand(i+1).getMBB() == FPred) in canConvertIf()
523 PI.FReg = PI.PHI->getOperand(i).getReg(); in canConvertIf()
525 assert(Register::isVirtualRegister(PI.TReg) && "Bad PHI"); in canConvertIf()
526 assert(Register::isVirtualRegister(PI.FReg) && "Bad PHI"); in canConvertIf()
529 if (!TII->canInsertSelect(*Head, Cond, PI.PHI->getOperand(0).getReg(), in canConvertIf()
530 PI.TReg, PI.FReg, PI.CondCycles, PI.TCycles, in canConvertIf()
531 PI.FCycles)) { in canConvertIf()
532 LLVM_DEBUG(dbgs() << "Can't convert: " << *PI.PHI); in canConvertIf()
620 for (PHIInfo &PI : PHIs) { in replacePHIInstrs()
621 LLVM_DEBUG(dbgs() << "If-converting " << *PI.PHI); in replacePHIInstrs()
622 Register DstReg = PI.PHI->getOperand(0).getReg(); in replacePHIInstrs()
623 if (hasSameValue(*MRI, TII, PI.TReg, PI.FReg)) { in replacePHIInstrs()
627 .addReg(PI.TReg); in replacePHIInstrs()
629 TII->insertSelect(*Head, FirstTerm, HeadDL, DstReg, Cond, PI.TReg, in replacePHIInstrs()
630 PI.FReg); in replacePHIInstrs()
633 PI.PHI->eraseFromParent(); in replacePHIInstrs()
634 PI.PHI = nullptr; in replacePHIInstrs()
647 for (PHIInfo &PI : PHIs) { in rewritePHIOperands()
650 LLVM_DEBUG(dbgs() << "If-converting " << *PI.PHI); in rewritePHIOperands()
651 if (hasSameValue(*MRI, TII, PI.TReg, PI.FReg)) { in rewritePHIOperands()
654 DstReg = PI.TReg; in rewritePHIOperands()
656 Register PHIDst = PI.PHI->getOperand(0).getReg(); in rewritePHIOperands()
659 DstReg, Cond, PI.TReg, PI.FReg); in rewritePHIOperands()
664 for (unsigned i = PI.PHI->getNumOperands(); i != 1; i -= 2) { in rewritePHIOperands()
665 MachineBasicBlock *MBB = PI.PHI->getOperand(i-1).getMBB(); in rewritePHIOperands()
667 PI.PHI->getOperand(i-1).setMBB(Head); in rewritePHIOperands()
668 PI.PHI->getOperand(i-2).setReg(DstReg); in rewritePHIOperands()
670 PI.PHI->removeOperand(i-1); in rewritePHIOperands()
671 PI.PHI->removeOperand(i-2); in rewritePHIOperands()
674 LLVM_DEBUG(dbgs() << " --> " << *PI.PHI); in rewritePHIOperands()
963 for (SSAIfConv::PHIInfo &PI : IfConv.PHIs) { in shouldConvertIf()
964 unsigned Slack = TailTrace.getInstrSlack(*PI.PHI); in shouldConvertIf()
965 unsigned MaxDepth = Slack + TailTrace.getInstrCycles(*PI.PHI).Depth; in shouldConvertIf()
966 LLVM_DEBUG(dbgs() << "Slack " << Slack << ":\t" << *PI.PHI); in shouldConvertIf()
969 unsigned CondDepth = adjCycles(BranchDepth, PI.CondCycles); in shouldConvertIf()
982 unsigned TDepth = adjCycles(TBBTrace.getPHIDepth(*PI.PHI), PI.TCycles); in shouldConvertIf()
995 unsigned FDepth = adjCycles(FBBTrace.getPHIDepth(*PI.PHI), PI.FCycles); in shouldConvertIf()