xref: /freebsd-src/contrib/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowLattice.h (revision 4824e7fd18a1223177218d4aec1b3c6c5c4a444e)
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