Lines Matching refs:CRI

389   bool splitBlockOnBinaryCROp(CRLogicalOpInfo &CRI);
586 CRLogicalOpInfo CRI = AllCRLogicalOps[Idx]; in handleCROp() local
587 if (CRI.IsBinary && CRI.ContainedInBlock && CRI.SingleUse && CRI.FeedsBR && in handleCROp()
588 CRI.DefsSingleUse) { in handleCROp()
589 Changed = splitBlockOnBinaryCROp(CRI); in handleCROp()
613 bool PPCReduceCRLogicals::splitBlockOnBinaryCROp(CRLogicalOpInfo &CRI) { in splitBlockOnBinaryCROp() argument
614 if (CRI.CopyDefs.first == CRI.CopyDefs.second) { in splitBlockOnBinaryCROp()
619 if (CRI.TrueDefs.first->isCopy() || CRI.TrueDefs.second->isCopy() || in splitBlockOnBinaryCROp()
620 CRI.TrueDefs.first->isPHI() || CRI.TrueDefs.second->isPHI()) { in splitBlockOnBinaryCROp()
628 if (CRI.MI->getOpcode() != PPC::CROR && in splitBlockOnBinaryCROp()
629 CRI.MI->getOpcode() != PPC::CRAND && in splitBlockOnBinaryCROp()
630 CRI.MI->getOpcode() != PPC::CRNOR && in splitBlockOnBinaryCROp()
631 CRI.MI->getOpcode() != PPC::CRNAND && in splitBlockOnBinaryCROp()
632 CRI.MI->getOpcode() != PPC::CRORC && in splitBlockOnBinaryCROp()
633 CRI.MI->getOpcode() != PPC::CRANDC) { in splitBlockOnBinaryCROp()
638 LLVM_DEBUG(dbgs() << "Splitting the following CR op:\n"; CRI.dump()); in splitBlockOnBinaryCROp()
639 MachineBasicBlock::iterator Def1It = CRI.TrueDefs.first; in splitBlockOnBinaryCROp()
640 MachineBasicBlock::iterator Def2It = CRI.TrueDefs.second; in splitBlockOnBinaryCROp()
644 for (auto E = CRI.MI->getParent()->end(); Def2It != E; ++Def2It) { in splitBlockOnBinaryCROp()
653 LLVM_DEBUG(CRI.MI->getParent()->dump()); in splitBlockOnBinaryCROp()
658 MRI->use_nodbg_begin(CRI.MI->getOperand(0).getReg())->getParent(); in splitBlockOnBinaryCROp()
667 UsingDef1 ? CRI.TrueDefs.first : CRI.TrueDefs.second; in splitBlockOnBinaryCROp()
669 UsingDef1 ? CRI.CopyDefs.first : CRI.CopyDefs.second; in splitBlockOnBinaryCROp()
678 MBB->splice(FirstTerminator, MBB, CRI.MI); in splitBlockOnBinaryCROp()
680 unsigned Opc = CRI.MI->getOpcode(); in splitBlockOnBinaryCROp()
686 UsingDef1 ? CRI.CopyDefs.second : CRI.CopyDefs.first; in splitBlockOnBinaryCROp()
693 InvertOrigBranch, TargetIsFallThrough, MBPI, CRI.MI, in splitBlockOnBinaryCROp()
694 UsingDef1 ? CRI.CopyDefs.first : CRI.CopyDefs.second }; in splitBlockOnBinaryCROp()
700 CRI.TrueDefs.first && isCRLogical(*CRI.TrueDefs.first); in splitBlockOnBinaryCROp()
702 CRI.TrueDefs.second && isCRLogical(*CRI.TrueDefs.second); in splitBlockOnBinaryCROp()
704 AllCRLogicalOps.push_back(createCRLogicalOpInfo(*CRI.TrueDefs.first)); in splitBlockOnBinaryCROp()
706 AllCRLogicalOps.push_back(createCRLogicalOpInfo(*CRI.TrueDefs.second)); in splitBlockOnBinaryCROp()