ASDenysPetrov added a comment.

In D99797#2666358 <https://reviews.llvm.org/D99797#2666358>, @vsavchenko wrote:

> Thanks for working on improvements of the solver and constraints!  However, I 
> have some tough questions about this patch.
>
> What I really want to understand here is motivation.  Why do we need to have 
> `add` operation semantics like this in the first place?  My guess is that 
> "the user" will be in the following patch.
> Additionally, I don't really like the idea of replacing something simple and 
> fast (old `add` methods`) with something more complex unconditionally.  Old 
> users still don't need this additional logic.  C++ has always been the 
> language where we "pay for what we use".
> So, with good motivation, I'd still prefer methods like `add` and 
> `addUnchecked` or smith similar.

My motivation is that I'm currently working on some bigger improvement 
(symbolic integral cast) and stucked here of the lack of handling 
intersections. Would you mind of accepting this revision in case if I restore 
complexity to O(N+M)?



================
Comment at: 
clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:128
     ///
-    /// Complexity: O(N + M)
+    /// Complexity: O(N + Mlog(N))
     ///             where N = size(LHS), M = size(RHS)
----------------
vsavchenko wrote:
> This most certainly can be done in `O(N + M)` the same way the intersection 
> is done.
Actually yes, it can. And it was, when I played with different solutions. But 
the code was poor readable. So I decided make it easier to understand to bring 
to review. Of couse I can move further to improve it and retain readability. 
I'll do.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99797

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

Reply via email to