| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | IVDescriptors.cpp | 70 static Instruction *lookThroughAnd(PHINode *Phi, Type *&RT, in lookThroughAnd() argument 73 if (!Phi->hasOneUse()) in lookThroughAnd() 74 return Phi; in lookThroughAnd() 77 Instruction *I, *J = cast<Instruction>(Phi->use_begin()->getUser()); in lookThroughAnd() 84 RT = IntegerType::get(Phi->getContext(), Bits); in lookThroughAnd() 85 Visited.insert(Phi); in lookThroughAnd() 90 return Phi; in lookThroughAnd() 184 Instruction *Exit, PHINode *Phi) { in checkOrderedReduction() argument 204 if (Kind == RecurKind::FAdd && Op0 != Phi && Op1 != Phi) in checkOrderedReduction() 206 if (Kind == RecurKind::FMulAdd && Exit->getOperand(2) != Phi) in checkOrderedReduction() [all …]
|
| H A D | MemorySSAUpdater.cpp | 89 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); in getPreviousDefRecursive() local 92 auto *Result = tryRemoveTrivialPhi(Phi, PhiOps); in getPreviousDefRecursive() 94 if (Result == Phi && UniqueIncomingAccess && SingleAccess) { in getPreviousDefRecursive() 96 if (Phi) { in getPreviousDefRecursive() 97 assert(Phi->operands().empty() && "Expected empty Phi"); in getPreviousDefRecursive() 98 Phi->replaceAllUsesWith(SingleAccess); in getPreviousDefRecursive() 99 removeMemoryAccess(Phi); in getPreviousDefRecursive() 102 } else if (Result == Phi && !(UniqueIncomingAccess && SingleAccess)) { in getPreviousDefRecursive() 103 if (!Phi) in getPreviousDefRecursive() 104 Phi = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive() [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 unsigned &Depth = DepthMap[Phi]; in processPhi() 80 Stack.push_back(Phi); in processPhi() 84 if (DepthMap[Phi] == RootDepthNumber) { in processPhi()
|
| H A D | HashRecognize.cpp | 251 for (auto [Phi, Step] : PhiEvolutions) in computeEvolutions() 252 KnownPhis.emplace_or_assign(Phi, computeInstr(Step)); in computeEvolutions() 262 const PHINode *Phi = nullptr; member 273 Phi->print(OS); in print() 322 Phi = P; in matchSimpleRecurrence() 323 return llvm::matchSimpleRecurrence(Phi, BO, Start, Step); in matchSimpleRecurrence() 342 if (match(I, m_c_BinOp(m_Value(), m_Specific(Phi)))) in digRecurrence() 380 Phi = P; in matchConditionalRecurrence() 381 if (Phi->getNumIncomingValues() != 2) in matchConditionalRecurrence() 385 Value *FoundStep = Phi->getIncomingValue(Idx); in matchConditionalRecurrence() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | UnreachableBlockElim.cpp | 160 for (MachineInstr &Phi : succ->phis()) { in run() 161 for (unsigned i = Phi.getNumOperands() - 1; i >= 2; i -= 2) { in run() 162 if (Phi.getOperand(i).isMBB() && in run() 163 Phi.getOperand(i).getMBB() == &BB) { in run() 164 Phi.removeOperand(i); in run() 165 Phi.removeOperand(i - 1); in run() 190 for (MachineInstr &Phi : make_early_inc_range(BB.phis())) { in run() 191 for (unsigned i = Phi.getNumOperands() - 1; i >= 2; i -= 2) { in run() 192 if (!preds.count(Phi.getOperand(i).getMBB())) { in run() 193 Phi.removeOperand(i); in run() [all …]
|
| H A D | MachineSSAContext.cpp | 64 bool MachineSSAContext::isConstantOrUndefValuePhi(const MachineInstr &Phi) { in isConstantOrUndefValuePhi() argument 65 if (!Phi.isPHI()) in isConstantOrUndefValuePhi() 69 if (Phi.getOpcode() == TargetOpcode::PHI) in isConstantOrUndefValuePhi() 70 return Phi.isConstantValuePHI().isValid(); in isConstantOrUndefValuePhi() 73 const MachineRegisterInfo &MRI = Phi.getMF()->getRegInfo(); in isConstantOrUndefValuePhi() 74 Register This = Phi.getOperand(0).getReg(); in isConstantOrUndefValuePhi() 76 for (unsigned i = 1, e = Phi.getNumOperands(); i < e; i += 2) { in isConstantOrUndefValuePhi() 77 Register Incoming = Phi.getOperand(i).getReg(); in isConstantOrUndefValuePhi()
|
| H A D | WindowScheduler.cpp | 198 auto IsLoopCarried = [&](MachineInstr &Phi) { in initialize() argument 202 if (PrevUses.count(Phi.getOperand(0).getReg())) in initialize() 204 PrevDefs.insert(Phi.getOperand(0).getReg()); in initialize() 205 for (unsigned I = 1, E = Phi.getNumOperands(); I != E; I += 2) { in initialize() 206 if (PrevDefs.count(Phi.getOperand(I).getReg())) in initialize() 208 PrevUses.insert(Phi.getOperand(I).getReg()); in initialize() 377 for (auto &Phi : MBB->phis()) { in generateTripleMBB() local 379 if (Phi.readsRegister(DefRegPair.first, TRI)) in generateTripleMBB() 380 Phi.substituteRegister(DefRegPair.first, DefRegPair.second, 0, *TRI); in generateTripleMBB() 535 for (auto &Phi : MBB->phis()) { in schedulePhi() local [all …]
|
| H A D | ModuloSchedule.cpp | 40 static void getPhiRegs(MachineInstr &Phi, MachineBasicBlock *Loop, in getPhiRegs() argument 42 assert(Phi.isPHI() && "Expecting a Phi."); in getPhiRegs() 46 for (unsigned i = 1, e = Phi.getNumOperands(); i != e; i += 2) in getPhiRegs() 47 if (Phi.getOperand(i + 1).getMBB() != Loop) in getPhiRegs() 48 InitVal = Phi.getOperand(i).getReg(); in getPhiRegs() 50 LoopVal = Phi.getOperand(i).getReg(); in getPhiRegs() 56 static Register getInitPhiReg(MachineInstr &Phi, MachineBasicBlock *LoopBB) { in getInitPhiReg() argument 57 for (unsigned i = 1, e = Phi.getNumOperands(); i != e; i += 2) in getInitPhiReg() 58 if (Phi.getOperand(i + 1).getMBB() != LoopBB) in getInitPhiReg() 59 return Phi.getOperand(i).getReg(); in getInitPhiReg() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | ControlFlowUtils.cpp | 94 auto *Phi = PHINode::Create(Int32Ty, Branches.size(), "merged.bb.idx", in calcPredicateUsingInteger() local 115 Phi->addIncoming(IncomingId, BB); in calcPredicateUsingInteger() 122 auto *Cmp = ICmpInst::Create(Instruction::ICmp, ICmpInst::ICMP_EQ, Phi, in calcPredicateUsingInteger() 147 auto *Phi = in calcPredicateUsingBooleans() local 150 GuardPredicates[Out] = Phi; in calcPredicateUsingBooleans() 166 PHINode *Phi = cast<PHINode>(GuardPredicates[Out]); in calcPredicateUsingBooleans() local 168 Phi->addIncoming(BoolFalse, BB); in calcPredicateUsingBooleans() 172 Phi->addIncoming(BoolTrue, BB); in calcPredicateUsingBooleans() 176 Phi->addIncoming(Condition, BB); in calcPredicateUsingBooleans() 180 Phi->addIncoming(Inverted, BB); in calcPredicateUsingBooleans() [all …]
|
| H A D | LoopUnrollAndJam.cpp | 155 for (auto &Phi : Header->phis()) { in processHeaderPhiOperands() local 156 Value *V = Phi.getIncomingValueForBlock(Latch); in processHeaderPhiOperands() 442 for (PHINode &Phi : ForeBlocksFirst[It]->phis()) { in UnrollAndJamLoop() 443 Value *OldValue = Phi.getIncomingValueForBlock(AftBlocksLast[It]); in UnrollAndJamLoop() 449 assert(Phi.getNumOperands() == 2); in UnrollAndJamLoop() 450 Phi.setIncomingBlock(0, ForeBlocksLast[It - 1]); in UnrollAndJamLoop() 451 Phi.setIncomingValue(0, NewValue); in UnrollAndJamLoop() 452 Phi.removeIncomingValue(1); in UnrollAndJamLoop() 465 for (PHINode &Phi : BB->phis()) { in UnrollAndJamLoop() 466 for (unsigned b = 0; b < Phi.getNumIncomingValues(); ++b) { in UnrollAndJamLoop() [all …]
|
| H A D | CallPromotionUtils.cpp | 58 for (PHINode &Phi : Invoke->getNormalDest()->phis()) { in fixupPHINodeForNormalDest() 59 int Idx = Phi.getBasicBlockIndex(OrigBlock); in fixupPHINodeForNormalDest() 62 Phi.setIncomingBlock(Idx, MergeBlock); in fixupPHINodeForNormalDest() 90 for (PHINode &Phi : Invoke->getUnwindDest()->phis()) { in fixupPHINodeForUnwindDest() 91 int Idx = Phi.getBasicBlockIndex(OrigBlock); in fixupPHINodeForUnwindDest() 94 auto *V = Phi.getIncomingValue(Idx); in fixupPHINodeForUnwindDest() 95 Phi.setIncomingBlock(Idx, ThenBlock); in fixupPHINodeForUnwindDest() 96 Phi.addIncoming(V, ElseBlock); in fixupPHINodeForUnwindDest() 120 PHINode *Phi = Builder.CreatePHI(OrigInst->getType(), 0); in createRetPHINode() local 123 U->replaceUsesOfWith(OrigInst, Phi); in createRetPHINode() [all …]
|
| H A D | ScalarEvolutionExpander.cpp | 894 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed() argument 898 Type *PhiTy = Phi->getType(); in canBeCheaplyTransformed() 907 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed() 908 if (!Phi) in canBeCheaplyTransformed() 912 if (Phi == Requested) { in canBeCheaplyTransformed() 918 if (SE.getMinusSCEV(Requested->getStart(), Requested) == Phi) { in canBeCheaplyTransformed() 1609 PHINode *&Phi, PHINode *&OrigPhi, Loop *L, const DominatorTree *DT, in replaceCongruentIVInc() argument 1618 dyn_cast<Instruction>(Phi->getIncomingValueForBlock(LatchBlock)); in replaceCongruentIVInc() 1625 if (OrigPhi->getType() == Phi->getType()) { in replaceCongruentIVInc() 1626 bool Chained = ChainedPhis.contains(Phi); in replaceCongruentIVInc() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
| H A D | MVEGatherScatterLowering.cpp | 152 void pushOutAdd(PHINode *&Phi, Value *OffsSecondOperand, unsigned StartIndex); 154 void pushOutMulShl(unsigned Opc, PHINode *&Phi, Value *IncrementPerRound, 809 PHINode *Phi = dyn_cast<PHINode>(Offsets); in tryCreateIncrementingWBGatScat() local 810 if (Phi == nullptr || Phi->getNumIncomingValues() != 2 || in tryCreateIncrementingWBGatScat() 811 Phi->getParent() != L->getHeader() || !Phi->hasNUses(2)) in tryCreateIncrementingWBGatScat() 819 Phi->getIncomingBlock(0) == L->getLoopLatch() ? 0 : 1; in tryCreateIncrementingWBGatScat() 821 Offsets = Phi->getIncomingValue(IncrementIndex); in tryCreateIncrementingWBGatScat() 828 if (OffsetsIncoming != Phi) in tryCreateIncrementingWBGatScat() 833 Builder.SetInsertPoint(&Phi->getIncomingBlock(1 - IncrementIndex)->back()); in tryCreateIncrementingWBGatScat() 839 Instruction::Shl, Phi->getIncomingValue(1 - IncrementIndex), in tryCreateIncrementingWBGatScat() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
| H A D | RISCVCodeGenPrepare.cpp | 148 auto *Phi = dyn_cast<PHINode>(PhiV); in widenVPMerge() local 149 if (!Phi || !Phi->hasOneUse() || Phi->getNumIncomingValues() != 2 || in widenVPMerge() 150 !match(Phi->getIncomingValue(0), m_Zero()) || in widenVPMerge() 151 Phi->getIncomingValue(1) != &II) in widenVPMerge() 158 IRBuilder<> Builder(Phi); in widenVPMerge() 161 Phi->getIncomingBlock(0)); in widenVPMerge() 166 WidePhi->addIncoming(WideMerge, Phi->getIncomingBlock(1)); in widenVPMerge() 172 Phi->setIncomingValue(1, Phi->getIncomingValue(0)); in widenVPMerge()
|
| H A D | RISCVGatherScatterLowering.cpp | 199 if (auto *Phi = dyn_cast<PHINode>(Index)) { in matchStridedRecurrence() local 202 if (Phi->getParent() != L->getHeader()) in matchStridedRecurrence() 206 if (!matchSimpleRecurrence(Phi, Inc, Start, Step) || in matchStridedRecurrence() 209 assert(Phi->getNumIncomingValues() == 2 && "Expected 2 operand phi."); in matchStridedRecurrence() 210 unsigned IncrementingBlock = Phi->getIncomingValue(0) == Inc ? 0 : 1; in matchStridedRecurrence() 211 assert(Phi->getIncomingValue(IncrementingBlock) == Inc && in matchStridedRecurrence() 226 PHINode::Create(Start->getType(), 2, Phi->getName() + ".scalar", Phi->getIterator()); in matchStridedRecurrence() 229 BasePtr->addIncoming(Start, Phi->getIncomingBlock(1 - IncrementingBlock)); in matchStridedRecurrence() 230 BasePtr->addIncoming(Inc, Phi->getIncomingBlock(IncrementingBlock)); in matchStridedRecurrence() 233 MaybeDeadPHIs.push_back(Phi); in matchStridedRecurrence() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | MergeICmps.cpp | 405 BCECmpChain(const std::vector<BasicBlock *> &Blocks, PHINode &Phi, 473 BCECmpChain::BCECmpChain(const std::vector<BasicBlock *> &Blocks, PHINode &Phi, in BCECmpChain() argument 475 : Phi_(Phi) { in BCECmpChain() 487 Phi.getIncomingValueForBlock(Block), Block, Phi.getParent(), BaseId); in BCECmpChain() 610 PHINode &Phi, const TargetLibraryInfo &TLI, in mergeComparisons() argument 661 unsigned SizeTBits = TLI.getSizeTSize(*Phi.getModule()); in mergeComparisons() 665 const auto &DL = Phi.getDataLayout(); in mergeComparisons() 674 BasicBlock *const PhiBB = Phi.getParent(); in mergeComparisons() 679 Phi.addIncoming(IsEqual, BB); in mergeComparisons() 684 Phi.addIncoming(ConstantInt::getFalse(Context), BB); in mergeComparisons() [all …]
|
| H A D | DFAJumpThreading.cpp | 225 for (PHINode &Phi : EndBlock->phis()) { in unfold() 226 if (SIUse == &Phi) in unfold() 228 Phi.addIncoming(Phi.getIncomingValueForBlock(StartBlock), NewBlock); in unfold() 319 for (PHINode &Phi : EndBlock->phis()) { in unfold() 320 if (SIUse == &Phi) in unfold() 322 Phi.addIncoming(Phi.getIncomingValueForBlock(StartBlock), NewBlockT); in unfold() 323 Phi.addIncoming(Phi.getIncomingValueForBlock(StartBlock), NewBlockF); in unfold() 324 Phi.removeIncomingValue(StartBlock); in unfold() 470 if (auto *Phi = dyn_cast<PHINode>(Current)) { in isCandidate() local 471 for (BasicBlock *IncomingBB : Phi->blocks()) { in isCandidate() [all …]
|
| H A D | IndVarSimplify.cpp | 677 PHINode *Phi = dyn_cast<PHINode>(IncI->getOperand(0)); in getLoopPhiForCounter() local 678 if (Phi && Phi->getParent() == L->getHeader()) { in getLoopPhiForCounter() 680 return Phi; in getLoopPhiForCounter() 687 Phi = dyn_cast<PHINode>(IncI->getOperand(1)); in getLoopPhiForCounter() 688 if (Phi && Phi->getParent() == L->getHeader()) { in getLoopPhiForCounter() 690 return Phi; in getLoopPhiForCounter() 740 PHINode *Phi = dyn_cast<PHINode>(LHS); in needsLFTR() local 741 if (!Phi) in needsLFTR() 742 Phi = getLoopPhiForCounter(LHS, L); in needsLFTR() 744 if (!Phi) in needsLFTR() [all …]
|
| H A D | StructurizeCFG.cpp | 664 for (PHINode &Phi : To->phis()) { in delPhiValues() 666 while (Phi.getBasicBlockIndex(From) != -1) { in delPhiValues() 667 Value *Deleted = Phi.removeIncomingValue(From, false); in delPhiValues() 668 Map[&Phi].push_back(std::make_pair(From, Deleted)); in delPhiValues() 670 AffectedPhis.push_back(&Phi); in delPhiValues() 679 for (PHINode &Phi : To->phis()) { in addPhiValues() 680 Value *Poison = PoisonValue::get(Phi.getType()); in addPhiValues() 681 Phi.addIncoming(Poison, From); in addPhiValues() 821 for (const auto &[Phi, Incomings] : OldPhiIt->second) { in setPhiValues() 834 mergeIfCompatible(PhiClasses, Phi, OtherPhi); in setPhiValues() [all …]
|
| /freebsd/contrib/llvm-project/clang/lib/Analysis/ |
| H A D | ThreadSafetyTIL.cpp | 62 if (auto *Ph = dyn_cast<Phi>(E)) { in addPredecessor() 73 if (auto *Ph = dyn_cast<Phi>(E)) { in reservePredecessors() 89 if (const auto *Ph = dyn_cast<Phi>(E)) { in getCanonicalVal() 90 if (Ph->status() == Phi::PH_SingleVal) { in getCanonicalVal() 116 if (auto *Ph = dyn_cast<Phi>(E)) { in simplifyToCanonicalVal() 117 if (Ph->status() == Phi::PH_Incomplete) in simplifyToCanonicalVal() 120 if (Ph->status() == Phi::PH_SingleVal) { in simplifyToCanonicalVal() 132 void til::simplifyIncompleteArg(til::Phi *Ph) { in simplifyIncompleteArg() 133 assert(Ph && Ph->status() == Phi::PH_Incomplete); in simplifyIncompleteArg() 136 Ph->setStatus(Phi::PH_MultiVal); in simplifyIncompleteArg() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | SIAnnotateControlFlow.cpp | 75 bool isElse(PHINode *Phi); 79 bool eraseIfUnused(PHINode *Phi); 150 bool SIAnnotateControlFlow::isElse(PHINode *Phi) { in isElse() argument 151 BasicBlock *IDom = DT->getNode(Phi->getParent())->getIDom()->getBlock(); in isElse() 152 for (unsigned i = 0, e = Phi->getNumIncomingValues(); i != e; ++i) { in isElse() 153 if (Phi->getIncomingBlock(i) == IDom) { in isElse() 155 if (Phi->getIncomingValue(i) != BoolTrue) in isElse() 159 if (Phi->getIncomingValue(i) != BoolFalse) in isElse() 177 bool SIAnnotateControlFlow::eraseIfUnused(PHINode *Phi) { in eraseIfUnused() argument 178 bool Changed = RecursivelyDeleteDeadPHINode(Phi); in eraseIfUnused() [all …]
|
| H A D | AMDGPULateCodeGenPrepare.cpp | 304 if (PHINode *Phi = dyn_cast<PHINode>(II)) { in optimizeLiveType() local 305 PhiNodes.insert(Phi); in optimizeLiveType() 307 for (Value *V : Phi->incoming_values()) { in optimizeLiveType() 356 for (PHINode *Phi : PhiNodes) { in optimizeLiveType() 357 ValMap[Phi] = PHINode::Create(calculateConvertType(Phi->getType()), in optimizeLiveType() 358 Phi->getNumIncomingValues(), in optimizeLiveType() 359 Phi->getName() + ".tc", Phi->getIterator()); in optimizeLiveType() 363 for (PHINode *Phi : PhiNodes) { in optimizeLiveType() 364 PHINode *NewPhi = cast<PHINode>(ValMap[Phi]); in optimizeLiveType() 366 for (int I = 0, E = Phi->getNumIncomingValues(); I < E; I++) { in optimizeLiveType() [all …]
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
| H A D | LoopVectorizationLegality.cpp | 679 PHINode *Phi, const InductionDescriptor &ID, in addInductionPhi() argument 681 Inductions[Phi] = ID; in addInductionPhi() 691 Type *PhiTy = Phi->getType(); in addInductionPhi() 692 const DataLayout &DL = Phi->getDataLayout(); in addInductionPhi() 716 PrimaryInduction = Phi; in addInductionPhi() 726 AllowedExit.insert(Phi); in addInductionPhi() 727 AllowedExit.insert(Phi->getIncomingValueForBlock(TheLoop->getLoopLatch())); in addInductionPhi() 737 auto IsSupportedPhi = [&](PHINode &Phi) -> bool { in setupOuterLoopInductions() argument 739 if (InductionDescriptor::isInductionPHI(&Phi, TheLoop, PSE, ID) && in setupOuterLoopInductions() 741 addInductionPhi(&Phi, ID, AllowedExit); in setupOuterLoopInductions() [all …]
|
| H A D | VPlanConstruction.cpp | 91 for (auto *Phi : PhisToFix) { in fixHeaderPhis() local 92 assert(IRDef2VPValue.count(Phi) && "Missing VPInstruction for PHINode."); in fixHeaderPhis() 93 VPValue *VPVal = IRDef2VPValue[Phi]; in fixHeaderPhis() 99 assert(isHeaderBB(Phi->getParent(), LI->getLoopFor(Phi->getParent())) && in fixHeaderPhis() 101 assert(Phi->getNumOperands() == 2 && in fixHeaderPhis() 103 for (BasicBlock *Pred : predecessors(Phi->getParent())) in fixHeaderPhis() 105 getOrCreateVPOperand(Phi->getIncomingValueForBlock(Pred))); in fixHeaderPhis() 206 if (auto *Phi = dyn_cast<PHINode>(Inst)) { in createVPInstructionsForVPBB() local 210 NewR = new VPWidenPHIRecipe(Phi, nullptr, Phi->getDebugLoc(), "vec.phi"); in createVPInstructionsForVPBB() 212 if (isHeaderBB(Phi->getParent(), LI->getLoopFor(Phi->getParent()))) { in createVPInstructionsForVPBB() [all …]
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | IVDescriptors.h | 144 isRecurrenceInstr(Loop *L, PHINode *Phi, Instruction *I, RecurKind Kind, 196 AddReductionVar(PHINode *Phi, RecurKind Kind, Loop *TheLoop, 207 isReductionPHI(PHINode *Phi, Loop *TheLoop, RecurrenceDescriptor &RedDes, 220 LLVM_ABI static bool isFixedOrderRecurrence(PHINode *Phi, Loop *TheLoop, 336 LLVM_ABI SmallVector<Instruction *, 4> getReductionOpChain(PHINode *Phi, 408 isInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE, 415 LLVM_ABI static bool isFPInductionPHI(PHINode *Phi, const Loop *L, 425 LLVM_ABI static bool isInductionPHI(PHINode *Phi, const Loop *L,
|