forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===-- VPlanDominatorTree.h ------------------------------------*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| ///
 | |
| /// \file
 | |
| /// This file implements dominator tree analysis for a single level of a VPlan's
 | |
| /// H-CFG.
 | |
| ///
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #ifndef LLVM_TRANSFORMS_VECTORIZE_VPLANDOMINATORTREE_H
 | |
| #define LLVM_TRANSFORMS_VECTORIZE_VPLANDOMINATORTREE_H
 | |
| 
 | |
| #include "VPlan.h"
 | |
| #include "llvm/ADT/GraphTraits.h"
 | |
| #include "llvm/IR/Dominators.h"
 | |
| 
 | |
| namespace llvm {
 | |
| 
 | |
| /// Template specialization of the standard LLVM dominator tree utility for
 | |
| /// VPBlockBases.
 | |
| using VPDominatorTree = DomTreeBase<VPBlockBase>;
 | |
| 
 | |
| using VPDomTreeNode = DomTreeNodeBase<VPBlockBase>;
 | |
| 
 | |
| /// Template specializations of GraphTraits for VPDomTreeNode.
 | |
| template <>
 | |
| struct GraphTraits<VPDomTreeNode *>
 | |
|     : public DomTreeGraphTraitsBase<VPDomTreeNode, VPDomTreeNode::iterator> {};
 | |
| 
 | |
| template <>
 | |
| struct GraphTraits<const VPDomTreeNode *>
 | |
|     : public DomTreeGraphTraitsBase<const VPDomTreeNode,
 | |
|                                     VPDomTreeNode::const_iterator> {};
 | |
| } // namespace llvm
 | |
| #endif // LLVM_TRANSFORMS_VECTORIZE_VPLANDOMINATORTREE_H
 |