diff options
Diffstat (limited to 'contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h')
| -rw-r--r-- | contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h | 74 | 
1 files changed, 0 insertions, 74 deletions
diff --git a/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h b/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h deleted file mode 100644 index 692afd2978d5..000000000000 --- a/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h +++ /dev/null @@ -1,74 +0,0 @@ -//===-- VPlanPredicator.h ---------------------------------------*- C++ -*-===// -// -// 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 -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// This file defines the VPlanPredicator class which contains the public -/// interfaces to predicate and linearize the VPlan region. -/// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TRANSFORMS_VECTORIZE_VPLAN_PREDICATOR_H -#define LLVM_TRANSFORMS_VECTORIZE_VPLAN_PREDICATOR_H - -#include "LoopVectorizationPlanner.h" -#include "VPlan.h" -#include "VPlanDominatorTree.h" - -namespace llvm { - -class VPlanPredicator { -private: -  enum class EdgeType { -    TRUE_EDGE, -    FALSE_EDGE, -  }; - -  // VPlan being predicated. -  VPlan &Plan; - -  // VPLoopInfo for Plan's HCFG. -  VPLoopInfo *VPLI; - -  // Dominator tree for Plan's HCFG. -  VPDominatorTree VPDomTree; - -  // VPlan builder used to generate VPInstructions for block predicates. -  VPBuilder Builder; - -  /// Get the type of edge from \p FromBlock to \p ToBlock. Returns TRUE_EDGE if -  /// \p ToBlock is either the unconditional successor or the conditional true -  /// successor of \p FromBlock and FALSE_EDGE otherwise. -  EdgeType getEdgeTypeBetween(VPBlockBase *FromBlock, VPBlockBase *ToBlock); - -  /// Create and return VPValue corresponding to the predicate for the edge from -  /// \p PredBB to \p CurrentBlock. -  VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB); - -  /// Generate and return the result of ORing all the predicate VPValues in \p -  /// Worklist. -  VPValue *genPredicateTree(std::list<VPValue *> &Worklist); - -  /// Create or propagate predicate for \p CurrBlock in region \p Region using -  /// predicate(s) of its predecessor(s) -  void createOrPropagatePredicates(VPBlockBase *CurrBlock, -                                   VPRegionBlock *Region); - -  /// Predicate the CFG within \p Region. -  void predicateRegionRec(VPRegionBlock *Region); - -  /// Linearize the CFG within \p Region. -  void linearizeRegionRec(VPRegionBlock *Region); - -public: -  VPlanPredicator(VPlan &Plan); - -  /// Predicate Plan's HCFG. -  void predicate(void); -}; -} // end namespace llvm -#endif // LLVM_TRANSFORMS_VECTORIZE_VPLAN_PREDICATOR_H  | 
