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