/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | MachineSSAUpdater.cpp | 265 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 D | EarlyIfConversion.cpp | 112 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 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 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 D | SSAUpdater.cpp | 86 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 D | LoopPeel.cpp | 257 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 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 | SimplifyCFG.cpp | 3970 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 D | AMDGPURewriteUndefForPHI.cpp | 106 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 D | AMDGPUMachineCFGStructurizer.cpp | 285 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 D | SIOptimizeVGPRLiveRange.cpp | 509 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 D | AMDGPUAtomicOptimizer.cpp | 913 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 D | RISCVCodeGenPrepare.cpp | 134 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 D | SSAUpdaterImpl.h | 374 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 D | X86FastPreTileConfig.cpp | 75 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 D | X86LowerAMXType.cpp | 528 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 D | LoopInterchange.cpp | 696 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 D | GVNSink.cpp | 705 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 D | LoopFuse.cpp | 1605 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 D | LoopLoadElimination.cpp | 447 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 D | ObjCARCContract.cpp | 619 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 D | InstCombineNegator.cpp | 306 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 D | InstCombineLoadStoreAlloca.cpp | 303 } 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 D | PPCMIPeephole.cpp | 372 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 D | PGOMemOPSizeOpt.cpp | 391 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 D | InstrRefBasedImpl.cpp | 3984 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 …]
|