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