Home
last modified time | relevance | path

Searched refs:IDom (Results 1 – 20 of 20) sorted by relevance

/llvm-project-15.0.7/llvm/include/llvm/Support/
H A DGenericDomTree.h61 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 DGenericDomTreeConstruction.h69 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 DSSAUpdaterImpl.h57 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 DDominators.h104 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 DCodeMoverUtils.cpp125 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 DSSAUpdaterBulk.cpp74 BasicBlock *IDom = DT->getNode(BB)->getIDom()->getBlock(); in computeValueAt() local
75 Value *V = computeValueAt(IDom, R, DT); in computeValueAt()
H A DLoopPeel.cpp610 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 DShrinkWrap.cpp324 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 DLiveRangeCalc.cpp343 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 DSplitKit.cpp938 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 DLSUnit.cpp89 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 DConstantHoisting.cpp202 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 DLoopStrengthReduce.cpp5199 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 DMemorySSAUpdater.cpp894 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 DScalarEvolution.cpp5897 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 DSIAnnotateControlFlow.cpp171 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 DInstCombinePHI.cpp1296 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 DInstCombineSelect.cpp2371 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 Druntime-loop-multiexit-dom-verify.ll656 ; 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 Dselect.ll1990 ; Negative test: currently we take condition from IDom, but might be willing to expand it in the fu…