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