xazax.hun added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:340-345
+    // TODO #2: We didn't go into the nested expressions before, so it
+    // might cause us spending much more time doing the inference.
+    // This can be a problem for deeply nested expressions that are
+    // involved in conditions and get tested continuously.  We definitely
+    // need to address this issue and introduce some sort of caching
+    // in here.
----------------
NoQ wrote:
> vsavchenko wrote:
> > NoQ wrote:
> > > I think this is a must-have, at least in some form. We've been exploding 
> > > like this before on real-world code, well, probably not with bitwise ops 
> > > but i'm still worried.
> > It will be pretty easy to introduce a limit on how deep we go into a tree 
> > of the given symbolic expression. That can also be a solution.
> I mean, doing something super trivial, like defining a map from symexprs to 
> ranges in `SymbolicRangeInferrer` itself and find-or-inserting into it, will 
> probably not be harder than counting depth(?)
I am a bit ignorant of this topic, but I wonder what a good caching mechanism 
would look like.
A simple `symexpr -> range` mapping does not feel right as the same symexpr 
might have a different range in a different program state (e.g., we might learn 
new ranges for our symbols). But having a separate map for each state state 
might do relatively little caching?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D79232



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

Reply via email to