[PATCH] D62761: [analyzer] exploded-graph-rewriter: Implement a --diff mode.

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri May 31 17:06:28 PDT 2019


NoQ created this revision.
NoQ added reviewers: dcoughlin, xazax.hun, a_sidorin, rnkovacs, Szelethus, baloghadamsoftware, Charusso.
Herald added subscribers: cfe-commits, dkrupp, donat.nagy, mikhail.ramalho, a.sidorin, szepet.
Herald added a project: clang.
NoQ added a comment.
NoQ added a parent revision: D62638: [analyzer] A Python script to prettify the ExplodedGraph dumps..

I'll add some tests as soon as i'm sure tests for this thing actually work (by landing D62638 <https://reviews.llvm.org/D62638>).


Implement a mode in which the rewriter prints differences between adjacent program states rather than the whole states. The whole state is still printed for nodes with multiple predecessors (because merge diffs were annoying to implement and it's still nice to have the full state occasionally) and for leaf nodes (because they're the important ones).

F8999355: Screen Shot 2019-05-31 at 4.57.55 PM.png <https://reviews.llvm.org/F8999355>

The diffs are computed "semantically" as opposed to plain text diffs. I.e., the diff algorithm is hand-crafted separately for every state trait, taking the underlying data structures into account. This is especially nice for `Environment` because textual diffs would have been terrible. This, of course, produces quite some boilerplate, but i think it's isolated enough to not bother me that much.


Repository:
  rC Clang

https://reviews.llvm.org/D62761

Files:
  clang/utils/analyzer/exploded-graph-rewriter.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62761.202512.patch
Type: text/x-patch
Size: 15120 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190601/67896304/attachment.bin>


More information about the cfe-commits mailing list