forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
//===- PostDominators.cpp - Post-Dominator Calculation --------------------===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
// This file implements the post-dominator construction algorithms.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#define DEBUG_TYPE "postdomtree"
 | 
						|
 | 
						|
#include "llvm/Analysis/PostDominators.h"
 | 
						|
#include "llvm/Instructions.h"
 | 
						|
#include "llvm/Support/CFG.h"
 | 
						|
#include "llvm/Support/Debug.h"
 | 
						|
#include "llvm/ADT/DepthFirstIterator.h"
 | 
						|
#include "llvm/ADT/SetOperations.h"
 | 
						|
#include "llvm/Assembly/Writer.h"
 | 
						|
#include "llvm/Analysis/DominatorInternals.h"
 | 
						|
using namespace llvm;
 | 
						|
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//  PostDominatorTree Implementation
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
char PostDominatorTree::ID = 0;
 | 
						|
INITIALIZE_PASS(PostDominatorTree, "postdomtree",
 | 
						|
                "Post-Dominator Tree Construction", true, true)
 | 
						|
 | 
						|
bool PostDominatorTree::runOnFunction(Function &F) {
 | 
						|
  DT->recalculate(F);
 | 
						|
  return false;
 | 
						|
}
 | 
						|
 | 
						|
PostDominatorTree::~PostDominatorTree() {
 | 
						|
  delete DT;
 | 
						|
}
 | 
						|
 | 
						|
void PostDominatorTree::print(raw_ostream &OS, const Module *) const {
 | 
						|
  DT->print(OS);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
FunctionPass* llvm::createPostDomTree() {
 | 
						|
  return new PostDominatorTree();
 | 
						|
}
 | 
						|
 |