Lines Matching defs:Phi
310 // - For the final block, as an incoming value for the Phi.
405 BCECmpChain(const std::vector<BasicBlock *> &Blocks, PHINode &Phi,
473 BCECmpChain::BCECmpChain(const std::vector<BasicBlock *> &Blocks, PHINode &Phi,
475 : Phi_(Phi) {
483 Phi.getIncomingValueForBlock(Block), Block, Phi.getParent(), BaseId);
606 PHINode &Phi, const TargetLibraryInfo &TLI,
657 unsigned SizeTBits = TLI.getSizeTSize(*Phi.getModule());
661 const auto &DL = Phi.getDataLayout();
670 BasicBlock *const PhiBB = Phi.getParent();
675 Phi.addIncoming(IsEqual, BB);
680 Phi.addIncoming(ConstantInt::getFalse(Context), BB);
741 std::vector<BasicBlock *> getOrderedBlocks(PHINode &Phi,
764 if (Phi.getBasicBlockIndex(SinglePredecessor) < 0) {
776 bool processPhi(PHINode &Phi, const TargetLibraryInfo &TLI, AliasAnalysis &AA,
779 if (Phi.getNumIncomingValues() <= 1) {
791 // It's the only block that contributes a non-constant value to the Phi.
800 for (unsigned I = 0; I < Phi.getNumIncomingValues(); ++I) {
801 if (isa<ConstantInt>(Phi.getIncomingValue(I))) continue;
807 if (!isa<ICmpInst>(Phi.getIncomingValue(I)) ||
808 cast<ICmpInst>(Phi.getIncomingValue(I))->getParent() !=
809 Phi.getIncomingBlock(I)) {
820 LastBlock = Phi.getIncomingBlock(I);
827 if (LastBlock->getSingleSuccessor() != Phi.getParent()) {
833 getOrderedBlocks(Phi, LastBlock, Phi.getNumIncomingValues());
835 BCECmpChain CmpChain(Blocks, Phi, AA);
865 // A Phi operation is always first in a basic block.
866 if (auto *const Phi = dyn_cast<PHINode>(&*BB.begin()))
867 MadeChange |= processPhi(*Phi, TLI, AA, DTU);