Home
last modified time | relevance | path

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

12345678

/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineSSAUpdater.cpp265 MachineInstr *PHI; member in llvm::SSAUpdaterTraits::PHI_iterator
270 : PHI(P), idx(1) {} in PHI_iterator()
272 : PHI(P), idx(PHI->getNumOperands()) {} in PHI_iterator()
281 return PHI->getOperand(idx+1).getMBB(); in getIncomingBlock()
285 static inline PHI_iterator PHI_begin(PhiT *PHI) { return PHI_iterator(PHI); } in PHI_begin() argument
288 return PHI_iterator(PHI, true); in PHI_end()
315 MachineInstr *PHI = InsertNewDef(TargetOpcode::PHI, BB, Loc, in CreateEmptyPHI() local
318 return PHI->getOperand(0).getReg(); in CreateEmptyPHI()
345 if (PHI && PHI->getNumOperands() <= 1) in ValueIsNewPHI()
346 return PHI; in ValueIsNewPHI()
[all …]
H A DEarlyIfConversion.cpp112 MachineInstr *PHI; member
117 PHIInfo(MachineInstr *phi) : PHI(phi) {} in PHIInfo()
520 if (PI.PHI->getOperand(i+1).getMBB() == TPred) in canConvertIf()
521 PI.TReg = PI.PHI->getOperand(i).getReg(); in canConvertIf()
523 PI.FReg = PI.PHI->getOperand(i).getReg(); in canConvertIf()
634 PI.PHI->eraseFromParent(); in replacePHIInstrs()
635 PI.PHI = nullptr; in replacePHIInstrs()
669 PI.PHI->getOperand(i-1).setMBB(Head); in rewritePHIOperands()
670 PI.PHI->getOperand(i-2).setReg(DstReg); in rewritePHIOperands()
672 PI.PHI->removeOperand(i-1); in rewritePHIOperands()
[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
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
199 if (!ProcessedPHIs.insert(Info.PHI).second) in run()
[all …]
H A DSSAUpdater.cpp86 PHI->getIncomingValue(i)) { in IsEquivalentPHI()
275 PHINode *PHI; member in llvm::SSAUpdaterTraits::PHI_iterator
280 : PHI(P), idx(0) {} in PHI_iterator()
282 : PHI(P), idx(PHI->getNumIncomingValues()) {} in PHI_iterator()
292 static PHI_iterator PHI_begin(PhiT *PHI) { return PHI_iterator(PHI); } in PHI_begin() argument
320 PHINode *PHI = in CreateEmptyPHI() local
323 return PHI; in CreateEmptyPHI()
329 PHI->addIncoming(Val, Pred); in AddPHIOperand()
341 if (PHI && PHI->getNumIncomingValues() == 0) in ValueIsNewPHI()
342 return PHI; in ValueIsNewPHI()
[all …]
H A DLoopPeel.cpp257 for (auto &PHI : L.getHeader()->phis()) { in calculateIterationsToPeel() local
258 PeelCounter ToInvariance = calculate(PHI); in calculateIterationsToPeel()
816 for (PHINode &PHI : Edge.second->phis()) { in cloneLoopBlocks()
817 Value *LatchVal = PHI.getIncomingValueForBlock(Edge.first); in cloneLoopBlocks()
821 PHI.addIncoming(LatchVal, cast<BasicBlock>(VMap[Edge.first])); in cloneLoopBlocks()
822 SE.forgetValue(&PHI); in cloneLoopBlocks()
1026 PHINode *PHI = cast<PHINode>(I); in peelLoop() local
1027 Value *NewVal = PHI->getIncomingValueForBlock(Latch); in peelLoop()
1032 PHI->setIncomingValueForBlock(NewPreHeader, NewVal); in peelLoop()
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 DSimplifyCFG.cpp3970 PHINode *PHI = nullptr; in ensureValueAvailableInSuccessor() local
3984 PHI = nullptr; in ensureValueAvailableInSuccessor()
3986 if (PHI) in ensureValueAvailableInSuccessor()
3987 return PHI; in ensureValueAvailableInSuccessor()
3999 PHI->addIncoming( in ensureValueAvailableInSuccessor()
4001 return PHI; in ensureValueAvailableInSuccessor()
5678 return &PHI; in FindPHIForConditionForwarding()
5935 if (!PHI) in initializeUniqueCases()
6614 ResultTypes[PHI] = ResultLists[PHI][0].second->getType(); in SwitchToLookupTable()
6794 Constant *DV = NeedMask ? ResultLists[PHI][0].second : DefaultResults[PHI]; in SwitchToLookupTable()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPURewriteUndefForPHI.cpp106 for (auto &PHI : BB.phis()) { in INITIALIZE_PASS_DEPENDENCY() local
107 if (UA.isDivergent(&PHI)) in INITIALIZE_PASS_DEPENDENCY()
118 for (unsigned i = 0; i < PHI.getNumIncomingValues(); i++) { in INITIALIZE_PASS_DEPENDENCY()
119 Value *Incoming = PHI.getIncomingValue(i); in INITIALIZE_PASS_DEPENDENCY()
120 BasicBlock *IncomingBB = PHI.getIncomingBlock(i); in INITIALIZE_PASS_DEPENDENCY()
122 if (Incoming == &PHI) in INITIALIZE_PASS_DEPENDENCY()
159 PHI.replaceAllUsesWith(UniqueDefinedIncoming); in INITIALIZE_PASS_DEPENDENCY()
160 ToBeDeleted.push_back(&PHI); in INITIALIZE_PASS_DEPENDENCY()
166 for (auto *PHI : ToBeDeleted) in INITIALIZE_PASS_DEPENDENCY() local
167 PHI->eraseFromParent(); in INITIALIZE_PASS_DEPENDENCY()
H A DAMDGPUMachineCFGStructurizer.cpp285 assert(PHI.isPHI()); in getPHINumInputs()
290 assert(PHI.isPHI()); in getPHIPred()
300 assert(PHI.isPHI()); in getPHISourceReg()
305 assert(PHI.isPHI()); in getPHIDestReg()
1365 PHIInfo.addSource(LDestReg, getPHISourceReg(PHI, i), getPHIPred(PHI, i)); in storePHILinearizationInfoDest()
1370 PHIInfo.addSource(LDestReg, getPHISourceReg(PHI, i), getPHIPred(PHI, i)); in storePHILinearizationInfoDest()
1452 BuildMI(*MBB, PHI, PHI.getDebugLoc(), TII->get(TargetOpcode::PHI), in shrinkPHI()
1474 PHI.eraseFromParent(); in shrinkPHI()
1497 BuildMI(*MBB, PHI, PHI.getDebugLoc(), TII->get(TargetOpcode::PHI), in replacePHI()
1518 PHI.eraseFromParent(); in replacePHI()
[all …]
H A DSIOptimizeVGPRLiveRange.cpp509 MachineInstrBuilder PHI = BuildMI(*Flow, Flow->getFirstNonPHI(), DebugLoc(), in optimizeLiveRange() local
510 TII->get(TargetOpcode::PHI), NewReg); in optimizeLiveRange()
513 PHI.addReg(Reg).addMBB(Pred); in optimizeLiveRange()
515 PHI.addReg(UndefReg, RegState::Undef).addMBB(Pred); in optimizeLiveRange()
572 MachineInstrBuilder PHI = in optimizeWaterfallLiveRange() local
574 TII->get(TargetOpcode::PHI), NewReg); in optimizeWaterfallLiveRange()
577 PHI.addReg(UndefReg, RegState::Undef).addMBB(Pred); in optimizeWaterfallLiveRange()
579 PHI.addReg(Reg).addMBB(Pred); in optimizeWaterfallLiveRange()
H A DAMDGPUAtomicOptimizer.cpp913 PHINode *const PHI = B.CreatePHI(Ty, 2); in optimizeAtomic() local
914 PHI->addIncoming(PoisonValue::get(Ty), Predecessor); in optimizeAtomic()
915 PHI->addIncoming(NewI, SingleLaneTerminator->getParent()); in optimizeAtomic()
923 Value *const ExtractLo = B.CreateTrunc(PHI, Int32Ty); in optimizeAtomic()
924 Value *const ExtractHi = B.CreateTrunc(B.CreateLShr(PHI, 32), Int32Ty); in optimizeAtomic()
935 Value *CastedPhi = B.CreateBitCast(PHI, IntNTy); in optimizeAtomic()
994 PHINode *const PHI = B.CreatePHI(Ty, 2); in optimizeAtomic() local
995 PHI->addIncoming(PoisonValue::get(Ty), PixelEntryBB); in optimizeAtomic()
996 PHI->addIncoming(Result, I.getParent()); in optimizeAtomic()
997 I.replaceAllUsesWith(PHI); in optimizeAtomic()
/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVCodeGenPrepare.cpp134 auto *PHI = dyn_cast<PHINode>(I.getOperand(0)); in visitIntrinsicInst() local
135 if (!PHI || !PHI->hasOneUse() || in visitIntrinsicInst()
136 !llvm::is_contained(PHI->incoming_values(), &I)) in visitIntrinsicInst()
140 IRBuilder<> Builder(PHI); in visitIntrinsicInst()
141 auto *VecPHI = Builder.CreatePHI(VecTy, PHI->getNumIncomingValues()); in visitIntrinsicInst()
143 for (auto *BB : PHI->blocks()) { in visitIntrinsicInst()
146 VecTy, PHI->getIncomingValueForBlock(BB), (uint64_t)0); in visitIntrinsicInst()
153 PHI->eraseFromParent(); in visitIntrinsicInst()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DSSAUpdaterImpl.h374 Info->AvailableVal = PHI; in FindAvailableVals()
375 (*AvailableVals)[Info->BB] = PHI; in FindAvailableVals()
393 if (!PHI) in FindAvailableVals()
409 if (InsertedPHIs) InsertedPHIs->push_back(PHI); in FindAvailableVals()
430 bool CheckIfPHIMatches(PhiT *PHI) { in CheckIfPHIMatches() argument
432 WorkList.push_back(PHI); in CheckIfPHIMatches()
435 BBMap[PHI->getParent()]->PHITag = PHI; in CheckIfPHIMatches()
438 PHI = WorkList.pop_back_val(); in CheckIfPHIMatches()
480 if (PhiT *PHI = (*I)->PHITag) { in RecordMatchingPHIs() local
481 BlkT *BB = PHI->getParent(); in RecordMatchingPHIs()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86FastPreTileConfig.cpp75 void convertPHI(MachineBasicBlock *MBB, MachineInstr &PHI);
323 MachineInstr &PHI) { in convertPHI() argument
339 VisitedPHIs[&PHI] = {RowReg, ColReg, StackAddrReg}; in convertPHI()
343 Register InTileReg = PHI.getOperand(I).getReg(); in convertPHI()
348 MachineBasicBlock *InMBB = PHI.getOperand(I + 1).getMBB(); in convertPHI()
412 Register TileReg = PHI.getOperand(0).getReg(); in convertPHI()
421 PHI.eraseFromParent(); in convertPHI()
422 VisitedPHIs.erase(&PHI); in convertPHI()
454 MachineInstr *PHI = PHIs.pop_back_val(); in canonicalizePHIs() local
461 Register InTileReg = PHI->getOperand(I).getReg(); in canonicalizePHIs()
[all …]
H A DX86LowerAMXType.cpp528 void volatileTilePHI(PHINode *PHI);
552 for (Use &U : PHI->uses()) in replacePhiDefWithLoad()
554 PHI->eraseFromParent(); in replacePhiDefWithLoad()
613 BasicBlock *BB = PHI->getParent(); in volatileTilePHI()
617 Value *Op = PHI->getIncomingValue(I); in volatileTilePHI()
624 replacePhiDefWithLoad(PHI, StorePtr); in volatileTilePHI()
835 } else if (auto *PHI = dyn_cast<PHINode>(V)) { in optimizeAMXCastFromPhi() local
854 if (OldPhiNodes.count(PHI) == 0) in optimizeAMXCastFromPhi()
906 } else if (auto *PHI = dyn_cast<PHINode>(V)) { in optimizeAMXCastFromPhi() local
909 assert(OldPhiNodes.contains(PHI)); in optimizeAMXCastFromPhi()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInterchange.cpp696 PHINode *PHI = dyn_cast<PHINode>(SV); in followLCSSA() local
697 if (!PHI) in followLCSSA()
700 if (PHI->getNumIncomingValues() != 1) in followLCSSA()
720 return PHI; in findInnerReductionPhi()
736 Inductions.push_back(&PHI); in findInductionAndReductions()
850 Inductions.push_back(&PHI); in findInductions()
934 for (auto *U : PHI.users()) { in areInnerLoopLatchPHIsSupported()
1658 InnerLoopPHIs.push_back(&PHI); in adjustLoopBranches()
1662 OuterLoopPHIs.push_back(&PHI); in adjustLoopBranches()
1667 for (PHINode *PHI : OuterLoopPHIs) { in adjustLoopBranches()
[all …]
H A DGVNSink.cpp705 for (auto &PHI : NeededPHIs) in analyzeInstructionForSinking() local
706 PHIContents.insert(PHI.getValues().begin(), PHI.getValues().end()); in analyzeInstructionForSinking()
732 ModelledPHI PHI(NewInsts, OpNum, ActivePreds); in analyzeInstructionForSinking() local
733 if (PHI.areAllIncomingValuesSame()) in analyzeInstructionForSinking()
738 if (NeededPHIs.count(PHI)) in analyzeInstructionForSinking()
740 if (!PHI.areAllIncomingValuesSameType()) in analyzeInstructionForSinking()
744 PHI.areAnyIncomingValuesConstant()) in analyzeInstructionForSinking()
748 NeededPHIs.insert(PHI); in analyzeInstructionForSinking()
749 PHIContents.insert(PHI.getValues().begin(), PHI.getValues().end()); in analyzeInstructionForSinking()
H A DLoopFuse.cpp1605 for (PHINode &PHI : FC0.Header->phis()) in performFusion()
1606 OriginalFC0PHIs.push_back(&PHI); in performFusion()
1663 if (SE.isSCEVable(PHI->getType())) in performFusion()
1664 SE.forgetValue(PHI); in performFusion()
1665 if (PHI->hasNUsesOrMore(1)) in performFusion()
1668 PHI->eraseFromParent(); in performFusion()
1896 OriginalFC0PHIs.push_back(&PHI); in fuseGuardedLoops()
1946 if (SE.isSCEVable(PHI->getType())) in fuseGuardedLoops()
1947 SE.forgetValue(PHI); in fuseGuardedLoops()
1948 if (PHI->hasNUsesOrMore(1)) in fuseGuardedLoops()
[all …]
H A DLoopLoadElimination.cpp447 PHINode *PHI = PHINode::Create(Initial->getType(), 2, "store_forwarded"); in propagateStoredValueToLoadUsers() local
448 PHI->insertBefore(L->getHeader()->begin()); in propagateStoredValueToLoadUsers()
449 PHI->addIncoming(Initial, PH); in propagateStoredValueToLoadUsers()
464 PHI->addIncoming(StoreValue, L->getLoopLatch()); in propagateStoredValueToLoadUsers()
466 Cand.Load->replaceAllUsesWith(PHI); in propagateStoredValueToLoadUsers()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/ObjCARC/
H A DObjCARCContract.cpp619 if (PHINode *PHI = dyn_cast<PHINode>(U.getUser())) { in run() local
622 BasicBlock *IncomingBB = PHI->getIncomingBlock(ValNo); in run()
641 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) in run()
642 if (PHI->getIncomingBlock(i) == IncomingBB) { in run()
645 &PHI->getOperandUse( in run()
648 PHI->setIncomingValue(i, Replacement); in run()
681 for (Value *PHI : PHIList) in run()
682 ReplaceArgUses(PHI); in run()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineNegator.cpp306 case Instruction::PHI: { in visitImpl()
308 auto *PHI = cast<PHINode>(I); in visitImpl() local
309 SmallVector<Value *, 4> NegatedIncomingValues(PHI->getNumOperands()); in visitImpl()
310 for (auto I : zip(PHI->incoming_values(), NegatedIncomingValues)) { in visitImpl()
317 PHI->getType(), PHI->getNumOperands(), PHI->getName() + ".neg"); in visitImpl()
318 for (auto I : zip(NegatedIncomingValues, PHI->blocks())) in visitImpl()
H A DInstCombineLoadStoreAlloca.cpp303 } else if (auto *PHI = dyn_cast<PHINode>(Inst)) { in collectUsersRecursive() local
305 if (any_of(PHI->incoming_values(), in collectUsersRecursive()
312 if (any_of(PHI->incoming_values(), [this](Value *V) { in collectUsersRecursive()
319 Worklist.insert(PHI); in collectUsersRecursive()
320 if (!collectUsersRecursive(*PHI)) in collectUsersRecursive()
374 } else if (auto *PHI = dyn_cast<PHINode>(I)) { in replace() local
377 PHI->getName(), PHI); in replace()
378 for (unsigned int I = 0; I < PHI->getNumIncomingValues(); ++I) in replace()
379 NewPHI->addIncoming(getReplacement(PHI->getIncomingValue(I)), in replace()
380 PHI->getIncomingBlock(I)); in replace()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/
H A DPPCMIPeephole.cpp372 if (Opcode != PPC::PHI) in collectUnprimedAccPHIs()
391 for (MachineInstr *PHI : llvm::reverse(PHIs)) { in convertUnprimedAccPHIs()
403 Opcode == PPC::PHI) && in convertUnprimedAccPHIs()
416 } else if (Opcode == PPC::PHI) { in convertUnprimedAccPHIs()
434 if (PHI != PHIs[0]) in convertUnprimedAccPHIs()
437 *PHI->getParent(), PHI, PHI->getDebugLoc(), TII->get(PPC::PHI), AccReg); in convertUnprimedAccPHIs()
443 ChangedPHIMap[PHI] = NewPHI.getInstr(); in convertUnprimedAccPHIs()
445 LLVM_DEBUG(PHI->dump()); in convertUnprimedAccPHIs()
565 if (RootPHI->getOpcode() != PPC::PHI) in simplifyCode()
1824 assert(Inst->getOpcode() == PPC::PHI && in eliminateRedundantCompare()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DPGOMemOPSizeOpt.cpp391 PHINode *PHI = nullptr; in perform() local
395 PHI = IRBM.CreatePHI(MemOpTy, SizeIds.size() + 1, "MemOP.RVMerge"); in perform()
396 MO.I->replaceAllUsesWith(PHI); in perform()
397 PHI->addIncoming(MO.I, DefaultBB); in perform()
430 PHI->addIncoming(NewMO.I, CaseBB); in perform()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/LiveDebugValues/
H A DInstrRefBasedImpl.cpp3984 LDVSSAPhi *PHI; member in llvm::SSAUpdaterTraits::PHI_iterator
3989 : PHI(P), Idx(0) {} in PHI_iterator()
3991 : PHI(P), Idx(PHI->IncomingValues.size()) {} in PHI_iterator()
4005 static inline PHI_iterator PHI_begin(PhiT *PHI) { return PHI_iterator(PHI); } in PHI_begin() argument
4008 return PHI_iterator(PHI, true); in PHI_end()
4060 if (PHI && PHI->IncomingValues.size() == 0) in ValueIsNewPHI()
4061 return PHI; in ValueIsNewPHI()
4067 static BlockValueNum GetPHIValue(LDVSSAPhi *PHI) { return PHI->PHIValNum; } in GetPHIValue() argument
4177 for (auto &PHI : CreatedPHIs) in resolveDbgPHIsImpl() local
4178 SortedPHIs.push_back(PHI); in resolveDbgPHIsImpl()
[all …]

12345678