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