llvm/llvm/lib/CodeGen/MachinePostDominators.cpp

//===- MachinePostDominators.cpp -Machine Post Dominator Calculation ------===//
//
// 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 simple dominator construction algorithms for finding
// post dominators on machine functions.
//
//===----------------------------------------------------------------------===//

#include "llvm/CodeGen/MachinePostDominators.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/GenericDomTreeConstruction.h"

usingnamespacellvm;

namespace llvm {
template class DominatorTreeBase<MachineBasicBlock, true>; // PostDomTreeBase

namespace DomTreeBuilder {

template void Calculate<MBBPostDomTree>(MBBPostDomTree &DT);
template void InsertEdge<MBBPostDomTree>(MBBPostDomTree &DT,
                                         MachineBasicBlock *From,
                                         MachineBasicBlock *To);
template void DeleteEdge<MBBPostDomTree>(MBBPostDomTree &DT,
                                         MachineBasicBlock *From,
                                         MachineBasicBlock *To);
template void ApplyUpdates<MBBPostDomTree>(MBBPostDomTree &DT,
                                           MBBPostDomTreeGraphDiff &,
                                           MBBPostDomTreeGraphDiff *);
template bool Verify<MBBPostDomTree>(const MBBPostDomTree &DT,
                                     MBBPostDomTree::VerificationLevel VL);

} // namespace DomTreeBuilder
extern bool VerifyMachineDomInfo;
} // namespace llvm

AnalysisKey MachinePostDominatorTreeAnalysis::Key;

MachinePostDominatorTreeAnalysis::Result
MachinePostDominatorTreeAnalysis::run(MachineFunction &MF,
                                      MachineFunctionAnalysisManager &) {}

PreservedAnalyses
MachinePostDominatorTreePrinterPass::run(MachineFunction &MF,
                                         MachineFunctionAnalysisManager &MFAM) {}

char MachinePostDominatorTreeWrapperPass::ID =;

//declare initializeMachinePostDominatorTreePass
INITIALIZE_PASS()

MachinePostDominatorTreeWrapperPass::MachinePostDominatorTreeWrapperPass()
    :{}

bool MachinePostDominatorTreeWrapperPass::runOnMachineFunction(
    MachineFunction &F) {}

void MachinePostDominatorTreeWrapperPass::getAnalysisUsage(
    AnalysisUsage &AU) const {}

bool MachinePostDominatorTree::invalidate(
    MachineFunction &, const PreservedAnalyses &PA,
    MachineFunctionAnalysisManager::Invalidator &) {}

MachineBasicBlock *MachinePostDominatorTree::findNearestCommonDominator(
    ArrayRef<MachineBasicBlock *> Blocks) const {}

void MachinePostDominatorTreeWrapperPass::verifyAnalysis() const {}

void MachinePostDominatorTreeWrapperPass::print(llvm::raw_ostream &OS,
                                                const Module *M) const {}