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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to