[clang][dataflow] HTML logger: Mark iterations that have converged. (#68204)
commit2be7c651c4a221a681b4a668617e73bf4a681a34
authormartinboehme <mboehme@google.com>
Wed, 4 Oct 2023 11:47:24 +0000 (4 13:47 +0200)
committerGitHub <noreply@github.com>
Wed, 4 Oct 2023 11:47:24 +0000 (4 13:47 +0200)
tree2c8ee57dc8923286350206459d1a9af1d78980d1
parentcf80defae20b47502fb0921e9358dc90477e9563
[clang][dataflow] HTML logger: Mark iterations that have converged. (#68204)

I've eliminated the `logText("Block converged")` call entirely because

a) These logs are associated with an individual `CFGElement`, while
convergence
   should be associated with a block, and

b) The log message was being associated with the wrong block:
`recordState()`
dumps all of the pending log messages, but `blockConverged()` is called
after
   the last `recordState()` call for a given block, so that the "Block
converged" log message was being associated with the first element of
the
   _next_ block to be processed.

Example:

![image](https://github.com/llvm/llvm-project/assets/29098113/6a19095c-2dbb-4771-9485-e8e45c9d26fb)
clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp
clang/lib/Analysis/FlowSensitive/HTMLLogger.html