DominanceFrontier.cpp revision 276479
1218885Sdim//===- DominanceFrontier.cpp - Dominance Frontier Calculation -------------===// 2218885Sdim// 3218885Sdim// The LLVM Compiler Infrastructure 4218885Sdim// 5218885Sdim// This file is distributed under the University of Illinois Open Source 6218885Sdim// License. See LICENSE.TXT for details. 7218885Sdim// 8218885Sdim//===----------------------------------------------------------------------===// 9218885Sdim 10218885Sdim#include "llvm/Analysis/DominanceFrontier.h" 11276479Sdim#include "llvm/Analysis/DominanceFrontierImpl.h" 12276479Sdim 13218885Sdimusing namespace llvm; 14218885Sdim 15276479Sdimnamespace llvm { 16276479Sdimtemplate class DominanceFrontierBase<BasicBlock>; 17276479Sdimtemplate class ForwardDominanceFrontierBase<BasicBlock>; 18276479Sdim} 19276479Sdim 20218885Sdimchar DominanceFrontier::ID = 0; 21276479Sdim 22218885SdimINITIALIZE_PASS_BEGIN(DominanceFrontier, "domfrontier", 23218885Sdim "Dominance Frontier Construction", true, true) 24276479SdimINITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) 25218885SdimINITIALIZE_PASS_END(DominanceFrontier, "domfrontier", 26218885Sdim "Dominance Frontier Construction", true, true) 27218885Sdim 28276479SdimDominanceFrontier::DominanceFrontier() 29276479Sdim : FunctionPass(ID), 30276479Sdim Base() { 31276479Sdim initializeDominanceFrontierPass(*PassRegistry::getPassRegistry()); 32218885Sdim} 33218885Sdim 34276479Sdimvoid DominanceFrontier::releaseMemory() { 35276479Sdim Base.releaseMemory(); 36276479Sdim} 37234353Sdim 38276479Sdimbool DominanceFrontier::runOnFunction(Function &) { 39276479Sdim releaseMemory(); 40276479Sdim Base.analyze(getAnalysis<DominatorTreeWrapperPass>().getDomTree()); 41276479Sdim return false; 42276479Sdim} 43218885Sdim 44276479Sdimvoid DominanceFrontier::getAnalysisUsage(AnalysisUsage &AU) const { 45276479Sdim AU.setPreservesAll(); 46276479Sdim AU.addRequired<DominatorTreeWrapperPass>(); 47218885Sdim} 48218885Sdim 49276479Sdimvoid DominanceFrontier::print(raw_ostream &OS, const Module *) const { 50276479Sdim Base.print(OS); 51218885Sdim} 52218885Sdim 53243830Sdim#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) 54276479Sdimvoid DominanceFrontier::dump() const { 55218885Sdim print(dbgs()); 56218885Sdim} 57243830Sdim#endif 58