[PATCH] D106823: [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants

Balázs Benics via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 5 09:35:49 PDT 2021


steakhal accepted this revision.
steakhal added a comment.
This revision is now accepted and ready to land.

In D106823#3109469 <https://reviews.llvm.org/D106823#3109469>, @martong wrote:

>> As of diff 5, line 1767 and all the code in the block at line 2184 are uncovered by the tests you provided.
>
> Thanks, I've added new tests that cover the re-assume logic (the block of line 2184).
>
> However, I was unable to add a test that covers  the case when the simplification of a trivial symbol in the disequality info results an infeasible state (line 1767). Here is how I tried: I had changed the line to an assertion and then initiated the static analysis of the following opensource projects: memcached,tmux,curl,twin,redis,vim,openssl,sqlite,ffmpeg,postgresql,tinyxml2,libwebm,xerces,bitcoin,protobuf. My idea had been, if the assertion would fired then I would use creduce to the create the test case (btw, this is how I added the other infeasible state test case). However, it did not fired.
>
> IMHO, having a defensive check at L1767 is correct b/c there is a slight chance of reaching an infeasible state there. Although the chance is minimal, I cannot prove that is 0.

It's fine by me. Thanks for the investigation.

In D106823#3111110 <https://reviews.llvm.org/D106823#3111110>, @martong wrote:

> There are no runtime or peak memory usage growth with this patch (actually, the runtime decreases with a few %).
> I am attaching the measurements results of the latest Diff.F20089096: stats.html <https://reviews.llvm.org/F20089096>

Great!

The tests refer to `reg_$0` by spelling the id number, which is unfortunate, but I suspect these tests will break for the slightest changes in the solver anyway so I'm not too bothered with this.

Please wait a week for the rest of the members of the community to have a look before committing.
@NoQ @Szelethus @ASDenysPetrov


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106823/new/

https://reviews.llvm.org/D106823



More information about the cfe-commits mailing list