1*4824e7fdSDimitry Andric //===- DataflowLattice.h ----------------------------------------*- C++ -*-===// 2*4824e7fdSDimitry Andric // 3*4824e7fdSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*4824e7fdSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*4824e7fdSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*4824e7fdSDimitry Andric // 7*4824e7fdSDimitry Andric //===----------------------------------------------------------------------===// 8*4824e7fdSDimitry Andric // 9*4824e7fdSDimitry Andric // This file defines base types for building lattices to be used in dataflow 10*4824e7fdSDimitry Andric // analyses that run over Control-Flow Graphs (CFGs). 11*4824e7fdSDimitry Andric // 12*4824e7fdSDimitry Andric //===----------------------------------------------------------------------===// 13*4824e7fdSDimitry Andric 14*4824e7fdSDimitry Andric #ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWLATTICE_H 15*4824e7fdSDimitry Andric #define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWLATTICE_H 16*4824e7fdSDimitry Andric 17*4824e7fdSDimitry Andric namespace clang { 18*4824e7fdSDimitry Andric namespace dataflow { 19*4824e7fdSDimitry Andric 20*4824e7fdSDimitry Andric /// Effect indicating whether a lattice join operation resulted in a new value. 21*4824e7fdSDimitry Andric enum class LatticeJoinEffect { 22*4824e7fdSDimitry Andric Unchanged, 23*4824e7fdSDimitry Andric Changed, 24*4824e7fdSDimitry Andric }; 25*4824e7fdSDimitry Andric 26*4824e7fdSDimitry Andric } // namespace dataflow 27*4824e7fdSDimitry Andric } // namespace clang 28*4824e7fdSDimitry Andric 29*4824e7fdSDimitry Andric #endif // LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWLATTICE_H 30