//===- MachineDomTreeUpdater.cpp -----------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file implements the MachineDomTreeUpdater class, which provides a // uniform way to update dominator tree related data structures. // //===----------------------------------------------------------------------===// #include "llvm/CodeGen/MachineDomTreeUpdater.h" #include "llvm/ADT/SmallSet.h" #include "llvm/Analysis/GenericDomTreeUpdaterImpl.h" #include "llvm/CodeGen/MachinePostDominators.h" #include "llvm/Support/GenericDomTree.h" #include <algorithm> #include <functional> #include <utility> namespace llvm { template class GenericDomTreeUpdater< MachineDomTreeUpdater, MachineDominatorTree, MachinePostDominatorTree>; template void GenericDomTreeUpdater<MachineDomTreeUpdater, MachineDominatorTree, MachinePostDominatorTree>::recalculate(MachineFunction &MF); bool MachineDomTreeUpdater::forceFlushDeletedBB() { … } // The DT and PDT require the nodes related to updates // are not deleted when update functions are called. // So MachineBasicBlock deletions must be pended when the // UpdateStrategy is Lazy. When the UpdateStrategy is // Eager, the MachineBasicBlock will be deleted immediately. void MachineDomTreeUpdater::deleteBB(MachineBasicBlock *DelBB) { … } void MachineDomTreeUpdater::validateDeleteBB(MachineBasicBlock *DelBB) { … } } // namespace llvm