//===- LazyValueInfo.h - Value constraint analysis --------------*- 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 the interface for lazy computation of value constraint // information. // //===----------------------------------------------------------------------===// #ifndef LLVM_ANALYSIS_LAZYVALUEINFO_H #define LLVM_ANALYSIS_LAZYVALUEINFO_H #include "llvm/IR/InstrTypes.h" #include "llvm/IR/PassManager.h" #include "llvm/Pass.h" namespace llvm { class AssumptionCache; class BasicBlock; class Constant; class DataLayout; class DominatorTree; class Instruction; class Value; class Use; class LazyValueInfoImpl; /// This pass computes, caches, and vends lazy value constraint information. class LazyValueInfo { … }; /// Analysis to compute lazy value information. class LazyValueAnalysis : public AnalysisInfoMixin<LazyValueAnalysis> { … }; /// Printer pass for the LazyValueAnalysis results. class LazyValueInfoPrinterPass : public PassInfoMixin<LazyValueInfoPrinterPass> { … }; /// Wrapper around LazyValueInfo. class LazyValueInfoWrapperPass : public FunctionPass { … }; } // end namespace llvm #endif