//===- SCCPSolver.h - SCCP Utility ----------------------------- *- 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 implements Sparse Conditional Constant Propagation (SCCP) utility. // //===----------------------------------------------------------------------===// #ifndef LLVM_TRANSFORMS_UTILS_SCCPSOLVER_H #define LLVM_TRANSFORMS_UTILS_SCCPSOLVER_H #include "llvm/ADT/MapVector.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/Statistic.h" #include "llvm/Analysis/DomTreeUpdater.h" #include "llvm/Transforms/Utils/PredicateInfo.h" #include <vector> namespace llvm { class Argument; class BasicBlock; class CallInst; class Constant; class DataLayout; class DominatorTree; class Function; class GlobalVariable; class Instruction; class LLVMContext; class StructType; class TargetLibraryInfo; class Value; class ValueLatticeElement; /// Helper struct shared between Function Specialization and SCCP Solver. struct ArgInfo { … }; class SCCPInstVisitor; //===----------------------------------------------------------------------===// // /// SCCPSolver - This interface class is a general purpose solver for Sparse /// Conditional Constant Propagation (SCCP). /// class SCCPSolver { … }; } // namespace llvm #endif // LLVM_TRANSFORMS_UTILS_SCCPSOLVER_H