Unverified Commit 672fb27b authored by Yitzhak Mandelbaum's avatar Yitzhak Mandelbaum Committed by GitHub
Browse files

[clang][dataflow] Add new `join` API and replace existing `merge` implementations. (#80361)



This patch adds a new interface for the join operation, now properly
called `join`. Originally, the framework offered a single `merge`
operation, which could serve either as a join or a widening. In
practice, though we found this conflation didn't work for non-trivial
anlyses, and split of the widening operation (`widen`). This change
completes the transition by introducing a proper `join` with strict join
semantics.

In the process, it drops an odd (and often misused) aspect of `merge`
wherein callees could implictly instruct the framework to drop the
current entry by returning `false`. This features was never used
correctly in analyses and doesn't belong in a join operation, so it is
omitted.

---------

Co-authored-by: default avatarDmitri Gribenko <gribozavr@gmail.com>
Co-authored-by: default avatarmartinboehme <mboehme@google.com>
parent 90e8dc0f
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment