14824e7fdSDimitry Andric //===- DataflowLattice.h ----------------------------------------*- C++ -*-===// 24824e7fdSDimitry Andric // 34824e7fdSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 44824e7fdSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 54824e7fdSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 64824e7fdSDimitry Andric // 74824e7fdSDimitry Andric //===----------------------------------------------------------------------===// 84824e7fdSDimitry Andric // 94824e7fdSDimitry Andric // This file defines base types for building lattices to be used in dataflow 104824e7fdSDimitry Andric // analyses that run over Control-Flow Graphs (CFGs). 114824e7fdSDimitry Andric // 124824e7fdSDimitry Andric //===----------------------------------------------------------------------===// 134824e7fdSDimitry Andric 144824e7fdSDimitry Andric #ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWLATTICE_H 154824e7fdSDimitry Andric #define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWLATTICE_H 164824e7fdSDimitry Andric 174824e7fdSDimitry Andric namespace clang { 184824e7fdSDimitry Andric namespace dataflow { 194824e7fdSDimitry Andric 20*0fca6ea1SDimitry Andric /// Effect indicating whether a lattice operation resulted in a new value. 21*0fca6ea1SDimitry Andric enum class LatticeEffect { 224824e7fdSDimitry Andric Unchanged, 234824e7fdSDimitry Andric Changed, 244824e7fdSDimitry Andric }; 25*0fca6ea1SDimitry Andric // DEPRECATED. Use `LatticeEffect`. 26*0fca6ea1SDimitry Andric using LatticeJoinEffect = LatticeEffect; 274824e7fdSDimitry Andric 284824e7fdSDimitry Andric } // namespace dataflow 294824e7fdSDimitry Andric } // namespace clang 304824e7fdSDimitry Andric 314824e7fdSDimitry Andric #endif // LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWLATTICE_H 32