[PATCH] D114887: [Analyzer][solver] Simplification: Do a fixpoint iteration before the eq class merge

Bal√°zs Benics via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 1 13:48:10 PST 2021


steakhal added a comment.

I think I'm in favor of this change. However, Im also slightly in favor of reverting stuff instead of rushing things. Let's hope it will resolve the issue of the previous offending commit.

Accepted.



================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:2220
+                                  const SymbolRef Sym) {
+  SVal Val = SVB.makeSymbolVal(Sym);
+  SVal SimplifiedVal = SVB.simplifySVal(State, Val);
----------------
Couldnt we just create an SVal from a SymExpr? Why do we need the SVB foe this?


================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:2222
+  SVal SimplifiedVal = SVB.simplifySVal(State, Val);
+  // Do the simplification until we can.
+  while (SimplifiedVal != Val) {
----------------
Nit: It doesnt seem to be grammatically correct.


================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:2218
+LLVM_NODISCARD
+static SVal simplifyUntilFixpoint(SValBuilder &SVB, ProgramStateRef State,
+                                  const SymbolRef Sym) {
----------------
martong wrote:
> Perhaps this should be done in `SimpleSValbuilder::simplifySVal`, I think this should be the responsibility of the SValBuilder compoment.
My thought was the same.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D114887



More information about the cfe-commits mailing list