[all-commits] [llvm/llvm-project] 84dd12: [clang][dataflow] Add widening API and implement i...
Yitzhak Mandelbaum via All-commits
all-commits at lists.llvm.org
Tue Nov 22 08:10:17 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 84dd12b29064095cdef3949e8fd5c91b93f36004
https://github.com/llvm/llvm-project/commit/84dd12b29064095cdef3949e8fd5c91b93f36004
Author: Yitzhak Mandelbaum <yitzhakm at google.com>
Date: 2022-11-22 (Tue, 22 Nov 2022)
Changed paths:
M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
M clang/include/clang/Analysis/FlowSensitive/DataflowLattice.h
M clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h
M clang/include/clang/Analysis/FlowSensitive/Value.h
M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
Log Message:
-----------
[clang][dataflow] Add widening API and implement it for built-in boolean model.
* Adds API support for widening of lattice elements and environments,
* Updates the algorithm to apply widening where appropriate,
* Implements widening for boolean values. In the process, moves the unsoundness
of comparison from the default implementation of
`Environment::ValueModel::compare` to model-specific handling inside
`DataflowEnvironment::equivalentTo`. This change is intended to clarify
the source and location of unsoundess.
This patch is a replacement for, and was based substantially on, https://reviews.llvm.org/D131645.
Differential Revision: https://reviews.llvm.org/D137948
More information about the All-commits
mailing list