[PATCH] D102696: [Analyzer] Find constraints that are directly attached to a BinOp
Gabor Marton via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri May 21 03:03:27 PDT 2021
martong added a comment.
> As for the solver, it is something that tormented me for a long time. Is there a way to avoid a full-blown brute force check of all existing constraints and get some knowledge about symbolic expressions by constraints these symbolic expressions are actually part of (right now we can reason about expressions if we know some information about its own parts aka operands)?
Well, it is a hard question.
I've been thinking about building a "parent" map for the sub-expressions, like we do in the AST (see clang::ParentMap). We could use this parent map to inject new constraints during the "constant folding" mechanism.
So, let's say we have `$x + $y = 0` and then when we process `$y = 0` then we'd add a new constraint: `$x = 0`. We could add this new constraint by knowing that we have to visit `$x + $y` because `$y` is connected to that in the parent map.
What do you think, could it work?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D102696/new/
https://reviews.llvm.org/D102696
More information about the cfe-commits
mailing list