| /llvm-project-15.0.7/llvm/include/llvm/Support/ |
| H A D | GenericDomTree.h | 61 DomTreeNodeBase *IDom; 69 : TheBB(BB), IDom(iDom), Level(IDom ? IDom->Level + 1 : 0) {} 125 if (IDom == NewIDom) return; 131 IDom->Children.erase(I); 134 IDom = NewIDom; 155 assert(IDom); 165 assert(C->IDom); 491 NodeA = NodeA->IDom; 645 OldNode->IDom = NewNode; 678 if (IDom) { [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 277 VInfo.IDom = NumToNode[VInfo.Parent]; 310 NodePtr WIDomCandidate = WInfo.IDom; 314 WInfo.IDom = WIDomCandidate; 1135 assert(IDom); in EraseNode() 1138 assert(ChIt != IDom->Children.end()); in EraseNode() 1140 IDom->Children.pop_back(); in EraseNode() 1306 if (!IDom && TN->getLevel() != 0) { in VerifyLevels() [all …]
|
| /llvm-project-15.0.7/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()
|
| /llvm-project-15.0.7/clang/include/clang/Analysis/Analyses/ |
| H A D | Dominators.h | 104 DomTreeNode *IDom = DT.getNode(*I)->getIDom(); in dump() local 105 if (IDom && IDom->getBlock()) in dump() 108 << IDom->getBlock()->getBlockID() in dump() 114 bool IsDomTreeRoot = !IDom && !IsPostDom && IsEntryBlock; in dump() 116 IDom && !IDom->getBlock() && IsPostDom && IsExitBlock; in dump()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | CodeMoverUtils.cpp | 125 BasicBlock *IDom = DT.getNode(CurBlock)->getIDom()->getBlock(); in collectControlConditions() local 126 assert(DT.dominates(&Dominator, IDom) && in collectControlConditions() 130 const BranchInst *BI = dyn_cast<BranchInst>(IDom->getTerminator()); in collectControlConditions() 135 if (PDT.dominates(CurBlock, IDom)) { in collectControlConditions() 138 << IDom->getName() << "\n"); in collectControlConditions() 142 << IDom->getName() << "\n"); in collectControlConditions() 148 << IDom->getName() << "\n"); in collectControlConditions() 160 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 | 610 DomTreeNode *IDom = DT->getNode(*BB)->getIDom(); in cloneLoopBlocks() local 612 DT->addNewBlock(NewBB, cast<BasicBlock>(VMap[IDom->getBlock()])); in cloneLoopBlocks()
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | ShrinkWrap.cpp | 324 MachineBasicBlock *IDom = &Block; in FindIDom() local 326 IDom = Dom.findNearestCommonDominator(IDom, BB); in FindIDom() 327 if (!IDom) in FindIDom() 330 if (IDom == &Block) in FindIDom() 332 return IDom; in FindIDom()
|
| H A D | LiveRangeCalc.cpp | 343 MachineDomTreeNode *IDom = Node->getIDom(); in updateSSA() local 348 bool needPHI = !IDom || !Seen.test(IDom->getBlock()->getNumber()); in updateSSA() 354 IDomValue = Map[IDom->getBlock()]; in updateSSA() 359 Map[IDom->getBlock()].second = IDomValue.second = in updateSSA() 380 if (DomTree->dominates(IDom, Value.second)) { in updateSSA()
|
| H A D | SplitKit.cpp | 938 MachineDomTreeNode *IDom = MDT[Loop->getHeader()]->getIDom(); in findShallowDominator() local 941 if (!IDom || !MDT.dominates(DefDomNode, IDom)) in findShallowDominator() 944 MBB = IDom->getBlock(); in findShallowDominator()
|
| /llvm-project-15.0.7/llvm/lib/MCA/HardwareUnits/ |
| H A D | LSUnit.cpp | 89 MemoryGroup &IDom = getGroup(ImmediateLoadDominator); in dispatch() local 92 IDom.addSuccessor(&NewGroup, !assumeNoAlias()); in dispatch()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | ConstantHoisting.cpp | 202 auto *IDom = DT->getNode(InsertionBlock)->getIDom(); in findMatInsertPt() local 203 while (IDom->getBlock()->isEHPad()) { in findMatInsertPt() 204 assert(Entry != IDom->getBlock() && "eh pad in entry block"); in findMatInsertPt() 205 IDom = IDom->getIDom(); in findMatInsertPt() 208 return IDom->getBlock()->getTerminator(); in findMatInsertPt()
|
| H A D | LoopStrengthReduce.cpp | 5199 BasicBlock *IDom; in HoistInsertPosition() local 5204 IDom = Rung->getBlock(); in HoistInsertPosition() 5207 const Loop *IDomLoop = LI.getLoopFor(IDom); in HoistInsertPosition() 5214 Tentative = IDom->getTerminator(); in HoistInsertPosition()
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | MemorySSAUpdater.cpp | 894 if (auto *IDom = DT.getNode(BB)->getIDom()) in applyInsertUpdates() local 895 if (IDom->getBlock() != BB) { in applyInsertUpdates() 896 BB = IDom->getBlock(); in applyInsertUpdates() 1150 auto *IDom = DT.getNode(DominatedBlock)->getIDom(); in applyInsertUpdates() local 1151 assert(IDom && "Block must have a valid IDom."); in applyInsertUpdates() 1152 U.set(GetLastDef(IDom->getBlock())); in applyInsertUpdates()
|
| H A D | ScalarEvolution.cpp | 5897 BasicBlock *IDom = DT[PN->getParent()]->getIDom()->getBlock(); in createNodeFromSelectLikePHI() local 5898 assert(IDom && "At least the entry block should dominate PN"); in createNodeFromSelectLikePHI() 5900 auto *BI = dyn_cast<BranchInst>(IDom->getTerminator()); in createNodeFromSelectLikePHI()
|
| /llvm-project-15.0.7/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()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombinePHI.cpp | 1296 auto *IDom = DT.getNode(BB)->getIDom()->getBlock(); in simplifyUsingControlFlow() local 1304 if (auto *BI = dyn_cast<BranchInst>(IDom->getTerminator())) { in simplifyUsingControlFlow() 1311 } else if (auto *SI = dyn_cast<SwitchInst>(IDom->getTerminator())) { in simplifyUsingControlFlow() 1335 DT.dominates(BasicBlockEdge(IDom, It->second), in simplifyUsingControlFlow()
|
| H A D | InstCombineSelect.cpp | 2371 BasicBlock *IDom = IDomNode->getBlock(); in foldSelectToPhiImpl() local 2376 if (match(IDom->getTerminator(), in foldSelectToPhiImpl() 2381 } else if (match(IDom->getTerminator(), in foldSelectToPhiImpl() 2398 BasicBlockEdge TrueEdge(IDom, TrueSucc); in foldSelectToPhiImpl() 2399 BasicBlockEdge FalseEdge(IDom, FalseSucc); in foldSelectToPhiImpl()
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopUnroll/ |
| H A D | runtime-loop-multiexit-dom-verify.ll | 656 ; Blocks reachable from exits (not_zero44) have the IDom as the block within the loop (Header). 657 ; Update the IDom to the preheader.
|
| /llvm-project-15.0.7/llvm/test/Transforms/InstCombine/ |
| H A D | select.ll | 1990 ; Negative test: currently we take condition from IDom, but might be willing to expand it in the fu…
|