[PATCH] D137948: [clang][dataflow] Add widening API and implement it for built-in boolean model.

Yitzhak Mandelbaum via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 14 07:19:30 PST 2022


ymandel created this revision.
ymandel added reviewers: xazax.hun, gribozavr2, sgatev.
Herald added subscribers: martong, rnkovacs.
Herald added a reviewer: NoQ.
Herald added a project: All.
ymandel requested review of this revision.
Herald added a project: clang.

- 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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D137948

Files:
  clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
  clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
  clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h
  clang/include/clang/Analysis/FlowSensitive/Value.h
  clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
  clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
  clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D137948.475141.patch
Type: text/x-patch
Size: 26999 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20221114/0e6e920f/attachment-0001.bin>


More information about the cfe-commits mailing list