2018-07-30 23:33:31 +02:00
|
|
|
//===-- VPlanDominatorTree.h ------------------------------------*- C++ -*-===//
|
|
|
|
//
|
2019-01-19 09:50:56 +01:00
|
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
2018-07-30 23:33:31 +02:00
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
///
|
|
|
|
/// \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 *>
|
DomTree: remove explicit use of DomTreeNodeBase::iterator
Summary:
Almost all uses of these iterators, including implicit ones, really
only need the const variant (as it should be). The only exception is
in NewGVN, which changes the order of dominator tree child nodes.
Change-Id: I4b5bd71e32d71b0c67b03d4927d93fe9413726d4
Reviewers: arsenm, RKSimon, mehdi_amini, courbet, rriddle, aartbik
Subscribers: wdng, Prazek, hiraditya, kuhar, rogfer01, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, vkmr, Kayjukh, jurahul, msifontes, cfe-commits, llvm-commits
Tags: #clang, #mlir, #llvm
Differential Revision: https://reviews.llvm.org/D83087
2020-07-02 20:36:30 +02:00
|
|
|
: public DomTreeGraphTraitsBase<VPDomTreeNode,
|
|
|
|
VPDomTreeNode::const_iterator> {};
|
2018-07-30 23:33:31 +02:00
|
|
|
|
|
|
|
template <>
|
|
|
|
struct GraphTraits<const VPDomTreeNode *>
|
|
|
|
: public DomTreeGraphTraitsBase<const VPDomTreeNode,
|
|
|
|
VPDomTreeNode::const_iterator> {};
|
|
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_TRANSFORMS_VECTORIZE_VPLANDOMINATORTREE_H
|