Home
last modified time | relevance | path

Searched refs:Phi (Results 1 – 25 of 106) sorted by relevance

12345

/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DIVDescriptors.cpp71 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 DMemorySSAUpdater.cpp96 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 DPhiValues.cpp49 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 DMemorySSA.cpp775 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 DUnreachableBlockElim.cpp123 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 DModuloSchedule.cpp38 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 DMVEGatherScatterLowering.cpp810 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 DVPlanHCFGBuilder.cpp124 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 DLoopVectorizationLegality.cpp684 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 DMergeICmps.cpp475 : 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 DDFAJumpThreading.cpp256 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 DIndVarSimplify.cpp671 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 DStructurizeCFG.cpp630 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 DPartiallyInlineLibCalls.cpp74 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 DSIAnnotateControlFlow.cpp73 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 DThreadSafetyTIL.cpp63 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 DCallPromotionUtils.cpp53 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 DLoopUnrollAndJam.cpp156 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 DScalarEvolutionExpander.cpp814 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 DLoopUtils.cpp1305 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 DIVDescriptors.h126 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 DMemorySSAUpdater.h256 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 DRISCVGatherScatterLowering.cpp201 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 DLoopVectorizationLegality.h311 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 DHexagonHardwareLoops.cpp432 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 …]

12345