LCOV - code coverage report
Current view: top level - lib/CodeGen - MachinePostDominators.cpp (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 19 24 79.2 %
Date: 2018-10-20 13:21:21 Functions: 7 9 77.8 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- MachinePostDominators.cpp -Machine Post Dominator Calculation ------===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : //
      10             : // This file implements simple dominator construction algorithms for finding
      11             : // post dominators on machine functions.
      12             : //
      13             : //===----------------------------------------------------------------------===//
      14             : 
      15             : #include "llvm/CodeGen/MachinePostDominators.h"
      16             : 
      17             : using namespace llvm;
      18             : 
      19             : namespace llvm {
      20             : template class DominatorTreeBase<MachineBasicBlock, true>; // PostDomTreeBase
      21             : }
      22             : 
      23             : char MachinePostDominatorTree::ID = 0;
      24             : 
      25             : //declare initializeMachinePostDominatorTreePass
      26      245555 : INITIALIZE_PASS(MachinePostDominatorTree, "machinepostdomtree",
      27             :                 "MachinePostDominator Tree Construction", true, true)
      28             : 
      29       64784 : MachinePostDominatorTree::MachinePostDominatorTree() : MachineFunctionPass(ID) {
      30       64784 :   initializeMachinePostDominatorTreePass(*PassRegistry::getPassRegistry());
      31       64784 :   DT = new PostDomTreeBase<MachineBasicBlock>();
      32       64784 : }
      33             : 
      34             : FunctionPass *
      35           0 : MachinePostDominatorTree::createMachinePostDominatorTreePass() {
      36           0 :   return new MachinePostDominatorTree();
      37             : }
      38             : 
      39             : bool
      40      597330 : MachinePostDominatorTree::runOnMachineFunction(MachineFunction &F) {
      41      597330 :   DT->recalculate(F);
      42      597330 :   return false;
      43             : }
      44             : 
      45      123854 : MachinePostDominatorTree::~MachinePostDominatorTree() {
      46       64378 :   delete DT;
      47      123854 : }
      48       59476 : 
      49             : void
      50       59476 : MachinePostDominatorTree::getAnalysisUsage(AnalysisUsage &AU) const {
      51       64378 :   AU.setPreservesAll();
      52       64378 :   MachineFunctionPass::getAnalysisUsage(AU);
      53       64378 : }
      54             : 
      55             : void
      56       59882 : MachinePostDominatorTree::print(llvm::raw_ostream &OS, const Module *M) const {
      57             :   DT->print(OS);
      58       59882 : }

Generated by: LCOV version 1.13