| /freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
| H A D | MachineSSAUpdater.cpp | 196 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 D | EarlyIfConversion.cpp | 115 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 D | CanonicalizeFreezeInLoops.cpp | 97 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 D | SSAUpdater.cpp | 76 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 D | FlattenCFG.cpp | 137 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 D | LoopPeel.cpp | 259 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 D | Tracker.cpp | 91 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 D | AMDGPURewriteUndefForPHI.cpp | 104 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 D | SIOptimizeVGPRLiveRange.cpp | 514 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 D | AMDGPULowerBufferFatPointers.cpp | 1374 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 D | AMDGPUAtomicOptimizer.cpp | 884 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 D | SSAUpdaterImpl.h | 373 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 D | RISCVCodeGenPrepare.cpp | 220 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 D | LoopInterchange.cpp | 800 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 D | JumpTableToSwitch.cpp | 116 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 D | GVNSink.cpp | 664 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 D | LoopLoadElimination.cpp | 455 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 D | LoopFuse.cpp | 1605 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 D | X86FastPreTileConfig.cpp | 74 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 D | X86LowerAMXType.cpp | 669 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 D | InstCombineLoadStoreAlloca.cpp | 287 } 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 D | InstCombineNegator.cpp | 307 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 D | ObjCARCContract.cpp | 665 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 D | PPCMIPeephole.cpp | 370 } 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 D | PGOMemOPSizeOpt.cpp | 386 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()
|