//===- llvm/Analysis/DependenceGraphBuilder.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 // //===----------------------------------------------------------------------===// // // This file defines a builder interface that can be used to populate dependence // graphs such as DDG and PDG. // //===----------------------------------------------------------------------===// #ifndef LLVM_ANALYSIS_DEPENDENCEGRAPHBUILDER_H #define LLVM_ANALYSIS_DEPENDENCEGRAPHBUILDER_H #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/EquivalenceClasses.h" #include "llvm/ADT/SmallVector.h" namespace llvm { class BasicBlock; class DependenceInfo; class Instruction; /// This abstract builder class defines a set of high-level steps for creating /// DDG-like graphs. The client code is expected to inherit from this class and /// define concrete implementation for each of the pure virtual functions used /// in the high-level algorithm. template <class GraphType> class AbstractDependenceGraphBuilder { … }; } // namespace llvm #endif // LLVM_ANALYSIS_DEPENDENCEGRAPHBUILDER_H