Home
last modified time | relevance | path

Searched refs:PHI (Results 1 – 25 of 204) sorted by relevance

123456789

/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineSSAUpdater.cpp196 InsertNewDef(TargetOpcode::PHI, BB, Loc, RegAttrs, MRI, TII); in GetValueInMiddleOfBlock()
276 MachineInstr *PHI; member in llvm::SSAUpdaterTraits::PHI_iterator
281 : PHI(P), idx(1) {} in PHI_iterator()
283 : PHI(P), idx(PHI->getNumOperands()) {} in PHI_iterator()
289 Register getIncomingValue() { return PHI->getOperand(idx).getReg(); } in getIncomingValue()
292 return PHI->getOperand(idx+1).getMBB(); in getIncomingBlock()
296 static inline PHI_iterator PHI_begin(PhiT *PHI) { return PHI_iterator(PHI); } in PHI_begin() argument
298 static inline PHI_iterator PHI_end(PhiT *PHI) { in PHI_end() argument
299 return PHI_iterator(PHI, true); in PHI_end()
325 MachineInstr *PHI = in CreateEmptyPHI() local
[all …]
H A DEarlyIfConversion.cpp115 MachineInstr *PHI; member
120 PHIInfo(MachineInstr *phi) : PHI(phi) {} in PHIInfo()
526 for (unsigned i = 1; i != PI.PHI->getNumOperands(); i += 2) { in canConvertIf()
527 if (PI.PHI->getOperand(i+1).getMBB() == TPred) in canConvertIf()
528 PI.TReg = PI.PHI->getOperand(i).getReg(); in canConvertIf()
529 if (PI.PHI->getOperand(i+1).getMBB() == FPred) in canConvertIf()
530 PI.FReg = PI.PHI->getOperand(i).getReg(); in canConvertIf()
536 if (!TII->canInsertSelect(*Head, Cond, PI.PHI->getOperand(0).getReg(), in canConvertIf()
539 LLVM_DEBUG(dbgs() << "Can't convert: " << *PI.PHI); in canConvertIf()
628 LLVM_DEBUG(dbgs() << "If-converting " << *PI.PHI); in replacePHIInstrs()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DCanonicalizeFreezeInLoops.cpp97 PHINode *PHI; member
101 FrozenIndPHIInfo(PHINode *PHI, BinaryOperator *StepInst) in FrozenIndPHIInfo()
102 : PHI(PHI), StepInst(StepInst) {} in FrozenIndPHIInfo()
159 for (auto &PHI : L->getHeader()->phis()) { in run() local
161 if (!InductionDescriptor::isInductionPHI(&PHI, L, &SE, ID)) in run()
164 LLVM_DEBUG(dbgs() << "canonfr: PHI: " << PHI << "\n"); in run()
165 FrozenIndPHIInfo Info(&PHI, ID.getInductionBinOp()); in run()
172 Info.StepValIdx = Info.StepInst->getOperand(0) == &PHI; in run()
189 for_each(PHI.users(), Visit); in run()
198 PHINode *PHI = Info.PHI; in run() local
[all …]
H A DSSAUpdater.cpp76 static bool IsEquivalentPHI(PHINode *PHI, in IsEquivalentPHI() argument
78 unsigned PHINumValues = PHI->getNumIncomingValues(); in IsEquivalentPHI()
84 if (ValueMapping[PHI->getIncomingBlock(i)] != in IsEquivalentPHI()
85 PHI->getIncomingValue(i)) { in IsEquivalentPHI()
274 PHINode *PHI; member in llvm::SSAUpdaterTraits::PHI_iterator
279 : PHI(P), idx(0) {} in PHI_iterator()
281 : PHI(P), idx(PHI->getNumIncomingValues()) {} in PHI_iterator()
287 Value *getIncomingValue() { return PHI->getIncomingValue(idx); } in getIncomingValue()
288 BasicBlock *getIncomingBlock() { return PHI->getIncomingBlock(idx); } in getIncomingBlock()
291 static PHI_iterator PHI_begin(PhiT *PHI) { return PHI_iterator(PHI); } in PHI_begin() argument
[all …]
H A DFlattenCFG.cpp137 PHINode *PHI = dyn_cast<PHINode>(BB->begin()); in FlattenParallelAndOr() local
138 if (PHI) in FlattenParallelAndOr()
273 PHI = dyn_cast<PHINode>(PS2->begin()); in FlattenParallelAndOr()
274 if (PHI) in FlattenParallelAndOr()
H A DLoopPeel.cpp259 for (auto &PHI : L.getHeader()->phis()) { in calculateIterationsToPeel() local
260 PeelCounter ToInvariance = calculate(PHI); in calculateIterationsToPeel()
971 for (PHINode &PHI : Edge.second->phis()) { in cloneLoopBlocks()
972 Value *LatchVal = PHI.getIncomingValueForBlock(Edge.first); in cloneLoopBlocks()
976 PHI.addIncoming(LatchVal, cast<BasicBlock>(VMap[Edge.first])); in cloneLoopBlocks()
977 SE.forgetLcssaPhiWithNewPredecessor(L, &PHI); in cloneLoopBlocks()
1278 PHINode *PHI = cast<PHINode>(I); in peelLoop() local
1279 Value *NewVal = PHI->getIncomingValueForBlock(Latch); in peelLoop()
1284 PHI->setIncomingValueForBlock(NewPreHeader, NewVal); in peelLoop()
/freebsd/contrib/llvm-project/llvm/lib/SandboxIR/
H A DTracker.cpp91 PHIRemoveIncoming::PHIRemoveIncoming(PHINode *PHI, unsigned RemovedIdx) in PHIRemoveIncoming() argument
92 : PHI(PHI), RemovedIdx(RemovedIdx) { in PHIRemoveIncoming()
93 RemovedV = PHI->getIncomingValue(RemovedIdx); in PHIRemoveIncoming()
94 RemovedBB = PHI->getIncomingBlock(RemovedIdx); in PHIRemoveIncoming()
100 unsigned NumIncoming = PHI->getNumIncomingValues(); in revert()
102 PHI->addIncoming(RemovedV, RemovedBB); in revert()
108 PHI->addIncoming(PHI->getIncomingValue(LastIdx), in revert()
109 PHI->getIncomingBlock(LastIdx)); in revert()
111 auto *PrevV = PHI->getIncomingValue(Idx - 1); in revert()
112 auto *PrevBB = PHI->getIncomingBlock(Idx - 1); in revert()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPURewriteUndefForPHI.cpp104 for (auto &PHI : BB.phis()) { in INITIALIZE_PASS_DEPENDENCY() local
105 if (UA.isDivergent(&PHI)) in INITIALIZE_PASS_DEPENDENCY()
116 for (unsigned i = 0; i < PHI.getNumIncomingValues(); i++) { in INITIALIZE_PASS_DEPENDENCY()
117 Value *Incoming = PHI.getIncomingValue(i); in INITIALIZE_PASS_DEPENDENCY()
118 BasicBlock *IncomingBB = PHI.getIncomingBlock(i); in INITIALIZE_PASS_DEPENDENCY()
120 if (Incoming == &PHI) in INITIALIZE_PASS_DEPENDENCY()
157 PHI.replaceAllUsesWith(UniqueDefinedIncoming); in INITIALIZE_PASS_DEPENDENCY()
158 ToBeDeleted.push_back(&PHI); in INITIALIZE_PASS_DEPENDENCY()
164 for (auto *PHI : ToBeDeleted) in INITIALIZE_PASS_DEPENDENCY() local
165 PHI->eraseFromParent(); in INITIALIZE_PASS_DEPENDENCY()
H A DSIOptimizeVGPRLiveRange.cpp514 MachineInstrBuilder PHI = BuildMI(*Flow, Flow->getFirstNonPHI(), DebugLoc(), in optimizeLiveRange() local
515 TII->get(TargetOpcode::PHI), NewReg); in optimizeLiveRange()
518 PHI.addReg(Reg).addMBB(Pred); in optimizeLiveRange()
520 PHI.addReg(UndefReg, RegState::Undef).addMBB(Pred); in optimizeLiveRange()
577 MachineInstrBuilder PHI = in optimizeWaterfallLiveRange() local
579 TII->get(TargetOpcode::PHI), NewReg); in optimizeWaterfallLiveRange()
582 PHI.addReg(UndefReg, RegState::Undef).addMBB(Pred); in optimizeWaterfallLiveRange()
584 PHI.addReg(Reg).addMBB(Pred); in optimizeWaterfallLiveRange()
H A DAMDGPULowerBufferFatPointers.cpp1374 PtrParts visitPHINode(PHINode &PHI);
1442 if (auto *PHI = dyn_cast<PHINode>(I)) { in getPossibleRsrcRoots() local
1445 for (Value *In : PHI->incoming_values()) { in getPossibleRsrcRoots()
1514 if (auto *PHI = dyn_cast<PHINode>(I)) { in processConditionals() local
1516 StructType *PHITy = cast<StructType>(PHI->getType()); in processConditionals()
1517 IRB.SetInsertPoint(*PHI->getInsertionPointAfterDef()); in processConditionals()
1518 IRB.SetCurrentDebugLocation(PHI->getDebugLoc()); in processConditionals()
1523 auto *RsrcPHI = IRB.CreatePHI(RsrcTy, PHI->getNumIncomingValues()); in processConditionals()
1525 for (auto [V, BB] : llvm::zip(PHI->incoming_values(), PHI->blocks())) { in processConditionals()
1529 copyMetadata(RsrcPHI, PHI); in processConditionals()
[all …]
H A DAMDGPUAtomicOptimizer.cpp884 PHINode *const PHI = B.CreatePHI(Ty, 2); in optimizeAtomic() local
885 PHI->addIncoming(PoisonValue::get(Ty), Predecessor); in optimizeAtomic()
886 PHI->addIncoming(NewI, SingleLaneTerminator->getParent()); in optimizeAtomic()
891 Value *ReadlaneVal = PHI; in optimizeAtomic()
893 ReadlaneVal = B.CreateZExt(PHI, B.getInt32Ty()); in optimizeAtomic()
963 PHINode *const PHI = B.CreatePHI(Ty, 2); in optimizeAtomic() local
964 PHI->addIncoming(PoisonValue::get(Ty), PixelEntryBB); in optimizeAtomic()
965 PHI->addIncoming(Result, I.getParent()); in optimizeAtomic()
966 I.replaceAllUsesWith(PHI); in optimizeAtomic()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DSSAUpdaterImpl.h373 ValT PHI = Traits::CreateEmptyPHI(Info->BB, Info->NumPreds, Updater); in FindAvailableVals() local
374 Info->AvailableVal = PHI; in FindAvailableVals()
375 (*AvailableVals)[Info->BB] = PHI; in FindAvailableVals()
392 PhiT *PHI = Traits::ValueIsNewPHI(Info->AvailableVal, Updater); in FindAvailableVals() local
393 if (!PHI) in FindAvailableVals()
403 Traits::AddPHIOperand(PHI, PredInfo->AvailableVal, Pred); in FindAvailableVals()
406 LLVM_DEBUG(dbgs() << " Inserted PHI: " << *PHI << "\n"); in FindAvailableVals()
409 if (InsertedPHIs) InsertedPHIs->push_back(PHI); in FindAvailableVals()
427 bool CheckIfPHIMatches(PhiT *PHI, SmallVectorImpl<BBInfo *> &TaggedBlocks) { in CheckIfPHIMatches() argument
437 WorkList.push_back(PHI); in CheckIfPHIMatches()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVCodeGenPrepare.cpp220 auto *PHI = dyn_cast<PHINode>(I.getOperand(0)); in visitIntrinsicInst() local
221 if (!PHI || !PHI->hasOneUse() || in visitIntrinsicInst()
222 !llvm::is_contained(PHI->incoming_values(), &I)) in visitIntrinsicInst()
226 IRBuilder<> Builder(PHI); in visitIntrinsicInst()
227 auto *VecPHI = Builder.CreatePHI(VecTy, PHI->getNumIncomingValues()); in visitIntrinsicInst()
229 for (auto *BB : PHI->blocks()) { in visitIntrinsicInst()
232 VecTy, PHI->getIncomingValueForBlock(BB), (uint64_t)0); in visitIntrinsicInst()
239 PHI->eraseFromParent(); in visitIntrinsicInst()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp800 PHINode *PHI = dyn_cast<PHINode>(SV); in followLCSSA() local
801 if (!PHI) in followLCSSA()
804 if (PHI->getNumIncomingValues() != 1) in followLCSSA()
806 return followLCSSA(PHI->getIncomingValue(0)); in followLCSSA()
818 if (PHINode *PHI = dyn_cast<PHINode>(User)) { in findInnerReductionPhi() local
819 if (PHI->getNumIncomingValues() == 1) in findInnerReductionPhi()
822 if (RecurrenceDescriptor::isReductionPHI(PHI, L, RD)) { in findInnerReductionPhi()
846 return PHI; in findInnerReductionPhi()
864 SmallVector<Instruction *, 4> Ops = RD.getReductionOpChain(PHI, L); in findInnerReductionPhi()
879 return PHI; in findInnerReductionPhi()
[all …]
H A DJumpTableToSwitch.cpp116 PHINode *PHI = in expandToSwitch() local
131 if (PHI) in expandToSwitch()
132 PHI->addIncoming(Call, B); in expandToSwitch()
139 if (PHI) in expandToSwitch()
140 CB->replaceAllUsesWith(PHI); in expandToSwitch()
H A DGVNSink.cpp664 for (auto &PHI : NeededPHIs) in analyzeInstructionForSinking() local
665 PHIContents.insert_range(PHI.getValues()); in analyzeInstructionForSinking()
690 ModelledPHI PHI(NewInsts, OpNum, ActivePreds); in analyzeInstructionForSinking() local
691 if (PHI.areAllIncomingValuesSame()) in analyzeInstructionForSinking()
696 if (NeededPHIs.count(PHI)) in analyzeInstructionForSinking()
698 if (!PHI.areAllIncomingValuesSameType()) in analyzeInstructionForSinking()
702 PHI.areAnyIncomingValuesConstant()) in analyzeInstructionForSinking()
706 NeededPHIs.insert(PHI); in analyzeInstructionForSinking()
707 PHIContents.insert_range(PHI.getValues()); in analyzeInstructionForSinking()
H A DLoopLoadElimination.cpp455 PHINode *PHI = PHINode::Create(Initial->getType(), 2, "store_forwarded"); in propagateStoredValueToLoadUsers() local
456 PHI->insertBefore(L->getHeader()->begin()); in propagateStoredValueToLoadUsers()
457 PHI->addIncoming(Initial, PH); in propagateStoredValueToLoadUsers()
478 PHI->addIncoming(StoreValue, L->getLoopLatch()); in propagateStoredValueToLoadUsers()
480 Cand.Load->replaceAllUsesWith(PHI); in propagateStoredValueToLoadUsers()
481 PHI->setDebugLoc(Cand.Load->getDebugLoc()); in propagateStoredValueToLoadUsers()
H A DLoopFuse.cpp1605 for (PHINode &PHI : FC0.Header->phis()) in performFusion()
1606 OriginalFC0PHIs.push_back(&PHI); in performFusion()
1662 while (PHINode *PHI = dyn_cast<PHINode>(&FC1.Header->front())) { in performFusion() local
1663 if (SE.isSCEVable(PHI->getType())) in performFusion()
1664 SE.forgetValue(PHI); in performFusion()
1665 if (PHI->hasNUsesOrMore(1)) in performFusion()
1666 PHI->moveBefore(FC0.Header->getFirstInsertionPt()); in performFusion()
1668 PHI->eraseFromParent(); in performFusion()
1897 for (PHINode &PHI : FC0.Header->phis()) in fuseGuardedLoops()
1898 OriginalFC0PHIs.push_back(&PHI); in fuseGuardedLoops()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86FastPreTileConfig.cpp74 void convertPHI(MachineBasicBlock *MBB, MachineInstr &PHI);
334 MachineInstr &PHI) { in convertPHI() argument
341 MachineInstrBuilder AddrPHI = BuildMI(*MBB, ++PHI.getIterator(), DebugLoc(), in convertPHI()
342 TII->get(X86::PHI), StackAddrReg); in convertPHI()
344 MachineInstrBuilder RowPHI = BuildMI(*MBB, ++PHI.getIterator(), DebugLoc(), in convertPHI()
345 TII->get(X86::PHI), RowReg); in convertPHI()
347 MachineInstrBuilder ColPHI = BuildMI(*MBB, ++PHI.getIterator(), DebugLoc(), in convertPHI()
348 TII->get(X86::PHI), ColReg); in convertPHI()
350 VisitedPHIs[&PHI] = {RowReg, ColReg, StackAddrReg}; in convertPHI()
352 for (unsigned I = 1, E = PHI.getNumOperands(); I != E; I += 2) { in convertPHI()
[all …]
H A DX86LowerAMXType.cpp669 void replacePhiDefWithLoad(Instruction *PHI, Value *StorePtr);
671 void volatileTilePHI(PHINode *PHI);
693 void X86VolatileTileData::replacePhiDefWithLoad(Instruction *PHI, in replacePhiDefWithLoad() argument
695 for (Use &U : PHI->uses()) in replacePhiDefWithLoad()
697 PHI->eraseFromParent(); in replacePhiDefWithLoad()
755 void X86VolatileTileData::volatileTilePHI(PHINode *PHI) { in volatileTilePHI() argument
756 BasicBlock *BB = PHI->getParent(); in volatileTilePHI()
759 for (unsigned I = 0, E = PHI->getNumIncomingValues(); I != E; ++I) { in volatileTilePHI()
760 Value *Op = PHI->getIncomingValue(I); in volatileTilePHI()
767 replacePhiDefWithLoad(PHI, StorePtr); in volatileTilePHI()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineLoadStoreAlloca.cpp287 } else if (auto *PHI = dyn_cast<PHINode>(Inst)) { in collectUsers() local
292 if (all_of(PHI->incoming_values(), [&](Value *V) { in collectUsers()
297 UsersToReplace.insert(PHI); in collectUsers()
298 PushUsersToWorklist(PHI); in collectUsers()
305 if (!IsReplaceable || !ValuesToRevisit.insert(PHI)) in collectUsers()
310 Worklist.emplace_back(PHI); in collectUsers()
311 for (unsigned Idx = 0; Idx < PHI->getNumIncomingValues(); ++Idx) { in collectUsers()
312 auto *IncomingValue = cast<Instruction>(PHI->getIncomingValue(Idx)); in collectUsers()
403 } else if (auto *PHI = dyn_cast<PHINode>(I)) { in replace() local
406 Value *V = WorkMap.lookup(PHI->getIncomingValue(0)); in replace()
[all …]
H A DInstCombineNegator.cpp307 case Instruction::PHI: { in visitImpl()
309 auto *PHI = cast<PHINode>(I); in visitImpl() local
310 SmallVector<Value *, 4> NegatedIncomingValues(PHI->getNumOperands()); in visitImpl()
311 for (auto I : zip(PHI->incoming_values(), NegatedIncomingValues)) { in visitImpl()
313 if (DT.dominates(PHI->getParent(), std::get<0>(I))) in visitImpl()
321 PHI->getType(), PHI->getNumOperands(), PHI->getName() + ".neg"); in visitImpl()
322 for (auto I : zip(NegatedIncomingValues, PHI->blocks())) in visitImpl()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/
H A DObjCARCContract.cpp665 if (PHINode *PHI = dyn_cast<PHINode>(U.getUser())) { in run() local
668 BasicBlock *IncomingBB = PHI->getIncomingBlock(ValNo); in run()
687 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) in run()
688 if (PHI->getIncomingBlock(i) == IncomingBB) { in run()
691 &PHI->getOperandUse( in run()
694 PHI->setIncomingValue(i, Replacement); in run()
727 for (Value *PHI : PHIList) in run()
728 ReplaceArgUses(PHI); in run()
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/
H A DPPCMIPeephole.cpp370 } else if (Opcode != PPC::IMPLICIT_DEF && Opcode != PPC::PHI) in collectUnprimedAccPHIs()
376 if (Opcode != PPC::PHI) in collectUnprimedAccPHIs()
395 for (MachineInstr *PHI : llvm::reverse(PHIs)) { in convertUnprimedAccPHIs()
401 for (unsigned PHIOp = 1, NumOps = PHI->getNumOperands(); PHIOp != NumOps; in convertUnprimedAccPHIs()
403 Register RegOp = PHI->getOperand(PHIOp).getReg(); in convertUnprimedAccPHIs()
407 Opcode == PPC::PHI) && in convertUnprimedAccPHIs()
413 PHIOps.push_back({PHIInput->getOperand(1), PHI->getOperand(PHIOp + 1)}); in convertUnprimedAccPHIs()
419 PHI->getOperand(PHIOp + 1)}); in convertUnprimedAccPHIs()
420 } else if (Opcode == PPC::PHI) { in convertUnprimedAccPHIs()
429 PHI->getOperand(PHIOp + 1)}); in convertUnprimedAccPHIs()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DPGOMemOPSizeOpt.cpp386 PHINode *PHI = nullptr; in perform() local
390 PHI = IRBM.CreatePHI(MemOpTy, SizeIds.size() + 1, "MemOP.RVMerge"); in perform()
391 MO.I->replaceAllUsesWith(PHI); in perform()
392 PHI->addIncoming(MO.I, DefaultBB); in perform()
424 PHI->addIncoming(NewMO.I, CaseBB); in perform()

123456789