xazax.hun 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);
----------------
sgatev wrote:
> 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.
Oh, I see. In this case let's merge this and looking forward to the next one :)


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