r375280 - [analyzer] Drop the logic for collapsing the state if it's same as in preds.

Artem Dergachev via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 18 13:15:36 PDT 2019


Author: dergachev
Date: Fri Oct 18 13:15:35 2019
New Revision: 375280

URL: http://llvm.org/viewvc/llvm-project?rev=375280&view=rev
Log:
[analyzer] Drop the logic for collapsing the state if it's same as in preds.

One of the first attempts to reduce the size of the exploded graph dumps
was to skip the state dump as long as the state is the same as in all of
the predecessor nodes. With all the new facilities in place (node joining,
diff dumps), this feature doesn't do much, and when it does,
it's more harmful than useful. Let's remove it.

Modified:
    cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp
    cfe/trunk/test/Analysis/dump_egraph.c

Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp?rev=375280&r1=375279&r2=375280&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp Fri Oct 18 13:15:35 2019
@@ -3083,16 +3083,7 @@ struct DOTGraphTraits<ExplodedGraph*> :
     Out << "\\l"; // Adds a new-line to the last program point.
     Indent(Out, Space, IsDot) << "],\\l";
 
-    bool SameAsAllPredecessors =
-        std::all_of(N->pred_begin(), N->pred_end(), [&](const ExplodedNode *P) {
-          return P->getState() == State;
-        });
-
-    if (!SameAsAllPredecessors) {
-      State->printDOT(Out, N->getLocationContext(), Space);
-    } else {
-      Indent(Out, Space, IsDot) << "\"program_state\": null";
-    }
+    State->printDOT(Out, N->getLocationContext(), Space);
 
     Out << "\\l}\\l";
     return Out.str();

Modified: cfe/trunk/test/Analysis/dump_egraph.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/dump_egraph.c?rev=375280&r1=375279&r2=375280&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/dump_egraph.c (original)
+++ cfe/trunk/test/Analysis/dump_egraph.c Fri Oct 18 13:15:35 2019
@@ -48,3 +48,5 @@ int foo() {
 // CHECK: \"pretty\": \"'\\\\x13'\"
 
 // CHECK: \"has_report\": 1
+
+// CHECK-NOT: \"program_state\": null




More information about the cfe-commits mailing list