Lines Matching refs:CRI

389   bool splitBlockOnBinaryCROp(CRLogicalOpInfo &CRI);
587 CRLogicalOpInfo CRI = AllCRLogicalOps[Idx]; in handleCROp() local
588 if (CRI.IsBinary && CRI.ContainedInBlock && CRI.SingleUse && CRI.FeedsBR && in handleCROp()
589 CRI.DefsSingleUse) { in handleCROp()
590 Changed = splitBlockOnBinaryCROp(CRI); in handleCROp()
614 bool PPCReduceCRLogicals::splitBlockOnBinaryCROp(CRLogicalOpInfo &CRI) { in splitBlockOnBinaryCROp() argument
615 if (CRI.CopyDefs.first == CRI.CopyDefs.second) { in splitBlockOnBinaryCROp()
620 if (CRI.TrueDefs.first->isCopy() || CRI.TrueDefs.second->isCopy() || in splitBlockOnBinaryCROp()
621 CRI.TrueDefs.first->isPHI() || CRI.TrueDefs.second->isPHI()) { in splitBlockOnBinaryCROp()
629 if (CRI.MI->getOpcode() != PPC::CROR && in splitBlockOnBinaryCROp()
630 CRI.MI->getOpcode() != PPC::CRAND && in splitBlockOnBinaryCROp()
631 CRI.MI->getOpcode() != PPC::CRNOR && in splitBlockOnBinaryCROp()
632 CRI.MI->getOpcode() != PPC::CRNAND && in splitBlockOnBinaryCROp()
633 CRI.MI->getOpcode() != PPC::CRORC && in splitBlockOnBinaryCROp()
634 CRI.MI->getOpcode() != PPC::CRANDC) { in splitBlockOnBinaryCROp()
639 LLVM_DEBUG(dbgs() << "Splitting the following CR op:\n"; CRI.dump()); in splitBlockOnBinaryCROp()
640 MachineBasicBlock::iterator Def1It = CRI.TrueDefs.first; in splitBlockOnBinaryCROp()
641 MachineBasicBlock::iterator Def2It = CRI.TrueDefs.second; in splitBlockOnBinaryCROp()
645 for (auto E = CRI.MI->getParent()->end(); Def2It != E; ++Def2It) { in splitBlockOnBinaryCROp()
654 LLVM_DEBUG(CRI.MI->getParent()->dump()); in splitBlockOnBinaryCROp()
659 MRI->use_nodbg_begin(CRI.MI->getOperand(0).getReg())->getParent(); in splitBlockOnBinaryCROp()
668 UsingDef1 ? CRI.TrueDefs.first : CRI.TrueDefs.second; in splitBlockOnBinaryCROp()
670 UsingDef1 ? CRI.CopyDefs.first : CRI.CopyDefs.second; in splitBlockOnBinaryCROp()
679 MBB->splice(FirstTerminator, MBB, CRI.MI); in splitBlockOnBinaryCROp()
681 unsigned Opc = CRI.MI->getOpcode(); in splitBlockOnBinaryCROp()
687 UsingDef1 ? CRI.CopyDefs.second : CRI.CopyDefs.first; in splitBlockOnBinaryCROp()
694 InvertOrigBranch, TargetIsFallThrough, MBPI, CRI.MI, in splitBlockOnBinaryCROp()
695 UsingDef1 ? CRI.CopyDefs.first : CRI.CopyDefs.second }; in splitBlockOnBinaryCROp()
701 CRI.TrueDefs.first && isCRLogical(*CRI.TrueDefs.first); in splitBlockOnBinaryCROp()
703 CRI.TrueDefs.second && isCRLogical(*CRI.TrueDefs.second); in splitBlockOnBinaryCROp()
705 AllCRLogicalOps.push_back(createCRLogicalOpInfo(*CRI.TrueDefs.first)); in splitBlockOnBinaryCROp()
707 AllCRLogicalOps.push_back(createCRLogicalOpInfo(*CRI.TrueDefs.second)); in splitBlockOnBinaryCROp()