/freebsd/contrib/llvm-project/llvm/include/llvm/Support/ |
H A D | GenericDomTree.h | 62 DomTreeNodeBase *IDom; 70 : TheBB(BB), IDom(iDom), Level(IDom ? IDom->Level + 1 : 0) {} 90 DomTreeNodeBase *getIDom() const { return IDom; } 125 assert(IDom && "No immediate dominator?"); 126 if (IDom == NewIDom) return; 128 auto I = find(IDom->Children, this); 129 assert(I != IDom->Children.end() && 132 IDom->Children.erase(I); 135 IDom = NewIDom; 136 IDom->Children.push_back(this); [all …]
|
H A D | GenericDomTreeConstruction.h | 69 NodePtr IDom = nullptr; member 130 return InfoIt->second.IDom; in getIDom() 138 NodePtr IDom = getIDom(BB); in getNodeForBlock() local 140 assert(IDom || DT.DomTreeNodes[nullptr]); in getNodeForBlock() 141 TreeNodePtr IDomNode = getNodeForBlock(IDom, DT); in getNodeForBlock() 268 VInfo.IDom = NumToNode[VInfo.Parent]; in runSemiNCA() 293 NodePtr WIDomCandidate = WInfo.IDom; in runSemiNCA() 298 WIDomCandidate = WIDomCandidateInfo.IDom; in runSemiNCA() 301 WInfo.IDom = WIDomCandidate; in runSemiNCA() 585 NodeToInfo[NumToNode[1]].IDom = AttachTo->getBlock(); in attachNewSubtree() [all …]
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/ |
H A D | SSAUpdaterImpl.h | 57 BBInfo *IDom = nullptr; variable 171 Info->IDom = PseudoEntry; in BuildBlockList() 217 Blk1 = Blk1->IDom; in IntersectDominators() 222 Blk2 = Blk2->IDom; in IntersectDominators() 270 if (NewIDom && NewIDom != Info->IDom) { in FindDominators() 271 Info->IDom = NewIDom; in FindDominators() 282 bool IsDefInDomFrontier(const BBInfo *Pred, const BBInfo *IDom) { in IsDefInDomFrontier() argument 283 for (; Pred != IDom; Pred = Pred->IDom) { in IsDefInDomFrontier() 308 BBInfo *NewDefBB = Info->IDom->DefBB; in FindPHIPlacement() 310 if (IsDefInDomFrontier(Info->Preds[p], Info->IDom)) { in FindPHIPlacement()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | CodeMoverUtils.cpp | 127 BasicBlock *IDom = DT.getNode(CurBlock)->getIDom()->getBlock(); in collectControlConditions() local 128 assert(DT.dominates(&Dominator, IDom) && in collectControlConditions() 132 const BranchInst *BI = dyn_cast<BranchInst>(IDom->getTerminator()); in collectControlConditions() 137 if (PDT.dominates(CurBlock, IDom)) { in collectControlConditions() 140 << IDom->getName() << "\n"); in collectControlConditions() 144 << IDom->getName() << "\n"); in collectControlConditions() 150 << IDom->getName() << "\n"); in collectControlConditions() 162 CurBlock = IDom; in collectControlConditions()
|
H A D | SSAUpdaterBulk.cpp | 74 BasicBlock *IDom = DT->getNode(BB)->getIDom()->getBlock(); in computeValueAt() local 75 Value *V = computeValueAt(IDom, R, DT); in computeValueAt()
|
H A D | LoopPeel.cpp | 785 DomTreeNode *IDom = DT->getNode(*BB)->getIDom(); in cloneLoopBlocks() local 787 DT->addNewBlock(NewBB, cast<BasicBlock>(VMap[IDom->getBlock()])); in cloneLoopBlocks()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | LiveRangeCalc.cpp | 348 MachineDomTreeNode *IDom = Node->getIDom(); in updateSSA() 353 bool needPHI = !IDom || !Seen.test(IDom->getBlock()->getNumber()); in updateSSA() 355 // IDom dominates all of our predecessors, but it may not be their in updateSSA() 357 // properly dominated by IDom. If so, we need a phi-def here. in updateSSA() 359 IDomValue = Map[IDom->getBlock()]; in updateSSA() 364 Map[IDom->getBlock()].second = IDomValue.second = in updateSSA() 385 if (DomTree->dominates(IDom, Value.second)) { in updateSSA() 343 MachineDomTreeNode *IDom = Node->getIDom(); updateSSA() local
|
H A D | ShrinkWrap.cpp | 379 MachineBasicBlock *IDom = &Block; in FindIDom() local 381 IDom = Dom.findNearestCommonDominator(IDom, BB); in FindIDom() 382 if (!IDom) in FindIDom() 385 if (Strict && IDom == &Block) in FindIDom() 387 return IDom; in FindIDom()
|
H A D | SplitKit.cpp | 950 MachineDomTreeNode *IDom = MDT[Loop->getHeader()]->getIDom(); in findShallowDominator() local 953 if (!IDom || !MDT.dominates(DefDomNode, IDom)) in findShallowDominator() 956 MBB = IDom->getBlock(); in findShallowDominator()
|
/freebsd/contrib/llvm-project/llvm/lib/MCA/HardwareUnits/ |
H A D | LSUnit.cpp | 89 MemoryGroup &IDom = getGroup(ImmediateLoadDominator); in dispatch() local 92 IDom.addSuccessor(&NewGroup, !assumeNoAlias()); in dispatch()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | ConstantHoisting.cpp | 204 auto *IDom = DT->getNode(InsertionBlock)->getIDom(); in findMatInsertPt() local 205 while (IDom->getBlock()->isEHPad()) { in findMatInsertPt() 206 assert(Entry != IDom->getBlock() && "eh pad in entry block"); in findMatInsertPt() 207 IDom = IDom->getIDom(); in findMatInsertPt() 210 return IDom->getBlock()->getTerminator()->getIterator(); in findMatInsertPt()
|
H A D | DeadStoreElimination.cpp | 1934 DomTreeNode *IDom = DT.getNode(StoreBB)->getIDom(); in dominatingConditionImpliesValue() local 1935 if (!IDom) in dominatingConditionImpliesValue() 1938 auto *BI = dyn_cast<BranchInst>(IDom->getBlock()->getTerminator()); in dominatingConditionImpliesValue()
|
H A D | LoopStrengthReduce.cpp | 5599 BasicBlock *IDom; in HoistInsertPosition() local 5604 IDom = Rung->getBlock(); in HoistInsertPosition() 5607 const Loop *IDomLoop = LI.getLoopFor(IDom); in HoistInsertPosition() 5614 Tentative = IDom->getTerminator(); in HoistInsertPosition()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | MemorySSAUpdater.cpp | 869 if (auto *IDom = DT.getNode(BB)->getIDom()) in applyInsertUpdates() local 870 if (IDom->getBlock() != BB) { in applyInsertUpdates() 871 BB = IDom->getBlock(); in applyInsertUpdates() 1125 auto *IDom = DT.getNode(DominatedBlock)->getIDom(); in applyInsertUpdates() local 1126 assert(IDom && "Block must have a valid IDom."); in applyInsertUpdates() 1127 U.set(GetLastDef(IDom->getBlock())); in applyInsertUpdates()
|
H A D | ScalarEvolution.cpp | 6013 BasicBlock *IDom = DT[PN->getParent()]->getIDom()->getBlock(); in createNodeFromSelectLikePHI() local 6014 assert(IDom && "At least the entry block should dominate PN"); in createNodeFromSelectLikePHI() 6016 auto *BI = dyn_cast<BranchInst>(IDom->getTerminator()); in createNodeFromSelectLikePHI()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | SIAnnotateControlFlow.cpp | 171 BasicBlock *IDom = DT->getNode(Phi->getParent())->getIDom()->getBlock(); in isElse() local 173 if (Phi->getIncomingBlock(i) == IDom) { in isElse()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombinePHI.cpp | 1308 auto *IDom = DT.getNode(BB)->getIDom()->getBlock(); in simplifyUsingControlFlow() local 1316 if (auto *BI = dyn_cast<BranchInst>(IDom->getTerminator())) { in simplifyUsingControlFlow() 1323 } else if (auto *SI = dyn_cast<SwitchInst>(IDom->getTerminator())) { in simplifyUsingControlFlow() 1347 DT.dominates(BasicBlockEdge(IDom, It->second), in simplifyUsingControlFlow()
|
H A D | InstCombineSelect.cpp | 2645 BasicBlock *IDom = IDomNode->getBlock(); in foldSelectToPhiImpl() local 2650 if (match(IDom->getTerminator(), in foldSelectToPhiImpl() 2655 } else if (match(IDom->getTerminator(), in foldSelectToPhiImpl() 2672 BasicBlockEdge TrueEdge(IDom, TrueSucc); in foldSelectToPhiImpl() 2673 BasicBlockEdge FalseEdge(IDom, FalseSucc); in foldSelectToPhiImpl()
|