sgatev marked 2 inline comments as done.
sgatev added inline comments.

================
Comment at: clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp:114
 
+    if (auto *FirstVal = dyn_cast<PointerValue>(Val)) {
+      auto *SecondVal = cast<PointerValue>(It->second);
----------------
xazax.hun wrote:
> xazax.hun wrote:
> > xazax.hun wrote:
> > > Shouldn't we ensure that `operator==` return true when we have two 
> > > `PointerValue`s with the same pointee above? That would make this piece 
> > > of code redundant.
> > Never mind, just realized the above is comparing pointers. But I still 
> > think we might want to have a separate `operator==` for `Value`s as we 
> > might want to compare values in many separate places.
> Or alternatively, Values could be internalized, and all `PointerValue`s with 
> the same pointee could have the same address.
Right. Currently, all tests that assign values in loops (including the test 
introduced in this patch) are hitting the maximum iterations limit because we 
don't have a way to tell the framework how to compare distinct values (e.g. 
there's no need to continue iterating if the `has_value` properties of distinct 
optional values are the same). This will be the focus of my next patch.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D118480

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

Reply via email to