LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MachineDominators.cpp
Go to the documentation of this file.
1 //===- MachineDominators.cpp - Machine 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 // forward dominators on machine functions.
12 //
13 //===----------------------------------------------------------------------===//
14 
16 #include "llvm/CodeGen/Passes.h"
17 
18 using namespace llvm;
19 
20 namespace llvm {
23 }
24 
26 
27 INITIALIZE_PASS(MachineDominatorTree, "machinedomtree",
28  "MachineDominator Tree Construction", true, true)
29 
31 
32 void MachineDominatorTree::getAnalysisUsage(AnalysisUsage &AU) const {
33  AU.setPreservesAll();
35 }
36 
38  DT->recalculate(F);
39 
40  return false;
41 }
42 
44  : MachineFunctionPass(ID) {
47 }
48 
50  delete DT;
51 }
52 
54  DT->releaseMemory();
55 }
56 
58  DT->print(OS);
59 }
static PassRegistry * getPassRegistry()
The main container class for the LLVM Intermediate Representation.
Definition: Module.h:112
char & MachineDominatorsID
MachineDominators - This pass is a machine dominators analysis pass.
F(f)
TEMPLATE_INSTANTIATION(class DomTreeNodeBase< MachineBasicBlock >)
ID
LLVM Calling Convention Representation.
Definition: CallingConv.h:26
void initializeMachineDominatorTreePass(PassRegistry &)
virtual void print(raw_ostream &OS, const Module *) const
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
Definition: PassSupport.h:153
DominatorTreeBase< MachineBasicBlock > * DT
virtual void getAnalysisUsage(AnalysisUsage &AU) const
virtual bool runOnMachineFunction(MachineFunction &F)