/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | IVDescriptors.cpp | 71 if (!Phi->hasOneUse()) in lookThroughAnd() 72 return Phi; in lookThroughAnd() 83 Visited.insert(Phi); in lookThroughAnd() 88 return Phi; in lookThroughAnd() 202 if (Kind == RecurKind::FAdd && Op0 != Phi && Op1 != Phi) in checkOrderedReduction() 258 Instruction *Start = Phi; in AddReductionVar() 361 if (Cur != Phi && IsAPhi && Cur->getParent() == Phi->getParent()) in AddReductionVar() 494 if (UI == Phi) in AddReductionVar() 543 if (Start != Phi) { in AddReductionVar() 1195 if (Inc0 == Phi) in getReductionOpChain() [all …]
|
H A D | MemorySSAUpdater.cpp | 96 if (Phi) { in getPreviousDefRecursive() 103 if (!Phi) in getPreviousDefRecursive() 111 if (!std::equal(Phi->op_begin(), Phi->op_end(), PhiOps.begin())) { in getPreviousDefRecursive() 122 Result = Phi; in getPreviousDefRecursive() 186 if (!Phi) in recursePhi() 212 return Phi; in tryRemoveTrivialPhi() 222 return Phi; in tryRemoveTrivialPhi() 228 if (Phi) { in tryRemoveTrivialPhi() 449 if (Phi) in insertDef() 456 if (Phi) in insertDef() [all …]
|
H A D | PhiValues.cpp | 49 void PhiValues::processPhi(const PHINode *Phi, in processPhi() argument 52 assert(DepthMap.lookup(Phi) == 0); in processPhi() 55 DepthMap[Phi] = RootDepthNumber; in processPhi() 58 TrackedValues.insert(PhiValuesCallbackVH(const_cast<PHINode *>(Phi), this)); in processPhi() 59 for (Value *PhiOp : Phi->incoming_values()) { in processPhi() 71 DepthMap[Phi] = std::min(DepthMap[Phi], OpDepthNumber); in processPhi() 78 Stack.push_back(Phi); in processPhi() 82 if (DepthMap[Phi] == RootDepthNumber) { in processPhi()
|
H A D | MemorySSA.cpp | 775 addSearches(Phi, PausedSearches, 0); in tryOptimizePhi() 790 MemoryPhi *Current = Phi; in tryOptimizePhi() 1112 Phi->addIncoming(IncomingVal, BB); in renameSuccessorPhis() 1678 ValueToMemoryAccess[BB] = Phi; in createMemoryPhi() 1679 return Phi; in createMemoryPhi() 1967 MemoryPhi *Phi = getMemoryAccess(&B); in verifyOrderingDominationAndDefUses() local 1968 if (Phi) { in verifyOrderingDominationAndDefUses() 1970 ActualAccesses.push_back(Phi); in verifyOrderingDominationAndDefUses() 1971 ActualDefs.push_back(Phi); in verifyOrderingDominationAndDefUses() 1973 for (const Use &U : Phi->uses()) { in verifyOrderingDominationAndDefUses() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | UnreachableBlockElim.cpp | 123 for (MachineInstr &Phi : succ->phis()) { in runOnMachineFunction() 125 if (Phi.getOperand(i).isMBB() && in runOnMachineFunction() 126 Phi.getOperand(i).getMBB() == &BB) { in runOnMachineFunction() 127 Phi.removeOperand(i); in runOnMachineFunction() 128 Phi.removeOperand(i - 1); in runOnMachineFunction() 155 if (!preds.count(Phi.getOperand(i).getMBB())) { in runOnMachineFunction() 156 Phi.removeOperand(i); in runOnMachineFunction() 157 Phi.removeOperand(i - 1); in runOnMachineFunction() 162 if (Phi.getNumOperands() == 3) { in runOnMachineFunction() 163 const MachineOperand &Input = Phi.getOperand(1); in runOnMachineFunction() [all …]
|
H A D | ModuloSchedule.cpp | 38 assert(Phi.isPHI() && "Expecting a Phi."); in getPhiRegs() 43 if (Phi.getOperand(i + 1).getMBB() != Loop) in getPhiRegs() 44 InitVal = Phi.getOperand(i).getReg(); in getPhiRegs() 46 LoopVal = Phi.getOperand(i).getReg(); in getPhiRegs() 55 return Phi.getOperand(i).getReg(); in getInitPhiReg() 63 return Phi.getOperand(i).getReg(); in getLoopPhiReg() 1198 if (!Phi.isPHI()) in isLoopCarried() 1200 int DefCycle = Schedule.getCycle(&Phi); in isLoopCarried() 1201 int DefStage = Schedule.getStage(&Phi); in isLoopCarried() 1205 getPhiRegs(Phi, Phi.getParent(), InitVal, LoopVal); in isLoopCarried() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
H A D | MVEGatherScatterLowering.cpp | 810 if (Phi == nullptr || Phi->getNumIncomingValues() != 2 || in tryCreateIncrementingWBGatScat() 811 Phi->getParent() != L->getHeader() || Phi->getNumUses() != 2) in tryCreateIncrementingWBGatScat() 828 if (OffsetsIncoming != Phi) in tryCreateIncrementingWBGatScat() 898 Phi->addIncoming(NewIndex, Phi->getIncomingBlock(StartIndex)); in pushOutAdd() 899 Phi->addIncoming(Phi->getIncomingValue(IncrementIndex), in pushOutAdd() 901 Phi->removeIncomingValue(1); in pushOutAdd() 932 Phi->addIncoming(StartIndex, in pushOutMulShl() 934 Phi->addIncoming(NewIncrement, Phi->getIncomingBlock(LoopIncrement)); in pushOutMulShl() 989 PHINode *Phi; in optimiseOffsets() local 1060 NewPhi = Phi; in optimiseOffsets() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VPlanHCFGBuilder.cpp | 124 for (auto *Phi : PhisToFix) { in fixPhiNodes() local 126 VPValue *VPVal = IRDef2VPValue[Phi]; in fixPhiNodes() 133 Loop *L = LI->getLoopFor(Phi->getParent()); in fixPhiNodes() 134 if (isHeaderBB(Phi->getParent(), L)) { in fixPhiNodes() 137 assert(Phi->getNumOperands() == 2); in fixPhiNodes() 140 getOrCreateVPOperand(Phi->getIncomingValueForBlock(LoopPred)), in fixPhiNodes() 149 for (unsigned I = 0; I != Phi->getNumOperands(); ++I) in fixPhiNodes() 151 BB2VPBB[Phi->getIncomingBlock(I)]); in fixPhiNodes() 308 if (auto *Phi = dyn_cast<PHINode>(Inst)) { in createVPInstructionsForVPBB() local 312 NewVPV = new VPWidenPHIRecipe(Phi); in createVPInstructionsForVPBB() [all …]
|
H A D | LoopVectorizationLegality.cpp | 684 Inductions[Phi] = ID; in addInductionPhi() 694 Type *PhiTy = Phi->getType(); in addInductionPhi() 716 PrimaryInduction = Phi; in addInductionPhi() 726 AllowedExit.insert(Phi); in addInductionPhi() 796 Type *PhiTy = Phi->getType(); in canVectorizeInstrs() 832 Reductions[Phi] = RedDes; in canVectorizeInstrs() 871 AllowedExit.insert(Phi); in canVectorizeInstrs() 1210 if (!isInductionPhi(Phi)) in getIntOrFpInductionDescriptor() 1221 if (!isInductionPhi(Phi)) in getPointerInductionDescriptor() 1240 const PHINode *Phi) const { in isFixedOrderRecurrence() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | MergeICmps.cpp | 475 : Phi_(Phi) { in BCECmpChain() 483 Phi.getIncomingValueForBlock(Block), Block, Phi.getParent(), BaseId); in BCECmpChain() 670 BasicBlock *const PhiBB = Phi.getParent(); in mergeComparisons() 675 Phi.addIncoming(IsEqual, BB); in mergeComparisons() 779 if (Phi.getNumIncomingValues() <= 1) { in processPhi() 807 if (!isa<ICmpInst>(Phi.getIncomingValue(I)) || in processPhi() 809 Phi.getIncomingBlock(I)) { in processPhi() 820 LastBlock = Phi.getIncomingBlock(I); in processPhi() 833 getOrderedBlocks(Phi, LastBlock, Phi.getNumIncomingValues()); in processPhi() 835 BCECmpChain CmpChain(Blocks, Phi, AA); in processPhi() [all …]
|
H A D | DFAJumpThreading.cpp | 256 for (PHINode &Phi : EndBlock->phis()) { in unfold() 257 if (&Phi != SIUse) { in unfold() 259 Phi.addIncoming(OrigValue, TrueBlock); in unfold() 260 Phi.addIncoming(OrigValue, FalseBlock); in unfold() 294 if (Phi != SIUse) in unfold() 295 Phi->addIncoming(Phi->getIncomingValueForBlock(StartBlock), NewBlock); in unfold() 420 if (auto *Phi = dyn_cast<PHINode>(Current)) { in isCandidate() local 1076 Phi->addIncoming(Incoming, ClonedBB); in updateSuccessorPhis() 1083 Phi->addIncoming(Incoming, ClonedBB); in updateSuccessorPhis() 1180 PhiToRemove.push_back(Phi); in cleanPhiNodes() [all …]
|
H A D | IndVarSimplify.cpp | 671 if (Phi && Phi->getParent() == L->getHeader()) { in getLoopPhiForCounter() 673 return Phi; in getLoopPhiForCounter() 681 if (Phi && Phi->getParent() == L->getHeader()) { in getLoopPhiForCounter() 683 return Phi; in getLoopPhiForCounter() 734 if (!Phi) in needsLFTR() 737 if (!Phi) in needsLFTR() 800 if (!SE->isSCEVable(Phi->getType())) in isLoopCounter() 839 PHINode *Phi = cast<PHINode>(I); in FindLoopCounter() local 840 if (!isLoopCounter(Phi, L, SE)) in FindLoopCounter() 854 if (!hasConcreteDef(Phi)) { in FindLoopCounter() [all …]
|
H A D | StructurizeCFG.cpp | 630 for (PHINode &Phi : To->phis()) { in delPhiValues() 632 while (Phi.getBasicBlockIndex(From) != -1) { in delPhiValues() 636 AffectedPhis.push_back(&Phi); in delPhiValues() 645 for (PHINode &Phi : To->phis()) { in addPhiValues() 646 Value *Undef = UndefValue::get(Phi.getType()); in addPhiValues() 647 Phi.addIncoming(Undef, From); in addPhiValues() 728 PHINode *Phi = PI.first; in setPhiValues() local 730 Updater.Initialize(Phi->getType(), ""); in setPhiValues() 761 AffectedPhis.push_back(Phi); in setPhiValues() 783 Phi->replaceAllUsesWith(NewValue); in simplifyAffectedPhis() [all …]
|
H A D | PartiallyInlineLibCalls.cpp | 74 PHINode *Phi = Builder.CreatePHI(Ty, 2); in optimizeSQRT() local 75 Call->replaceAllUsesWith(Phi); in optimizeSQRT() 97 Phi->addIncoming(Call, &CurrBB); in optimizeSQRT() 98 Phi->addIncoming(LibCall, LibCallBB); in optimizeSQRT()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | SIAnnotateControlFlow.cpp | 73 bool isElse(PHINode *Phi); 77 bool eraseIfUnused(PHINode *Phi); 171 bool SIAnnotateControlFlow::isElse(PHINode *Phi) { in isElse() argument 174 if (Phi->getIncomingBlock(i) == IDom) { in isElse() 176 if (Phi->getIncomingValue(i) != BoolTrue) in isElse() 180 if (Phi->getIncomingValue(i) != BoolFalse) in isElse() 198 bool SIAnnotateControlFlow::eraseIfUnused(PHINode *Phi) { in eraseIfUnused() argument 199 bool Changed = RecursivelyDeleteDeadPHINode(Phi); in eraseIfUnused() 380 PHINode *Phi = dyn_cast<PHINode>(Term->getCondition()); in runOnFunction() local 381 if (Phi && Phi->getParent() == BB && isElse(Phi) && !hasKill(BB)) { in runOnFunction() [all …]
|
/freebsd/contrib/llvm-project/clang/lib/Analysis/ |
H A D | ThreadSafetyTIL.cpp | 63 if (auto *Ph = dyn_cast<Phi>(E)) { in addPredecessor() 74 if (auto *Ph = dyn_cast<Phi>(E)) { in reservePredecessors() 90 if (const auto *Ph = dyn_cast<Phi>(E)) { in getCanonicalVal() 91 if (Ph->status() == Phi::PH_SingleVal) { in getCanonicalVal() 117 if (auto *Ph = dyn_cast<Phi>(E)) { in simplifyToCanonicalVal() 118 if (Ph->status() == Phi::PH_Incomplete) in simplifyToCanonicalVal() 121 if (Ph->status() == Phi::PH_SingleVal) { in simplifyToCanonicalVal() 133 void til::simplifyIncompleteArg(til::Phi *Ph) { in simplifyIncompleteArg() 134 assert(Ph && Ph->status() == Phi::PH_Incomplete); in simplifyIncompleteArg() 137 Ph->setStatus(Phi::PH_MultiVal); in simplifyIncompleteArg() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | CallPromotionUtils.cpp | 53 for (PHINode &Phi : Invoke->getNormalDest()->phis()) { in fixupPHINodeForNormalDest() 54 int Idx = Phi.getBasicBlockIndex(OrigBlock); in fixupPHINodeForNormalDest() 57 Phi.setIncomingBlock(Idx, MergeBlock); in fixupPHINodeForNormalDest() 85 for (PHINode &Phi : Invoke->getUnwindDest()->phis()) { in fixupPHINodeForUnwindDest() 86 int Idx = Phi.getBasicBlockIndex(OrigBlock); in fixupPHINodeForUnwindDest() 89 auto *V = Phi.getIncomingValue(Idx); in fixupPHINodeForUnwindDest() 90 Phi.setIncomingBlock(Idx, ThenBlock); in fixupPHINodeForUnwindDest() 91 Phi.addIncoming(V, ElseBlock); in fixupPHINodeForUnwindDest() 118 U->replaceUsesOfWith(OrigInst, Phi); in createRetPHINode() 119 Phi->addIncoming(OrigInst, OrigInst->getParent()); in createRetPHINode() [all …]
|
H A D | LoopUnrollAndJam.cpp | 156 for (auto &Phi : Header->phis()) { in processHeaderPhiOperands() local 446 assert(Phi.getNumOperands() == 2); in UnrollAndJamLoop() 448 Phi.setIncomingValue(0, NewValue); in UnrollAndJamLoop() 449 Phi.removeIncomingValue(1); in UnrollAndJamLoop() 462 for (PHINode &Phi : BB->phis()) { in UnrollAndJamLoop() 464 if (Phi.getIncomingBlock(b) == OldBB) { in UnrollAndJamLoop() 467 Phi.setIncomingValue(b, LastValue); in UnrollAndJamLoop() 468 Phi.setIncomingBlock(b, NewBB); in UnrollAndJamLoop() 478 Phi->moveBefore(insertPoint); in UnrollAndJamLoop() 493 Phi->replaceAllUsesWith(Phi->getIncomingValueForBlock(Preheader)); in UnrollAndJamLoop() [all …]
|
H A D | ScalarEvolutionExpander.cpp | 814 Type *PhiTy = Phi->getType(); in canBeCheaplyTransformed() 823 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed() 824 if (!Phi) in canBeCheaplyTransformed() 828 if (Phi == Requested) { in canBeCheaplyTransformed() 1547 for (PHINode *Phi : Phis) { in replaceCongruentIVs() 1564 SE.forgetValue(Phi); in replaceCongruentIVs() 1565 Phi->replaceAllUsesWith(V); in replaceCongruentIVs() 1566 DeadInsts.emplace_back(Phi); in replaceCongruentIVs() 1579 OrigPhiRef = Phi; in replaceCongruentIVs() 1669 Phi->replaceAllUsesWith(NewIV); in replaceCongruentIVs() [all …]
|
H A D | LoopUtils.cpp | 1305 for (const RewritePhi &Phi : RewritePhiSet) { in canLoopBeDeleted() local 1306 unsigned i = Phi.Ith; in canLoopBeDeleted() 1307 if (Phi.PN == P && (Phi.PN)->getIncomingValue(i) == Incoming) { in canLoopBeDeleted() 1335 if (!Phi) in checkIsIndPhi() 1339 if (Phi->getParent() != L->getHeader()) in checkIsIndPhi() 1425 if (Phi != PN && !checkIsIndPhi(Phi, L, SE, ID)) in rewriteLoopExitValues() 1498 for (const RewritePhi &Phi : RewritePhiSet) { in rewriteLoopExitValues() local 1499 PHINode *PN = Phi.PN; in rewriteLoopExitValues() 1505 !LoopCanBeDel && Phi.HighCost) in rewriteLoopExitValues() 1509 Phi.ExpansionSCEV, Phi.PN->getType(), Phi.ExpansionPoint); in rewriteLoopExitValues() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | IVDescriptors.h | 126 static InstDesc isRecurrenceInstr(Loop *L, PHINode *Phi, Instruction *I, 170 AddReductionVar(PHINode *Phi, RecurKind Kind, Loop *TheLoop, 181 isReductionPHI(PHINode *Phi, Loop *TheLoop, RecurrenceDescriptor &RedDes, 194 static bool isFixedOrderRecurrence(PHINode *Phi, Loop *TheLoop, 264 SmallVector<Instruction *, 4> getReductionOpChain(PHINode *Phi, 336 isInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE, 343 static bool isFPInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE, 352 static bool isInductionPHI(PHINode *Phi, const Loop *L,
|
H A D | MemorySSAUpdater.h | 256 MemoryAccess *recursePhi(MemoryAccess *Phi); 257 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi); 259 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi, RangeType &Operands);
|
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVGatherScatterLowering.cpp | 201 if (auto *Phi = dyn_cast<PHINode>(Index)) { in matchStridedRecurrence() local 204 if (Phi->getParent() != L->getHeader()) in matchStridedRecurrence() 208 if (!matchSimpleRecurrence(Phi, Inc, Start, Step) || in matchStridedRecurrence() 211 assert(Phi->getNumIncomingValues() == 2 && "Expected 2 operand phi."); in matchStridedRecurrence() 212 unsigned IncrementingBlock = Phi->getIncomingValue(0) == Inc ? 0 : 1; in matchStridedRecurrence() 213 assert(Phi->getIncomingValue(IncrementingBlock) == Inc && in matchStridedRecurrence() 232 PHINode::Create(Start->getType(), 2, Phi->getName() + ".scalar", Phi); in matchStridedRecurrence() 236 BasePtr->addIncoming(Inc, Phi->getIncomingBlock(IncrementingBlock)); in matchStridedRecurrence() 239 MaybeDeadPHIs.push_back(Phi); in matchStridedRecurrence() 564 if (auto *Phi = dyn_cast_or_null<PHINode>(MaybeDeadPHIs.pop_back_val())) in runOnFunction() local [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Vectorize/ |
H A D | LoopVectorizationLegality.h | 311 const InductionDescriptor *getIntOrFpInductionDescriptor(PHINode *Phi) const; 315 const InductionDescriptor *getPointerInductionDescriptor(PHINode *Phi) const; 331 bool isFixedOrderRecurrence(const PHINode *Phi) const; 460 void addInductionPhi(PHINode *Phi, const InductionDescriptor &ID,
|
/freebsd/contrib/llvm-project/llvm/lib/Target/Hexagon/ |
H A D | HexagonHardwareLoops.cpp | 432 MachineInstr *Phi = &*I; in findInductionRegister() local 437 for (unsigned i = 1, n = Phi->getNumOperands(); i < n; i += 2) { in findInductionRegister() 438 if (Phi->getOperand(i+1).getMBB() != Latch) in findInductionRegister() 441 Register PhiOpReg = Phi->getOperand(i).getReg(); in findInductionRegister() 1385 assert(Phi->isPHI() && "Expecting a Phi."); in phiMayWrapOrUnderflow() 1388 for (int i = 1, n = Phi->getNumOperands(); i < n; i += 2) in phiMayWrapOrUnderflow() 1389 if (isLoopFeeder(L, MBB, Phi, &(Phi->getOperand(i)), LoopFeederPhi)) in phiMayWrapOrUnderflow() 1390 if (loopCountMayWrapOrUnderFlow(&(Phi->getOperand(i)), EndVal, in phiMayWrapOrUnderflow() 1616 MachineInstr *Phi = &*I; in fixupInductionVariable() local 1620 if (Phi->getOperand(i+1).getMBB() != Latch) in fixupInductionVariable() [all …]
|