[PATCH] D103317: [Analyzer][engine][solver] Simplify complex constraints

Denys Petrov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 2 09:11:44 PDT 2021


ASDenysPetrov added a comment.

In D103317#2793797 <https://reviews.llvm.org/D103317#2793797>, @vsavchenko wrote:

> Hmm, Okay, but what about situations if you have: `a = a1 + a2` and `a = a3 + a4 + a5` are you going to throw away one of these constraints? And if so, how do you want to select which one?

Are you talking about comparison or assignment? Both assignments can't be valid at the same time, and latter replaces bindings of former. In case of comparisons, they both can be valid.
But we should keep in mind that **assignment** is a //write// operation which replaces and invalidates previous bindings, and comparison a //read// operation. It can add new bindings but can not remove old ones.
This what I haven't dig deep enough yet. Let's do this together how we can handle that.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D103317



More information about the cfe-commits mailing list