Lines Matching refs:DelBB
166 bool DomTreeUpdater::isBBPendingDeletion(llvm::BasicBlock *DelBB) const { in isBBPendingDeletion()
169 return DeletedBBs.contains(DelBB); in isBBPendingDeletion()
177 void DomTreeUpdater::deleteBB(BasicBlock *DelBB) { in deleteBB() argument
178 validateDeleteBB(DelBB); in deleteBB()
180 DeletedBBs.insert(DelBB); in deleteBB()
184 DelBB->removeFromParent(); in deleteBB()
185 eraseDelBBNode(DelBB); in deleteBB()
186 delete DelBB; in deleteBB()
190 BasicBlock *DelBB, std::function<void(BasicBlock *)> Callback) { in callbackDeleteBB() argument
191 validateDeleteBB(DelBB); in callbackDeleteBB()
193 Callbacks.push_back(CallBackOnDeletion(DelBB, Callback)); in callbackDeleteBB()
194 DeletedBBs.insert(DelBB); in callbackDeleteBB()
198 DelBB->removeFromParent(); in callbackDeleteBB()
199 eraseDelBBNode(DelBB); in callbackDeleteBB()
200 Callback(DelBB); in callbackDeleteBB()
201 delete DelBB; in callbackDeleteBB()
204 void DomTreeUpdater::eraseDelBBNode(BasicBlock *DelBB) { in eraseDelBBNode() argument
206 if (DT->getNode(DelBB)) in eraseDelBBNode()
207 DT->eraseNode(DelBB); in eraseDelBBNode()
210 if (PDT->getNode(DelBB)) in eraseDelBBNode()
211 PDT->eraseNode(DelBB); in eraseDelBBNode()
214 void DomTreeUpdater::validateDeleteBB(BasicBlock *DelBB) { in validateDeleteBB() argument
215 assert(DelBB && "Invalid push_back of nullptr DelBB."); in validateDeleteBB()
216 assert(pred_empty(DelBB) && "DelBB has one or more predecessors."); in validateDeleteBB()
218 while (!DelBB->empty()) { in validateDeleteBB()
219 Instruction &I = DelBB->back(); in validateDeleteBB()
223 DelBB->back().eraseFromParent(); in validateDeleteBB()
227 new UnreachableInst(DelBB->getContext(), DelBB); in validateDeleteBB()